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.2/src/ircd_parser.c (file contents), Revision 1011 by michael, Fri Sep 18 10:14:09 2009 UTC vs.
ircd-hybrid/trunk/src/conf_parser.c (file contents), Revision 1651 by michael, Sun Nov 11 10:54:51 2012 UTC

# Line 1 | Line 1
1 + /* A Bison parser, made by GNU Bison 2.6.5.  */
2  
3 < /* A Bison parser, made by GNU Bison 2.4.1.  */
3 <
4 < /* 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
7 <   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 46 | Line 44
44   #define YYBISON 1
45  
46   /* Bison version.  */
47 < #define YYBISON_VERSION "2.4.1"
47 > #define YYBISON_VERSION "2.6.5"
48  
49   /* Skeleton name.  */
50   #define YYSKELETON_NAME "yacc.c"
# Line 60 | Line 58
58   /* Pull parsers.  */
59   #define YYPULL 1
60  
63 /* Using locations.  */
64 #define YYLSP_NEEDED 0
61  
62  
63  
64   /* Copy the first part of user declarations.  */
65 <
66 < /* Line 189 of yacc.c  */
71 < #line 25 "ircd_parser.y"
65 > /* Line 360 of yacc.c  */
66 > #line 25 "conf_parser.y"
67  
68  
69   #define YY_NO_UNPUT
# Line 79 | 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"
87 #include "irc_getaddrinfo.h"
83   #include "sprintf_irc.h"
84   #include "memory.h"
85   #include "modules.h"
# Line 100 | 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;
106 < static struct ConfItem *yy_conf = NULL;
107 < static struct AccessItem *yy_aconf = NULL;
108 < static struct MatchItem *yy_match_item = NULL;
109 < static struct ClassItem *yy_class = NULL;
110 < static char *yy_class_name = NULL;
111 <
112 < static dlink_list col_conf_list  = { NULL, NULL, 0 };
113 < static dlink_list hub_conf_list  = { NULL, NULL, 0 };
114 < static dlink_list leaf_conf_list = { NULL, NULL, 0 };
115 < static unsigned int listener_flags = 0;
116 < static unsigned int regex_ban = 0;
117 < static char userbuf[IRCD_BUFSIZE];
118 < static char hostbuf[IRCD_BUFSIZE];
119 < static char reasonbuf[REASONLEN + 1];
120 < static char gecos_name[REALLEN * 4];
121 <
122 < static char *resv_reason = NULL;
123 < static char *listener_address = NULL;
124 < 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);
145 <  MyFree(item->user);
146 <  MyFree(item->host);
147 <  MyFree(item->passwd);
148 < #ifdef HAVE_LIBCRYPTO
149 <  MyFree(item->rsa_public_key_file);
150 < #endif
151 <  MyFree(item);
152 < }
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;
160 <  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    }
175 }
171  
172 +  memset(&block_state, 0, sizeof(block_state));
173 + }
174  
175  
176 < /* Line 189 of yacc.c  */
177 < #line 181 "ircd_parser.c"
176 > /* Line 360 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 192 | 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
199
206  
207   /* Tokens.  */
208   #ifndef YYTOKENTYPE
# Line 205 | 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 <     DOT_IN_IP6_ADDR = 299,
255 <     DOTS_IN_IDENT = 300,
256 <     DURATION = 301,
257 <     EGDPOOL_PATH = 302,
258 <     EMAIL = 303,
259 <     ENABLE = 304,
260 <     ENCRYPTED = 305,
261 <     EXCEED_LIMIT = 306,
262 <     EXEMPT = 307,
263 <     FAILED_OPER_NOTICE = 308,
264 <     FAKENAME = 309,
265 <     IRCD_FLAGS = 310,
266 <     FLATTEN_LINKS = 311,
267 <     FFAILED_OPERLOG = 312,
268 <     FKILLLOG = 313,
269 <     FKLINELOG = 314,
270 <     FGLINELOG = 315,
271 <     FIOERRLOG = 316,
272 <     FOPERLOG = 317,
273 <     FOPERSPYLOG = 318,
274 <     FUSERLOG = 319,
275 <     GECOS = 320,
276 <     GENERAL = 321,
277 <     GLINE = 322,
278 <     GLINES = 323,
279 <     GLINE_EXEMPT = 324,
280 <     GLINE_LOG = 325,
281 <     GLINE_TIME = 326,
282 <     GLINE_MIN_CIDR = 327,
283 <     GLINE_MIN_CIDR6 = 328,
284 <     GLOBAL_KILL = 329,
285 <     IRCD_AUTH = 330,
286 <     NEED_IDENT = 331,
287 <     HAVENT_READ_CONF = 332,
288 <     HIDDEN = 333,
289 <     HIDDEN_ADMIN = 334,
290 <     HIDDEN_NAME = 335,
291 <     HIDDEN_OPER = 336,
292 <     HIDE_SERVER_IPS = 337,
293 <     HIDE_SERVERS = 338,
294 <     HIDE_SPOOF_IPS = 339,
295 <     HOST = 340,
296 <     HUB = 341,
297 <     HUB_MASK = 342,
298 <     IDLETIME = 343,
299 <     IGNORE_BOGUS_TS = 344,
300 <     INVISIBLE_ON_CONNECT = 345,
301 <     IP = 346,
302 <     KILL = 347,
303 <     KILL_CHASE_TIME_LIMIT = 348,
304 <     KLINE = 349,
305 <     KLINE_EXEMPT = 350,
306 <     KLINE_REASON = 351,
307 <     KLINE_WITH_REASON = 352,
308 <     KNOCK_DELAY = 353,
309 <     KNOCK_DELAY_CHANNEL = 354,
310 <     LEAF_MASK = 355,
311 <     LINKS_DELAY = 356,
312 <     LISTEN = 357,
313 <     T_LOG = 358,
314 <     LOGGING = 359,
315 <     LOG_LEVEL = 360,
316 <     MAX_ACCEPT = 361,
317 <     MAX_BANS = 362,
318 <     MAX_CHANS_PER_USER = 363,
319 <     MAX_GLOBAL = 364,
320 <     MAX_IDENT = 365,
321 <     MAX_LOCAL = 366,
322 <     MAX_NICK_CHANGES = 367,
323 <     MAX_NICK_TIME = 368,
324 <     MAX_NUMBER = 369,
325 <     MAX_TARGETS = 370,
326 <     MAX_WATCH = 371,
327 <     MESSAGE_LOCALE = 372,
328 <     MIN_NONWILDCARD = 373,
329 <     MIN_NONWILDCARD_SIMPLE = 374,
330 <     MODULE = 375,
331 <     MODULES = 376,
332 <     NAME = 377,
333 <     NEED_PASSWORD = 378,
334 <     NETWORK_DESC = 379,
335 <     NETWORK_NAME = 380,
336 <     NICK = 381,
337 <     NICK_CHANGES = 382,
338 <     NO_CREATE_ON_SPLIT = 383,
339 <     NO_JOIN_ON_SPLIT = 384,
340 <     NO_OPER_FLOOD = 385,
341 <     NO_TILDE = 386,
342 <     NOT = 387,
343 <     NUMBER = 388,
344 <     NUMBER_PER_IDENT = 389,
345 <     NUMBER_PER_CIDR = 390,
346 <     NUMBER_PER_IP = 391,
347 <     NUMBER_PER_IP_GLOBAL = 392,
348 <     OPERATOR = 393,
349 <     OPERS_BYPASS_CALLERID = 394,
350 <     OPER_LOG = 395,
351 <     OPER_ONLY_UMODES = 396,
352 <     OPER_PASS_RESV = 397,
353 <     OPER_SPY_T = 398,
354 <     OPER_UMODES = 399,
355 <     JOIN_FLOOD_COUNT = 400,
356 <     JOIN_FLOOD_TIME = 401,
357 <     PACE_WAIT = 402,
358 <     PACE_WAIT_SIMPLE = 403,
359 <     PASSWORD = 404,
360 <     PATH = 405,
361 <     PING_COOKIE = 406,
362 <     PING_TIME = 407,
363 <     PING_WARNING = 408,
364 <     PORT = 409,
365 <     QSTRING = 410,
366 <     QUIET_ON_BAN = 411,
367 <     REASON = 412,
368 <     REDIRPORT = 413,
369 <     REDIRSERV = 414,
370 <     REGEX_T = 415,
371 <     REHASH = 416,
372 <     TREJECT_HOLD_TIME = 417,
373 <     REMOTE = 418,
374 <     REMOTEBAN = 419,
375 <     RESTRICT_CHANNELS = 420,
376 <     RESTRICTED = 421,
377 <     RSA_PRIVATE_KEY_FILE = 422,
378 <     RSA_PUBLIC_KEY_FILE = 423,
379 <     SSL_CERTIFICATE_FILE = 424,
380 <     T_SSL_CONNECTION_METHOD = 425,
381 <     T_SSLV3 = 426,
382 <     T_TLSV1 = 427,
383 <     RESV = 428,
384 <     RESV_EXEMPT = 429,
385 <     SECONDS = 430,
386 <     MINUTES = 431,
387 <     HOURS = 432,
388 <     DAYS = 433,
389 <     WEEKS = 434,
390 <     SENDQ = 435,
391 <     SEND_PASSWORD = 436,
392 <     SERVERHIDE = 437,
393 <     SERVERINFO = 438,
394 <     SERVLINK_PATH = 439,
395 <     IRCD_SID = 440,
396 <     TKLINE_EXPIRE_NOTICES = 441,
397 <     T_SHARED = 442,
398 <     T_CLUSTER = 443,
399 <     TYPE = 444,
400 <     SHORT_MOTD = 445,
401 <     SILENT = 446,
402 <     SPOOF = 447,
403 <     SPOOF_NOTICE = 448,
404 <     STATS_E_DISABLED = 449,
405 <     STATS_I_OPER_ONLY = 450,
406 <     STATS_K_OPER_ONLY = 451,
407 <     STATS_O_OPER_ONLY = 452,
408 <     STATS_P_OPER_ONLY = 453,
409 <     TBOOL = 454,
410 <     TMASKED = 455,
411 <     T_REJECT = 456,
412 <     TS_MAX_DELTA = 457,
413 <     TS_WARN_DELTA = 458,
414 <     TWODOTS = 459,
415 <     T_ALL = 460,
416 <     T_BOTS = 461,
417 <     T_SOFTCALLERID = 462,
418 <     T_CALLERID = 463,
419 <     T_CCONN = 464,
420 <     T_CCONN_FULL = 465,
421 <     T_CLIENT_FLOOD = 466,
422 <     T_DEAF = 467,
423 <     T_DEBUG = 468,
418 <     T_DRONE = 469,
419 <     T_EXTERNAL = 470,
420 <     T_FULL = 471,
421 <     T_INVISIBLE = 472,
422 <     T_IPV4 = 473,
423 <     T_IPV6 = 474,
424 <     T_LOCOPS = 475,
425 <     T_LOGPATH = 476,
426 <     T_L_CRIT = 477,
427 <     T_L_DEBUG = 478,
428 <     T_L_ERROR = 479,
429 <     T_L_INFO = 480,
430 <     T_L_NOTICE = 481,
431 <     T_L_TRACE = 482,
432 <     T_L_WARN = 483,
433 <     T_MAX_CLIENTS = 484,
434 <     T_NCHANGE = 485,
435 <     T_OPERWALL = 486,
436 <     T_REJ = 487,
437 <     T_SERVER = 488,
438 <     T_SERVNOTICE = 489,
439 <     T_SKILL = 490,
440 <     T_SPY = 491,
441 <     T_SSL = 492,
442 <     T_UMODES = 493,
443 <     T_UNAUTH = 494,
444 <     T_UNRESV = 495,
445 <     T_UNXLINE = 496,
446 <     T_WALLOP = 497,
447 <     THROTTLE_TIME = 498,
448 <     TOPICBURST = 499,
449 <     TRUE_NO_OPER_FLOOD = 500,
450 <     TKLINE = 501,
451 <     TXLINE = 502,
452 <     TRESV = 503,
453 <     UNKLINE = 504,
454 <     USER = 505,
455 <     USE_EGD = 506,
456 <     USE_EXCEPT = 507,
457 <     USE_INVEX = 508,
458 <     USE_KNOCK = 509,
459 <     USE_LOGGING = 510,
460 <     USE_WHOIS_ACTUALLY = 511,
461 <     VHOST = 512,
462 <     VHOST6 = 513,
463 <     XLINE = 514,
464 <     WARN = 515,
465 <     WARN_NO_NLINE = 516
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_RESTART = 454,
410 >     T_SERVICE = 455,
411 >     T_SERVICES_NAME = 456,
412 >     THROTTLE_TIME = 457,
413 >     TRUE_NO_OPER_FLOOD = 458,
414 >     UNKLINE = 459,
415 >     USER = 460,
416 >     USE_EGD = 461,
417 >     USE_LOGGING = 462,
418 >     VHOST = 463,
419 >     VHOST6 = 464,
420 >     XLINE = 465,
421 >     WARN_NO_NLINE = 466,
422 >     T_SIZE = 467,
423 >     T_FILE = 468
424     };
425   #endif
426   /* Tokens.  */
427   #define ACCEPT_PASSWORD 258
428 < #define ACTION 259
429 < #define ADMIN 260
430 < #define AFTYPE 261
431 < #define T_ALLOW 262
432 < #define ANTI_NICK_FLOOD 263
433 < #define ANTI_SPAM_EXIT_MESSAGE_TIME 264
434 < #define AUTOCONN 265
435 < #define T_BLOCK 266
436 < #define BURST_AWAY 267
437 < #define BURST_TOPICWHO 268
438 < #define BYTES 269
439 < #define KBYTES 270
440 < #define MBYTES 271
441 < #define GBYTES 272
442 < #define TBYTES 273
443 < #define CALLER_ID_WAIT 274
444 < #define CAN_FLOOD 275
445 < #define CAN_IDLE 276
446 < #define CHANNEL 277
447 < #define CIDR_BITLEN_IPV4 278
448 < #define CIDR_BITLEN_IPV6 279
449 < #define CIPHER_PREFERENCE 280
450 < #define CLASS 281
451 < #define COMPRESSED 282
452 < #define COMPRESSION_LEVEL 283
453 < #define CONNECT 284
454 < #define CONNECTFREQ 285
455 < #define CRYPTLINK 286
456 < #define DEFAULT_CIPHER_PREFERENCE 287
457 < #define DEFAULT_FLOODCOUNT 288
458 < #define DEFAULT_SPLIT_SERVER_COUNT 289
459 < #define DEFAULT_SPLIT_USER_COUNT 290
460 < #define DENY 291
461 < #define DESCRIPTION 292
462 < #define DIE 293
463 < #define DISABLE_AUTH 294
464 < #define DISABLE_FAKE_CHANNELS 295
465 < #define DISABLE_HIDDEN 296
466 < #define DISABLE_LOCAL_CHANNELS 297
467 < #define DISABLE_REMOTE_COMMANDS 298
468 < #define DOT_IN_IP6_ADDR 299
469 < #define DOTS_IN_IDENT 300
470 < #define DURATION 301
471 < #define EGDPOOL_PATH 302
472 < #define EMAIL 303
473 < #define ENABLE 304
474 < #define ENCRYPTED 305
475 < #define EXCEED_LIMIT 306
476 < #define EXEMPT 307
477 < #define FAILED_OPER_NOTICE 308
478 < #define FAKENAME 309
479 < #define IRCD_FLAGS 310
480 < #define FLATTEN_LINKS 311
481 < #define FFAILED_OPERLOG 312
482 < #define FKILLLOG 313
483 < #define FKLINELOG 314
484 < #define FGLINELOG 315
485 < #define FIOERRLOG 316
486 < #define FOPERLOG 317
487 < #define FOPERSPYLOG 318
488 < #define FUSERLOG 319
489 < #define GECOS 320
490 < #define GENERAL 321
491 < #define GLINE 322
492 < #define GLINES 323
493 < #define GLINE_EXEMPT 324
494 < #define GLINE_LOG 325
495 < #define GLINE_TIME 326
496 < #define GLINE_MIN_CIDR 327
497 < #define GLINE_MIN_CIDR6 328
498 < #define GLOBAL_KILL 329
499 < #define IRCD_AUTH 330
500 < #define NEED_IDENT 331
501 < #define HAVENT_READ_CONF 332
502 < #define HIDDEN 333
503 < #define HIDDEN_ADMIN 334
504 < #define HIDDEN_NAME 335
505 < #define HIDDEN_OPER 336
506 < #define HIDE_SERVER_IPS 337
507 < #define HIDE_SERVERS 338
508 < #define HIDE_SPOOF_IPS 339
509 < #define HOST 340
510 < #define HUB 341
511 < #define HUB_MASK 342
512 < #define IDLETIME 343
513 < #define IGNORE_BOGUS_TS 344
514 < #define INVISIBLE_ON_CONNECT 345
515 < #define IP 346
516 < #define KILL 347
517 < #define KILL_CHASE_TIME_LIMIT 348
518 < #define KLINE 349
519 < #define KLINE_EXEMPT 350
520 < #define KLINE_REASON 351
521 < #define KLINE_WITH_REASON 352
522 < #define KNOCK_DELAY 353
523 < #define KNOCK_DELAY_CHANNEL 354
524 < #define LEAF_MASK 355
525 < #define LINKS_DELAY 356
526 < #define LISTEN 357
527 < #define T_LOG 358
528 < #define LOGGING 359
529 < #define LOG_LEVEL 360
530 < #define MAX_ACCEPT 361
531 < #define MAX_BANS 362
532 < #define MAX_CHANS_PER_USER 363
533 < #define MAX_GLOBAL 364
534 < #define MAX_IDENT 365
535 < #define MAX_LOCAL 366
536 < #define MAX_NICK_CHANGES 367
537 < #define MAX_NICK_TIME 368
538 < #define MAX_NUMBER 369
539 < #define MAX_TARGETS 370
540 < #define MAX_WATCH 371
541 < #define MESSAGE_LOCALE 372
542 < #define MIN_NONWILDCARD 373
543 < #define MIN_NONWILDCARD_SIMPLE 374
544 < #define MODULE 375
545 < #define MODULES 376
546 < #define NAME 377
547 < #define NEED_PASSWORD 378
548 < #define NETWORK_DESC 379
549 < #define NETWORK_NAME 380
550 < #define NICK 381
551 < #define NICK_CHANGES 382
552 < #define NO_CREATE_ON_SPLIT 383
553 < #define NO_JOIN_ON_SPLIT 384
554 < #define NO_OPER_FLOOD 385
555 < #define NO_TILDE 386
556 < #define NOT 387
557 < #define NUMBER 388
558 < #define NUMBER_PER_IDENT 389
559 < #define NUMBER_PER_CIDR 390
560 < #define NUMBER_PER_IP 391
561 < #define NUMBER_PER_IP_GLOBAL 392
562 < #define OPERATOR 393
563 < #define OPERS_BYPASS_CALLERID 394
564 < #define OPER_LOG 395
565 < #define OPER_ONLY_UMODES 396
566 < #define OPER_PASS_RESV 397
567 < #define OPER_SPY_T 398
568 < #define OPER_UMODES 399
569 < #define JOIN_FLOOD_COUNT 400
570 < #define JOIN_FLOOD_TIME 401
571 < #define PACE_WAIT 402
572 < #define PACE_WAIT_SIMPLE 403
573 < #define PASSWORD 404
574 < #define PATH 405
575 < #define PING_COOKIE 406
576 < #define PING_TIME 407
577 < #define PING_WARNING 408
578 < #define PORT 409
579 < #define QSTRING 410
580 < #define QUIET_ON_BAN 411
581 < #define REASON 412
582 < #define REDIRPORT 413
583 < #define REDIRSERV 414
584 < #define REGEX_T 415
585 < #define REHASH 416
586 < #define TREJECT_HOLD_TIME 417
587 < #define REMOTE 418
588 < #define REMOTEBAN 419
589 < #define RESTRICT_CHANNELS 420
590 < #define RESTRICTED 421
591 < #define RSA_PRIVATE_KEY_FILE 422
592 < #define RSA_PUBLIC_KEY_FILE 423
593 < #define SSL_CERTIFICATE_FILE 424
594 < #define T_SSL_CONNECTION_METHOD 425
595 < #define T_SSLV3 426
596 < #define T_TLSV1 427
597 < #define RESV 428
598 < #define RESV_EXEMPT 429
599 < #define SECONDS 430
600 < #define MINUTES 431
601 < #define HOURS 432
602 < #define DAYS 433
603 < #define WEEKS 434
604 < #define SENDQ 435
605 < #define SEND_PASSWORD 436
606 < #define SERVERHIDE 437
607 < #define SERVERINFO 438
608 < #define SERVLINK_PATH 439
609 < #define IRCD_SID 440
610 < #define TKLINE_EXPIRE_NOTICES 441
611 < #define T_SHARED 442
612 < #define T_CLUSTER 443
613 < #define TYPE 444
614 < #define SHORT_MOTD 445
615 < #define SILENT 446
616 < #define SPOOF 447
617 < #define SPOOF_NOTICE 448
618 < #define STATS_E_DISABLED 449
619 < #define STATS_I_OPER_ONLY 450
620 < #define STATS_K_OPER_ONLY 451
621 < #define STATS_O_OPER_ONLY 452
622 < #define STATS_P_OPER_ONLY 453
623 < #define TBOOL 454
624 < #define TMASKED 455
625 < #define T_REJECT 456
626 < #define TS_MAX_DELTA 457
627 < #define TS_WARN_DELTA 458
628 < #define TWODOTS 459
629 < #define T_ALL 460
630 < #define T_BOTS 461
631 < #define T_SOFTCALLERID 462
632 < #define T_CALLERID 463
633 < #define T_CCONN 464
634 < #define T_CCONN_FULL 465
635 < #define T_CLIENT_FLOOD 466
636 < #define T_DEAF 467
637 < #define T_DEBUG 468
680 < #define T_DRONE 469
681 < #define T_EXTERNAL 470
682 < #define T_FULL 471
683 < #define T_INVISIBLE 472
684 < #define T_IPV4 473
685 < #define T_IPV6 474
686 < #define T_LOCOPS 475
687 < #define T_LOGPATH 476
688 < #define T_L_CRIT 477
689 < #define T_L_DEBUG 478
690 < #define T_L_ERROR 479
691 < #define T_L_INFO 480
692 < #define T_L_NOTICE 481
693 < #define T_L_TRACE 482
694 < #define T_L_WARN 483
695 < #define T_MAX_CLIENTS 484
696 < #define T_NCHANGE 485
697 < #define T_OPERWALL 486
698 < #define T_REJ 487
699 < #define T_SERVER 488
700 < #define T_SERVNOTICE 489
701 < #define T_SKILL 490
702 < #define T_SPY 491
703 < #define T_SSL 492
704 < #define T_UMODES 493
705 < #define T_UNAUTH 494
706 < #define T_UNRESV 495
707 < #define T_UNXLINE 496
708 < #define T_WALLOP 497
709 < #define THROTTLE_TIME 498
710 < #define TOPICBURST 499
711 < #define TRUE_NO_OPER_FLOOD 500
712 < #define TKLINE 501
713 < #define TXLINE 502
714 < #define TRESV 503
715 < #define UNKLINE 504
716 < #define USER 505
717 < #define USE_EGD 506
718 < #define USE_EXCEPT 507
719 < #define USE_INVEX 508
720 < #define USE_KNOCK 509
721 < #define USE_LOGGING 510
722 < #define USE_WHOIS_ACTUALLY 511
723 < #define VHOST 512
724 < #define VHOST6 513
725 < #define XLINE 514
726 < #define WARN 515
727 < #define WARN_NO_NLINE 516
728 <
428 > #define ADMIN 259
429 > #define AFTYPE 260
430 > #define ANTI_NICK_FLOOD 261
431 > #define ANTI_SPAM_EXIT_MESSAGE_TIME 262
432 > #define AUTOCONN 263
433 > #define BYTES 264
434 > #define KBYTES 265
435 > #define MBYTES 266
436 > #define CALLER_ID_WAIT 267
437 > #define CAN_FLOOD 268
438 > #define CHANNEL 269
439 > #define CIDR_BITLEN_IPV4 270
440 > #define CIDR_BITLEN_IPV6 271
441 > #define CLASS 272
442 > #define CONNECT 273
443 > #define CONNECTFREQ 274
444 > #define DEFAULT_FLOODCOUNT 275
445 > #define DEFAULT_SPLIT_SERVER_COUNT 276
446 > #define DEFAULT_SPLIT_USER_COUNT 277
447 > #define DENY 278
448 > #define DESCRIPTION 279
449 > #define DIE 280
450 > #define DISABLE_AUTH 281
451 > #define DISABLE_FAKE_CHANNELS 282
452 > #define DISABLE_REMOTE_COMMANDS 283
453 > #define DOTS_IN_IDENT 284
454 > #define EGDPOOL_PATH 285
455 > #define EMAIL 286
456 > #define ENCRYPTED 287
457 > #define EXCEED_LIMIT 288
458 > #define EXEMPT 289
459 > #define FAILED_OPER_NOTICE 290
460 > #define IRCD_FLAGS 291
461 > #define FLATTEN_LINKS 292
462 > #define GECOS 293
463 > #define GENERAL 294
464 > #define GLINE 295
465 > #define GLINE_DURATION 296
466 > #define GLINE_ENABLE 297
467 > #define GLINE_EXEMPT 298
468 > #define GLINE_REQUEST_DURATION 299
469 > #define GLINE_MIN_CIDR 300
470 > #define GLINE_MIN_CIDR6 301
471 > #define GLOBAL_KILL 302
472 > #define IRCD_AUTH 303
473 > #define NEED_IDENT 304
474 > #define HAVENT_READ_CONF 305
475 > #define HIDDEN 306
476 > #define HIDDEN_NAME 307
477 > #define HIDE_SERVER_IPS 308
478 > #define HIDE_SERVERS 309
479 > #define HIDE_SPOOF_IPS 310
480 > #define HOST 311
481 > #define HUB 312
482 > #define HUB_MASK 313
483 > #define IGNORE_BOGUS_TS 314
484 > #define INVISIBLE_ON_CONNECT 315
485 > #define IP 316
486 > #define KILL 317
487 > #define KILL_CHASE_TIME_LIMIT 318
488 > #define KLINE 319
489 > #define KLINE_EXEMPT 320
490 > #define KNOCK_DELAY 321
491 > #define KNOCK_DELAY_CHANNEL 322
492 > #define LEAF_MASK 323
493 > #define LINKS_DELAY 324
494 > #define LISTEN 325
495 > #define T_LOG 326
496 > #define MAX_ACCEPT 327
497 > #define MAX_BANS 328
498 > #define MAX_CHANS_PER_OPER 329
499 > #define MAX_CHANS_PER_USER 330
500 > #define MAX_GLOBAL 331
501 > #define MAX_IDENT 332
502 > #define MAX_LOCAL 333
503 > #define MAX_NICK_CHANGES 334
504 > #define MAX_NICK_TIME 335
505 > #define MAX_NUMBER 336
506 > #define MAX_TARGETS 337
507 > #define MAX_WATCH 338
508 > #define MESSAGE_LOCALE 339
509 > #define MIN_NONWILDCARD 340
510 > #define MIN_NONWILDCARD_SIMPLE 341
511 > #define MODULE 342
512 > #define MODULES 343
513 > #define NAME 344
514 > #define NEED_PASSWORD 345
515 > #define NETWORK_DESC 346
516 > #define NETWORK_NAME 347
517 > #define NICK 348
518 > #define NICK_CHANGES 349
519 > #define NO_CREATE_ON_SPLIT 350
520 > #define NO_JOIN_ON_SPLIT 351
521 > #define NO_OPER_FLOOD 352
522 > #define NO_TILDE 353
523 > #define NUMBER 354
524 > #define NUMBER_PER_CIDR 355
525 > #define NUMBER_PER_IP 356
526 > #define OPERATOR 357
527 > #define OPERS_BYPASS_CALLERID 358
528 > #define OPER_ONLY_UMODES 359
529 > #define OPER_PASS_RESV 360
530 > #define OPER_SPY_T 361
531 > #define OPER_UMODES 362
532 > #define JOIN_FLOOD_COUNT 363
533 > #define JOIN_FLOOD_TIME 364
534 > #define PACE_WAIT 365
535 > #define PACE_WAIT_SIMPLE 366
536 > #define PASSWORD 367
537 > #define PATH 368
538 > #define PING_COOKIE 369
539 > #define PING_TIME 370
540 > #define PORT 371
541 > #define QSTRING 372
542 > #define QUIET_ON_BAN 373
543 > #define REASON 374
544 > #define REDIRPORT 375
545 > #define REDIRSERV 376
546 > #define REGEX_T 377
547 > #define REHASH 378
548 > #define REMOTE 379
549 > #define REMOTEBAN 380
550 > #define RESTRICT_CHANNELS 381
551 > #define RSA_PRIVATE_KEY_FILE 382
552 > #define RSA_PUBLIC_KEY_FILE 383
553 > #define SSL_CERTIFICATE_FILE 384
554 > #define SSL_DH_PARAM_FILE 385
555 > #define T_SSL_CLIENT_METHOD 386
556 > #define T_SSL_SERVER_METHOD 387
557 > #define T_SSLV3 388
558 > #define T_TLSV1 389
559 > #define RESV 390
560 > #define RESV_EXEMPT 391
561 > #define SECONDS 392
562 > #define MINUTES 393
563 > #define HOURS 394
564 > #define DAYS 395
565 > #define WEEKS 396
566 > #define SENDQ 397
567 > #define SEND_PASSWORD 398
568 > #define SERVERHIDE 399
569 > #define SERVERINFO 400
570 > #define IRCD_SID 401
571 > #define TKLINE_EXPIRE_NOTICES 402
572 > #define T_SHARED 403
573 > #define T_CLUSTER 404
574 > #define TYPE 405
575 > #define SHORT_MOTD 406
576 > #define SPOOF 407
577 > #define SPOOF_NOTICE 408
578 > #define STATS_E_DISABLED 409
579 > #define STATS_I_OPER_ONLY 410
580 > #define STATS_K_OPER_ONLY 411
581 > #define STATS_O_OPER_ONLY 412
582 > #define STATS_P_OPER_ONLY 413
583 > #define TBOOL 414
584 > #define TMASKED 415
585 > #define TS_MAX_DELTA 416
586 > #define TS_WARN_DELTA 417
587 > #define TWODOTS 418
588 > #define T_ALL 419
589 > #define T_BOTS 420
590 > #define T_SOFTCALLERID 421
591 > #define T_CALLERID 422
592 > #define T_CCONN 423
593 > #define T_CCONN_FULL 424
594 > #define T_SSL_CIPHER_LIST 425
595 > #define T_DEAF 426
596 > #define T_DEBUG 427
597 > #define T_DLINE 428
598 > #define T_EXTERNAL 429
599 > #define T_FULL 430
600 > #define T_INVISIBLE 431
601 > #define T_IPV4 432
602 > #define T_IPV6 433
603 > #define T_LOCOPS 434
604 > #define T_MAX_CLIENTS 435
605 > #define T_NCHANGE 436
606 > #define T_OPERWALL 437
607 > #define T_RECVQ 438
608 > #define T_REJ 439
609 > #define T_SERVER 440
610 > #define T_SERVNOTICE 441
611 > #define T_SET 442
612 > #define T_SKILL 443
613 > #define T_SPY 444
614 > #define T_SSL 445
615 > #define T_UMODES 446
616 > #define T_UNAUTH 447
617 > #define T_UNDLINE 448
618 > #define T_UNLIMITED 449
619 > #define T_UNRESV 450
620 > #define T_UNXLINE 451
621 > #define T_GLOBOPS 452
622 > #define T_WALLOP 453
623 > #define T_RESTART 454
624 > #define T_SERVICE 455
625 > #define T_SERVICES_NAME 456
626 > #define THROTTLE_TIME 457
627 > #define TRUE_NO_OPER_FLOOD 458
628 > #define UNKLINE 459
629 > #define USER 460
630 > #define USE_EGD 461
631 > #define USE_LOGGING 462
632 > #define VHOST 463
633 > #define VHOST6 464
634 > #define XLINE 465
635 > #define WARN_NO_NLINE 466
636 > #define T_SIZE 467
637 > #define T_FILE 468
638  
639  
640  
641   #if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED
642   typedef union YYSTYPE
643   {
644 <
645 < /* Line 214 of yacc.c  */
737 < #line 132 "ircd_parser.y"
644 > /* Line 376 of yacc.c  */
645 > #line 135 "conf_parser.y"
646  
647    int number;
648    char *string;
649  
650  
651 <
652 < /* Line 214 of yacc.c  */
745 < #line 746 "ircd_parser.c"
651 > /* Line 376 of yacc.c  */
652 > #line 653 "conf_parser.c"
653   } YYSTYPE;
654   # define YYSTYPE_IS_TRIVIAL 1
655   # define yystype YYSTYPE /* obsolescent; will be withdrawn */
656   # define YYSTYPE_IS_DECLARED 1
657   #endif
658  
659 + extern YYSTYPE yylval;
660  
661 < /* Copy the second part of user declarations.  */
661 > #ifdef YYPARSE_PARAM
662 > #if defined __STDC__ || defined __cplusplus
663 > int yyparse (void *YYPARSE_PARAM);
664 > #else
665 > int yyparse ();
666 > #endif
667 > #else /* ! YYPARSE_PARAM */
668 > #if defined __STDC__ || defined __cplusplus
669 > int yyparse (void);
670 > #else
671 > int yyparse ();
672 > #endif
673 > #endif /* ! YYPARSE_PARAM */
674  
675 + #endif /* !YY_YY_Y_TAB_H_INCLUDED  */
676  
677 < /* Line 264 of yacc.c  */
678 < #line 758 "ircd_parser.c"
677 > /* Copy the second part of user declarations.  */
678 >
679 > /* Line 379 of yacc.c  */
680 > #line 681 "conf_parser.c"
681  
682   #ifdef short
683   # undef short
# Line 804 | Line 727 | typedef short int yytype_int16;
727   #define YYSIZE_MAXIMUM ((YYSIZE_T) -1)
728  
729   #ifndef YY_
730 < # if YYENABLE_NLS
730 > # if defined YYENABLE_NLS && YYENABLE_NLS
731   #  if ENABLE_NLS
732   #   include <libintl.h> /* INFRINGES ON USER NAME SPACE */
733 < #   define YY_(msgid) dgettext ("bison-runtime", msgid)
733 > #   define YY_(Msgid) dgettext ("bison-runtime", Msgid)
734   #  endif
735   # endif
736   # ifndef YY_
737 < #  define YY_(msgid) msgid
737 > #  define YY_(Msgid) Msgid
738   # endif
739   #endif
740  
741   /* Suppress unused-variable warnings by "using" E.  */
742   #if ! defined lint || defined __GNUC__
743 < # define YYUSE(e) ((void) (e))
743 > # define YYUSE(E) ((void) (E))
744   #else
745 < # define YYUSE(e) /* empty */
745 > # define YYUSE(E) /* empty */
746   #endif
747  
748   /* Identity function, used to suppress warnings about constant conditions.  */
749   #ifndef lint
750 < # define YYID(n) (n)
750 > # define YYID(N) (N)
751   #else
752   #if (defined __STDC__ || defined __C99__FUNC__ \
753       || defined __cplusplus || defined _MSC_VER)
# Line 857 | Line 780 | YYID (yyi)
780   #    define alloca _alloca
781   #   else
782   #    define YYSTACK_ALLOC alloca
783 < #    if ! defined _ALLOCA_H && ! defined _STDLIB_H && (defined __STDC__ || defined __C99__FUNC__ \
783 > #    if ! defined _ALLOCA_H && ! defined EXIT_SUCCESS && (defined __STDC__ || defined __C99__FUNC__ \
784       || defined __cplusplus || defined _MSC_VER)
785   #     include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
786 < #     ifndef _STDLIB_H
787 < #      define _STDLIB_H 1
786 >      /* Use EXIT_SUCCESS as a witness for stdlib.h.  */
787 > #     ifndef EXIT_SUCCESS
788 > #      define EXIT_SUCCESS 0
789   #     endif
790   #    endif
791   #   endif
# Line 884 | Line 808 | YYID (yyi)
808   #  ifndef YYSTACK_ALLOC_MAXIMUM
809   #   define YYSTACK_ALLOC_MAXIMUM YYSIZE_MAXIMUM
810   #  endif
811 < #  if (defined __cplusplus && ! defined _STDLIB_H \
811 > #  if (defined __cplusplus && ! defined EXIT_SUCCESS \
812         && ! ((defined YYMALLOC || defined malloc) \
813               && (defined YYFREE || defined free)))
814   #   include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
815 < #   ifndef _STDLIB_H
816 < #    define _STDLIB_H 1
815 > #   ifndef EXIT_SUCCESS
816 > #    define EXIT_SUCCESS 0
817   #   endif
818   #  endif
819   #  ifndef YYMALLOC
820   #   define YYMALLOC malloc
821 < #   if ! defined malloc && ! defined _STDLIB_H && (defined __STDC__ || defined __C99__FUNC__ \
821 > #   if ! defined malloc && ! defined EXIT_SUCCESS && (defined __STDC__ || defined __C99__FUNC__ \
822       || defined __cplusplus || defined _MSC_VER)
823   void *malloc (YYSIZE_T); /* INFRINGES ON USER NAME SPACE */
824   #   endif
825   #  endif
826   #  ifndef YYFREE
827   #   define YYFREE free
828 < #   if ! defined free && ! defined _STDLIB_H && (defined __STDC__ || defined __C99__FUNC__ \
828 > #   if ! defined free && ! defined EXIT_SUCCESS && (defined __STDC__ || defined __C99__FUNC__ \
829       || defined __cplusplus || defined _MSC_VER)
830   void free (void *); /* INFRINGES ON USER NAME SPACE */
831   #   endif
# Line 930 | Line 854 | union yyalloc
854       ((N) * (sizeof (yytype_int16) + sizeof (YYSTYPE)) \
855        + YYSTACK_GAP_MAXIMUM)
856  
857 < /* Copy COUNT objects from FROM to TO.  The source and destination do
934 <   not overlap.  */
935 < # ifndef YYCOPY
936 < #  if defined __GNUC__ && 1 < __GNUC__
937 < #   define YYCOPY(To, From, Count) \
938 <      __builtin_memcpy (To, From, (Count) * sizeof (*(From)))
939 < #  else
940 < #   define YYCOPY(To, From, Count)              \
941 <      do                                        \
942 <        {                                       \
943 <          YYSIZE_T yyi;                         \
944 <          for (yyi = 0; yyi < (Count); yyi++)   \
945 <            (To)[yyi] = (From)[yyi];            \
946 <        }                                       \
947 <      while (YYID (0))
948 < #  endif
949 < # endif
857 > # define YYCOPY_NEEDED 1
858  
859   /* Relocate STACK from its old location to the new one.  The
860     local variables YYSIZE and YYSTACKSIZE give the old and new number of
# Line 966 | Line 874 | union yyalloc
874  
875   #endif
876  
877 + #if defined YYCOPY_NEEDED && YYCOPY_NEEDED
878 + /* Copy COUNT objects from SRC to DST.  The source and destination do
879 +   not overlap.  */
880 + # ifndef YYCOPY
881 + #  if defined __GNUC__ && 1 < __GNUC__
882 + #   define YYCOPY(Dst, Src, Count) \
883 +      __builtin_memcpy (Dst, Src, (Count) * sizeof (*(Src)))
884 + #  else
885 + #   define YYCOPY(Dst, Src, Count)              \
886 +      do                                        \
887 +        {                                       \
888 +          YYSIZE_T yyi;                         \
889 +          for (yyi = 0; yyi < (Count); yyi++)   \
890 +            (Dst)[yyi] = (Src)[yyi];            \
891 +        }                                       \
892 +      while (YYID (0))
893 + #  endif
894 + # endif
895 + #endif /* !YYCOPY_NEEDED */
896 +
897   /* YYFINAL -- State number of the termination state.  */
898   #define YYFINAL  2
899   /* YYLAST -- Last index in YYTABLE.  */
900 < #define YYLAST   1413
900 > #define YYLAST   1180
901  
902   /* YYNTOKENS -- Number of terminals.  */
903 < #define YYNTOKENS  267
903 > #define YYNTOKENS  219
904   /* YYNNTS -- Number of nonterminals.  */
905 < #define YYNNTS  346
905 > #define YYNNTS  282
906   /* YYNRULES -- Number of rules.  */
907 < #define YYNRULES  743
907 > #define YYNRULES  625
908   /* YYNRULES -- Number of states.  */
909 < #define YYNSTATES  1494
909 > #define YYNSTATES  1223
910  
911   /* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX.  */
912   #define YYUNDEFTOK  2
913 < #define YYMAXUTOK   516
913 > #define YYMAXUTOK   468
914  
915   #define YYTRANSLATE(YYX)                                                \
916    ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK)
917  
918   /* YYTRANSLATE[YYLEX] -- Bison symbol number corresponding to YYLEX.  */
919 < static const yytype_uint16 yytranslate[] =
919 > static const yytype_uint8 yytranslate[] =
920   {
921         0,     2,     2,     2,     2,     2,     2,     2,     2,     2,
922         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
923         2,     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,   266,     2,     2,     2,     2,     2,
926 <       2,     2,     2,     2,     2,     2,     2,     2,     2,   262,
927 <       2,   265,     2,     2,     2,     2,     2,     2,     2,     2,
925 >       2,     2,     2,     2,   218,     2,     2,     2,     2,     2,
926 >       2,     2,     2,     2,     2,     2,     2,     2,     2,   214,
927 >       2,   217,     2,     2,     2,     2,     2,     2,     2,     2,
928         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
929         2,     2,     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,   264,     2,   263,     2,     2,     2,     2,
933 >       2,     2,     2,   216,     2,   215,     2,     2,     2,     2,
934         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
935         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
936         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
# Line 1036 | Line 964 | static const yytype_uint16 yytranslate[]
964       175,   176,   177,   178,   179,   180,   181,   182,   183,   184,
965       185,   186,   187,   188,   189,   190,   191,   192,   193,   194,
966       195,   196,   197,   198,   199,   200,   201,   202,   203,   204,
967 <     205,   206,   207,   208,   209,   210,   211,   212,   213,   214,
1040 <     215,   216,   217,   218,   219,   220,   221,   222,   223,   224,
1041 <     225,   226,   227,   228,   229,   230,   231,   232,   233,   234,
1042 <     235,   236,   237,   238,   239,   240,   241,   242,   243,   244,
1043 <     245,   246,   247,   248,   249,   250,   251,   252,   253,   254,
1044 <     255,   256,   257,   258,   259,   260,   261
967 >     205,   206,   207,   208,   209,   210,   211,   212,   213
968   };
969  
970   #if YYDEBUG
# Line 1055 | Line 978 | static const yytype_uint16 yyprhs[] =
978        63,    67,    71,    75,    79,    80,    82,    85,    89,    93,
979        97,   103,   106,   108,   110,   112,   115,   120,   125,   131,
980       134,   136,   138,   140,   142,   144,   146,   148,   150,   152,
981 <     154,   156,   158,   160,   163,   164,   170,   174,   176,   178,
982 <     180,   185,   190,   195,   200,   205,   210,   215,   220,   225,
983 <     230,   235,   241,   244,   246,   248,   250,   252,   255,   260,
984 <     265,   270,   276,   279,   281,   283,   285,   287,   289,   291,
985 <     293,   295,   297,   299,   301,   303,   305,   308,   313,   318,
986 <     323,   328,   333,   338,   343,   348,   353,   358,   363,   368,
987 <     373,   378,   383,   388,   393,   398,   399,   407,   408,   410,
988 <     413,   415,   417,   419,   421,   423,   425,   427,   429,   431,
989 <     433,   435,   437,   439,   441,   443,   445,   447,   449,   451,
990 <     453,   455,   457,   459,   462,   467,   469,   474,   479,   484,
991 <     489,   494,   495,   501,   505,   507,   509,   511,   513,   515,
992 <     517,   519,   521,   523,   525,   527,   529,   531,   533,   535,
993 <     537,   539,   541,   543,   545,   550,   555,   560,   565,   570,
994 <     575,   580,   585,   590,   595,   600,   605,   610,   615,   616,
995 <     622,   626,   628,   629,   633,   634,   637,   639,   641,   643,
996 <     645,   647,   649,   651,   653,   655,   657,   659,   661,   663,
997 <     665,   667,   669,   670,   678,   679,   681,   684,   686,   688,
998 <     690,   692,   694,   696,   698,   700,   702,   704,   706,   708,
999 <     710,   712,   715,   720,   722,   727,   732,   737,   742,   747,
1000 <     752,   757,   762,   767,   772,   777,   782,   783,   790,   791,
1001 <     797,   801,   803,   805,   807,   809,   812,   814,   816,   818,
1002 <     820,   822,   825,   826,   832,   836,   838,   840,   844,   849,
1003 <     854,   855,   862,   865,   867,   869,   871,   873,   875,   877,
1004 <     879,   881,   883,   885,   887,   889,   891,   893,   895,   897,
1005 <     899,   902,   907,   912,   917,   922,   927,   928,   934,   938,
1006 <     940,   941,   945,   946,   949,   951,   953,   955,   957,   959,
1007 <     961,   963,   965,   967,   969,   974,   979,   984,   989,   994,
1008 <     999,  1004,  1009,  1014,  1019,  1020,  1027,  1030,  1032,  1034,
1009 <    1036,  1038,  1041,  1046,  1051,  1056,  1057,  1064,  1067,  1069,
1010 <    1071,  1073,  1075,  1078,  1083,  1088,  1089,  1095,  1099,  1101,
1011 <    1103,  1105,  1107,  1109,  1111,  1113,  1115,  1117,  1119,  1121,
1012 <    1123,  1124,  1131,  1134,  1136,  1138,  1140,  1143,  1148,  1149,
1013 <    1155,  1159,  1161,  1163,  1165,  1167,  1169,  1171,  1173,  1175,
1014 <    1177,  1179,  1181,  1183,  1184,  1192,  1193,  1195,  1198,  1200,
1015 <    1202,  1204,  1206,  1208,  1210,  1212,  1214,  1216,  1218,  1220,
1016 <    1222,  1224,  1226,  1228,  1230,  1232,  1234,  1236,  1238,  1241,
1017 <    1246,  1248,  1253,  1258,  1263,  1268,  1273,  1278,  1283,  1288,
1018 <    1289,  1295,  1299,  1301,  1302,  1306,  1307,  1310,  1312,  1314,
1019 <    1316,  1318,  1320,  1325,  1330,  1335,  1340,  1345,  1350,  1355,
1020 <    1360,  1365,  1370,  1371,  1378,  1379,  1385,  1389,  1391,  1393,
1021 <    1396,  1398,  1400,  1402,  1404,  1406,  1411,  1416,  1417,  1424,
1022 <    1427,  1429,  1431,  1433,  1435,  1440,  1445,  1451,  1454,  1456,
1023 <    1458,  1460,  1465,  1466,  1473,  1474,  1480,  1484,  1486,  1488,
1024 <    1491,  1493,  1495,  1497,  1499,  1501,  1506,  1511,  1517,  1520,
1025 <    1522,  1524,  1526,  1528,  1530,  1532,  1534,  1536,  1538,  1540,
1026 <    1542,  1544,  1546,  1548,  1550,  1552,  1554,  1556,  1558,  1560,
1027 <    1562,  1564,  1566,  1568,  1570,  1572,  1574,  1576,  1578,  1580,
1028 <    1582,  1584,  1586,  1588,  1590,  1592,  1594,  1596,  1598,  1600,
1029 <    1602,  1604,  1606,  1608,  1610,  1612,  1614,  1616,  1618,  1620,
1030 <    1622,  1624,  1626,  1628,  1630,  1632,  1634,  1636,  1641,  1646,
1031 <    1651,  1656,  1661,  1666,  1671,  1676,  1681,  1686,  1691,  1696,
1032 <    1701,  1706,  1711,  1716,  1721,  1726,  1731,  1736,  1741,  1746,
1033 <    1751,  1756,  1761,  1766,  1771,  1776,  1781,  1786,  1791,  1796,
1034 <    1801,  1806,  1811,  1816,  1821,  1826,  1831,  1836,  1841,  1846,
1035 <    1851,  1856,  1861,  1866,  1871,  1876,  1881,  1886,  1891,  1892,
1036 <    1898,  1902,  1904,  1906,  1908,  1910,  1912,  1914,  1916,  1918,
1037 <    1920,  1922,  1924,  1926,  1928,  1930,  1932,  1934,  1936,  1938,
1115 <    1940,  1942,  1943,  1949,  1953,  1955,  1957,  1959,  1961,  1963,
1116 <    1965,  1967,  1969,  1971,  1973,  1975,  1977,  1979,  1981,  1983,
1117 <    1985,  1987,  1989,  1991,  1993,  1998,  2003,  2008,  2013,  2018,
1118 <    2019,  2026,  2029,  2031,  2033,  2035,  2037,  2039,  2041,  2043,
1119 <    2045,  2050,  2055,  2056,  2062,  2066,  2068,  2070,  2072,  2077,
1120 <    2082,  2083,  2089,  2093,  2095,  2097,  2099,  2105,  2108,  2110,
1121 <    2112,  2114,  2116,  2118,  2120,  2122,  2124,  2126,  2128,  2130,
1122 <    2132,  2134,  2136,  2138,  2140,  2142,  2144,  2146,  2148,  2153,
1123 <    2158,  2163,  2168,  2173,  2178,  2183,  2188,  2193,  2198,  2203,
1124 <    2208,  2213,  2218,  2223,  2228,  2233,  2238,  2244,  2247,  2249,
1125 <    2251,  2253,  2255,  2257,  2259,  2261,  2263,  2265,  2270,  2275,
1126 <    2280,  2285,  2290,  2295
981 >     154,   156,   158,   160,   162,   164,   166,   169,   174,   179,
982 >     183,   185,   187,   189,   193,   195,   197,   199,   204,   209,
983 >     214,   219,   224,   229,   234,   239,   244,   249,   254,   259,
984 >     264,   270,   273,   275,   277,   279,   281,   284,   289,   294,
985 >     299,   305,   308,   310,   312,   314,   317,   322,   323,   330,
986 >     333,   335,   337,   339,   341,   344,   349,   354,   359,   360,
987 >     366,   370,   372,   374,   376,   378,   380,   382,   384,   386,
988 >     387,   394,   397,   399,   401,   403,   405,   407,   409,   411,
989 >     413,   415,   418,   423,   428,   433,   438,   443,   448,   449,
990 >     455,   459,   461,   463,   465,   467,   469,   471,   473,   475,
991 >     477,   479,   481,   483,   485,   487,   489,   491,   493,   495,
992 >     497,   499,   501,   502,   508,   512,   514,   516,   518,   520,
993 >     522,   524,   526,   528,   530,   532,   534,   536,   538,   540,
994 >     542,   544,   546,   548,   550,   552,   553,   560,   563,   565,
995 >     567,   569,   571,   573,   575,   577,   579,   581,   583,   585,
996 >     587,   589,   591,   594,   599,   604,   609,   614,   619,   624,
997 >     629,   634,   639,   644,   649,   654,   659,   660,   667,   668,
998 >     674,   678,   680,   682,   684,   686,   689,   691,   693,   695,
999 >     697,   699,   702,   703,   709,   713,   715,   717,   721,   726,
1000 >     731,   732,   739,   742,   744,   746,   748,   750,   752,   754,
1001 >     756,   758,   760,   763,   768,   773,   778,   783,   784,   790,
1002 >     794,   796,   798,   800,   802,   804,   806,   808,   810,   812,
1003 >     814,   819,   824,   829,   830,   837,   840,   842,   844,   846,
1004 >     848,   851,   856,   861,   866,   872,   875,   877,   879,   881,
1005 >     886,   887,   894,   897,   899,   901,   903,   905,   908,   913,
1006 >     918,   919,   925,   929,   931,   933,   935,   937,   939,   941,
1007 >     943,   945,   947,   949,   951,   952,   959,   962,   964,   966,
1008 >     968,   971,   976,   977,   983,   987,   989,   991,   993,   995,
1009 >     997,   999,  1001,  1003,  1005,  1007,  1009,  1010,  1017,  1020,
1010 >    1022,  1024,  1026,  1028,  1030,  1032,  1034,  1036,  1038,  1040,
1011 >    1042,  1044,  1046,  1048,  1051,  1056,  1061,  1066,  1071,  1076,
1012 >    1081,  1086,  1091,  1092,  1098,  1102,  1104,  1106,  1108,  1113,
1013 >    1118,  1123,  1128,  1133,  1134,  1141,  1142,  1148,  1152,  1154,
1014 >    1156,  1159,  1161,  1163,  1165,  1167,  1169,  1174,  1179,  1180,
1015 >    1187,  1190,  1192,  1194,  1196,  1198,  1203,  1208,  1214,  1217,
1016 >    1219,  1221,  1223,  1228,  1229,  1236,  1237,  1243,  1247,  1249,
1017 >    1251,  1254,  1256,  1258,  1260,  1262,  1264,  1269,  1274,  1280,
1018 >    1283,  1285,  1287,  1289,  1291,  1293,  1295,  1297,  1299,  1301,
1019 >    1303,  1305,  1307,  1309,  1311,  1313,  1315,  1317,  1319,  1321,
1020 >    1323,  1325,  1327,  1329,  1331,  1333,  1335,  1337,  1339,  1341,
1021 >    1343,  1345,  1347,  1349,  1351,  1353,  1355,  1357,  1359,  1361,
1022 >    1363,  1365,  1367,  1369,  1371,  1373,  1375,  1377,  1379,  1381,
1023 >    1383,  1385,  1390,  1395,  1400,  1405,  1410,  1415,  1420,  1425,
1024 >    1430,  1435,  1440,  1445,  1450,  1455,  1460,  1465,  1470,  1475,
1025 >    1480,  1485,  1490,  1495,  1500,  1505,  1510,  1515,  1520,  1525,
1026 >    1530,  1535,  1540,  1545,  1550,  1555,  1560,  1565,  1570,  1575,
1027 >    1580,  1585,  1590,  1595,  1600,  1605,  1610,  1615,  1616,  1622,
1028 >    1626,  1628,  1630,  1632,  1634,  1636,  1638,  1640,  1642,  1644,
1029 >    1646,  1648,  1650,  1652,  1654,  1656,  1658,  1660,  1662,  1664,
1030 >    1666,  1668,  1669,  1675,  1679,  1681,  1683,  1685,  1687,  1689,
1031 >    1691,  1693,  1695,  1697,  1699,  1701,  1703,  1705,  1707,  1709,
1032 >    1711,  1713,  1715,  1717,  1719,  1721,  1726,  1731,  1736,  1742,
1033 >    1745,  1747,  1749,  1751,  1753,  1755,  1757,  1759,  1761,  1763,
1034 >    1765,  1767,  1769,  1771,  1773,  1775,  1777,  1782,  1787,  1792,
1035 >    1797,  1802,  1807,  1812,  1817,  1822,  1827,  1832,  1837,  1842,
1036 >    1847,  1853,  1856,  1858,  1860,  1862,  1864,  1866,  1868,  1870,
1037 >    1872,  1877,  1882,  1887,  1892,  1897
1038   };
1039  
1040   /* YYRHS -- A `-1'-separated list of the rules' RHS.  */
1041   static const yytype_int16 yyrhs[] =
1042   {
1043 <     268,     0,    -1,    -1,   268,   269,    -1,   297,    -1,   303,
1044 <      -1,   318,    -1,   582,    -1,   355,    -1,   374,    -1,   388,
1045 <      -1,   279,    -1,   603,    -1,   414,    -1,   421,    -1,   431,
1046 <      -1,   440,    -1,   471,    -1,   481,    -1,   487,    -1,   501,
1047 <      -1,   566,    -1,   491,    -1,   274,    -1,     1,   262,    -1,
1048 <       1,   263,    -1,    -1,   271,    -1,   133,   270,    -1,   133,
1049 <     175,   270,    -1,   133,   176,   270,    -1,   133,   177,   270,
1050 <      -1,   133,   178,   270,    -1,   133,   179,   270,    -1,    -1,
1051 <     273,    -1,   133,   272,    -1,   133,    14,   272,    -1,   133,
1052 <      15,   272,    -1,   133,    16,   272,    -1,   121,   264,   275,
1053 <     263,   262,    -1,   275,   276,    -1,   276,    -1,   277,    -1,
1054 <     278,    -1,     1,   262,    -1,   120,   265,   155,   262,    -1,
1055 <     150,   265,   155,   262,    -1,   183,   264,   280,   263,   262,
1056 <      -1,   280,   281,    -1,   281,    -1,   288,    -1,   293,    -1,
1057 <     296,    -1,   290,    -1,   291,    -1,   292,    -1,   295,    -1,
1058 <     287,    -1,   294,    -1,   289,    -1,   286,    -1,   282,    -1,
1059 <       1,   262,    -1,    -1,   170,   283,   265,   284,   262,    -1,
1060 <     284,   266,   285,    -1,   285,    -1,   171,    -1,   172,    -1,
1061 <     169,   265,   155,   262,    -1,   167,   265,   155,   262,    -1,
1062 <     122,   265,   155,   262,    -1,   185,   265,   155,   262,    -1,
1063 <      37,   265,   155,   262,    -1,   125,   265,   155,   262,    -1,
1064 <     124,   265,   155,   262,    -1,   257,   265,   155,   262,    -1,
1065 <     258,   265,   155,   262,    -1,   229,   265,   133,   262,    -1,
1066 <      86,   265,   199,   262,    -1,     5,   264,   298,   263,   262,
1067 <      -1,   298,   299,    -1,   299,    -1,   300,    -1,   302,    -1,
1068 <     301,    -1,     1,   262,    -1,   122,   265,   155,   262,    -1,
1069 <      48,   265,   155,   262,    -1,    37,   265,   155,   262,    -1,
1070 <     104,   264,   304,   263,   262,    -1,   304,   305,    -1,   305,
1071 <      -1,   306,    -1,   307,    -1,   316,    -1,   317,    -1,   308,
1072 <      -1,   310,    -1,   312,    -1,   313,    -1,   315,    -1,   311,
1073 <      -1,   314,    -1,   309,    -1,     1,   262,    -1,   221,   265,
1074 <     155,   262,    -1,   140,   265,   155,   262,    -1,    64,   265,
1075 <     155,   262,    -1,    57,   265,   155,   262,    -1,    62,   265,
1076 <     155,   262,    -1,    63,   265,   155,   262,    -1,    60,   265,
1077 <     155,   262,    -1,    59,   265,   155,   262,    -1,    61,   265,
1078 <     155,   262,    -1,    58,   265,   155,   262,    -1,   105,   265,
1079 <     222,   262,    -1,   105,   265,   224,   262,    -1,   105,   265,
1080 <     228,   262,    -1,   105,   265,   226,   262,    -1,   105,   265,
1081 <     227,   262,    -1,   105,   265,   225,   262,    -1,   105,   265,
1082 <     223,   262,    -1,   255,   265,   199,   262,    -1,    -1,   138,
1083 <     319,   320,   264,   321,   263,   262,    -1,    -1,   324,    -1,
1084 <     321,   322,    -1,   322,    -1,   323,    -1,   325,    -1,   326,
1085 <      -1,   345,    -1,   346,    -1,   330,    -1,   329,    -1,   334,
1086 <      -1,   335,    -1,   337,    -1,   338,    -1,   339,    -1,   340,
1087 <      -1,   341,    -1,   336,    -1,   342,    -1,   343,    -1,   344,
1088 <      -1,   347,    -1,   327,    -1,   328,    -1,   348,    -1,     1,
1089 <     262,    -1,   122,   265,   155,   262,    -1,   155,    -1,   250,
1090 <     265,   155,   262,    -1,   149,   265,   155,   262,    -1,    50,
1091 <     265,   199,   262,    -1,   168,   265,   155,   262,    -1,    26,
1092 <     265,   155,   262,    -1,    -1,   238,   331,   265,   332,   262,
1093 <      -1,   332,   266,   333,    -1,   333,    -1,   206,    -1,   209,
1094 <      -1,   210,    -1,   212,    -1,   213,    -1,   216,    -1,   235,
1095 <      -1,   230,    -1,   232,    -1,   239,    -1,   236,    -1,   215,
1096 <      -1,   231,    -1,   234,    -1,   217,    -1,   242,    -1,   207,
1097 <      -1,   208,    -1,   220,    -1,    74,   265,   199,   262,    -1,
1098 <     163,   265,   199,   262,    -1,   164,   265,   199,   262,    -1,
1099 <      94,   265,   199,   262,    -1,   259,   265,   199,   262,    -1,
1100 <     249,   265,   199,   262,    -1,    67,   265,   199,   262,    -1,
1101 <     127,   265,   199,   262,    -1,    38,   265,   199,   262,    -1,
1102 <     161,   265,   199,   262,    -1,     5,   265,   199,   262,    -1,
1103 <      79,   265,   199,   262,    -1,    81,   265,   199,   262,    -1,
1104 <     231,   265,   199,   262,    -1,    -1,    55,   349,   265,   350,
1105 <     262,    -1,   350,   266,   351,    -1,   351,    -1,    -1,   132,
1106 <     352,   354,    -1,    -1,   353,   354,    -1,    74,    -1,   163,
1107 <      -1,    94,    -1,   249,    -1,   259,    -1,    67,    -1,    38,
1108 <      -1,   161,    -1,     5,    -1,    79,    -1,   127,    -1,   231,
1109 <      -1,   143,    -1,    81,    -1,   164,    -1,    50,    -1,    -1,
1110 <      26,   356,   357,   264,   358,   263,   262,    -1,    -1,   361,
1111 <      -1,   358,   359,    -1,   359,    -1,   360,    -1,   371,    -1,
1112 <     372,    -1,   362,    -1,   363,    -1,   373,    -1,   364,    -1,
1113 <     365,    -1,   366,    -1,   367,    -1,   368,    -1,   369,    -1,
1114 <     370,    -1,     1,   262,    -1,   122,   265,   155,   262,    -1,
1115 <     155,    -1,   152,   265,   271,   262,    -1,   153,   265,   271,
1116 <     262,    -1,   136,   265,   133,   262,    -1,    30,   265,   271,
1117 <     262,    -1,   114,   265,   133,   262,    -1,   109,   265,   133,
1118 <     262,    -1,   111,   265,   133,   262,    -1,   110,   265,   133,
1119 <     262,    -1,   180,   265,   273,   262,    -1,    23,   265,   133,
1120 <     262,    -1,    24,   265,   133,   262,    -1,   135,   265,   133,
1121 <     262,    -1,    -1,   102,   375,   264,   380,   263,   262,    -1,
1122 <      -1,    55,   377,   265,   378,   262,    -1,   378,   266,   379,
1123 <      -1,   379,    -1,   237,    -1,    78,    -1,   233,    -1,   380,
1124 <     381,    -1,   381,    -1,   382,    -1,   376,    -1,   386,    -1,
1125 <     387,    -1,     1,   262,    -1,    -1,   154,   265,   384,   383,
1126 <     262,    -1,   384,   266,   385,    -1,   385,    -1,   133,    -1,
1127 <     133,   204,   133,    -1,    91,   265,   155,   262,    -1,    85,
1128 <     265,   155,   262,    -1,    -1,    75,   389,   264,   390,   263,
1129 <     262,    -1,   390,   391,    -1,   391,    -1,   392,    -1,   393,
1130 <      -1,   395,    -1,   397,    -1,   404,    -1,   405,    -1,   406,
1131 <      -1,   408,    -1,   409,    -1,   410,    -1,   394,    -1,   411,
1132 <      -1,   412,    -1,   407,    -1,   413,    -1,   396,    -1,     1,
1133 <     262,    -1,   250,   265,   155,   262,    -1,   149,   265,   155,
1134 <     262,    -1,   193,   265,   199,   262,    -1,    26,   265,   155,
1135 <     262,    -1,    50,   265,   199,   262,    -1,    -1,    55,   398,
1136 <     265,   399,   262,    -1,   399,   266,   400,    -1,   400,    -1,
1137 <      -1,   132,   401,   403,    -1,    -1,   402,   403,    -1,   193,
1138 <      -1,    51,    -1,    95,    -1,    76,    -1,    20,    -1,    21,
1139 <      -1,   131,    -1,    69,    -1,   174,    -1,   123,    -1,    95,
1140 <     265,   199,   262,    -1,    76,   265,   199,   262,    -1,    51,
1141 <     265,   199,   262,    -1,    20,   265,   199,   262,    -1,   131,
1142 <     265,   199,   262,    -1,    69,   265,   199,   262,    -1,   192,
1143 <     265,   155,   262,    -1,   159,   265,   155,   262,    -1,   158,
1144 <     265,   133,   262,    -1,   123,   265,   199,   262,    -1,    -1,
1145 <     173,   415,   264,   416,   263,   262,    -1,   416,   417,    -1,
1146 <     417,    -1,   418,    -1,   419,    -1,   420,    -1,     1,   262,
1147 <      -1,   157,   265,   155,   262,    -1,    22,   265,   155,   262,
1148 <      -1,   126,   265,   155,   262,    -1,    -1,   187,   422,   264,
1149 <     423,   263,   262,    -1,   423,   424,    -1,   424,    -1,   425,
1150 <      -1,   426,    -1,   427,    -1,     1,   262,    -1,   122,   265,
1151 <     155,   262,    -1,   250,   265,   155,   262,    -1,    -1,   189,
1152 <     428,   265,   429,   262,    -1,   429,   266,   430,    -1,   430,
1153 <      -1,    94,    -1,   246,    -1,   249,    -1,   259,    -1,   247,
1154 <      -1,   241,    -1,   173,    -1,   248,    -1,   240,    -1,   220,
1155 <      -1,   205,    -1,    -1,   188,   432,   264,   433,   263,   262,
1156 <      -1,   433,   434,    -1,   434,    -1,   435,    -1,   436,    -1,
1157 <       1,   262,    -1,   122,   265,   155,   262,    -1,    -1,   189,
1158 <     437,   265,   438,   262,    -1,   438,   266,   439,    -1,   439,
1159 <      -1,    94,    -1,   246,    -1,   249,    -1,   259,    -1,   247,
1160 <      -1,   241,    -1,   173,    -1,   248,    -1,   240,    -1,   220,
1161 <      -1,   205,    -1,    -1,    29,   441,   442,   264,   443,   263,
1162 <     262,    -1,    -1,   446,    -1,   443,   444,    -1,   444,    -1,
1163 <     445,    -1,   447,    -1,   448,    -1,   449,    -1,   450,    -1,
1164 <     452,    -1,   451,    -1,   453,    -1,   454,    -1,   467,    -1,
1165 <     468,    -1,   469,    -1,   465,    -1,   462,    -1,   464,    -1,
1166 <     463,    -1,   461,    -1,   470,    -1,   466,    -1,     1,   262,
1167 <      -1,   122,   265,   155,   262,    -1,   155,    -1,    85,   265,
1168 <     155,   262,    -1,   257,   265,   155,   262,    -1,   181,   265,
1169 <     155,   262,    -1,     3,   265,   155,   262,    -1,   154,   265,
1170 <     133,   262,    -1,     6,   265,   218,   262,    -1,     6,   265,
1171 <     219,   262,    -1,    54,   265,   155,   262,    -1,    -1,    55,
1172 <     455,   265,   456,   262,    -1,   456,   266,   457,    -1,   457,
1173 <      -1,    -1,   132,   458,   460,    -1,    -1,   459,   460,    -1,
1174 <      27,    -1,    31,    -1,    10,    -1,    12,    -1,   244,    -1,
1175 <     168,   265,   155,   262,    -1,    50,   265,   199,   262,    -1,
1176 <      31,   265,   199,   262,    -1,    27,   265,   199,   262,    -1,
1177 <      10,   265,   199,   262,    -1,   244,   265,   199,   262,    -1,
1178 <      87,   265,   155,   262,    -1,   100,   265,   155,   262,    -1,
1179 <      26,   265,   155,   262,    -1,    25,   265,   155,   262,    -1,
1180 <      -1,    92,   472,   264,   477,   263,   262,    -1,    -1,   189,
1181 <     474,   265,   475,   262,    -1,   475,   266,   476,    -1,   476,
1182 <      -1,   160,    -1,   477,   478,    -1,   478,    -1,   479,    -1,
1183 <     480,    -1,   473,    -1,     1,    -1,   250,   265,   155,   262,
1184 <      -1,   157,   265,   155,   262,    -1,    -1,    36,   482,   264,
1185 <     483,   263,   262,    -1,   483,   484,    -1,   484,    -1,   485,
1186 <      -1,   486,    -1,     1,    -1,    91,   265,   155,   262,    -1,
1187 <     157,   265,   155,   262,    -1,    52,   264,   488,   263,   262,
1188 <      -1,   488,   489,    -1,   489,    -1,   490,    -1,     1,    -1,
1189 <      91,   265,   155,   262,    -1,    -1,    65,   492,   264,   497,
1190 <     263,   262,    -1,    -1,   189,   494,   265,   495,   262,    -1,
1191 <     495,   266,   496,    -1,   496,    -1,   160,    -1,   497,   498,
1192 <      -1,   498,    -1,   499,    -1,   500,    -1,   493,    -1,     1,
1193 <      -1,   122,   265,   155,   262,    -1,   157,   265,   155,   262,
1194 <      -1,    66,   264,   502,   263,   262,    -1,   502,   503,    -1,
1195 <     503,    -1,   512,    -1,   513,    -1,   515,    -1,   516,    -1,
1196 <     517,    -1,   518,    -1,   519,    -1,   520,    -1,   521,    -1,
1197 <     522,    -1,   511,    -1,   524,    -1,   525,    -1,   526,    -1,
1198 <     527,    -1,   543,    -1,   529,    -1,   531,    -1,   533,    -1,
1199 <     532,    -1,   536,    -1,   530,    -1,   537,    -1,   538,    -1,
1200 <     539,    -1,   540,    -1,   542,    -1,   541,    -1,   557,    -1,
1201 <     544,    -1,   548,    -1,   549,    -1,   553,    -1,   534,    -1,
1202 <     535,    -1,   563,    -1,   561,    -1,   562,    -1,   545,    -1,
1203 <     514,    -1,   546,    -1,   547,    -1,   564,    -1,   552,    -1,
1204 <     523,    -1,   565,    -1,   550,    -1,   551,    -1,   507,    -1,
1205 <     510,    -1,   505,    -1,   506,    -1,   508,    -1,   509,    -1,
1206 <     528,    -1,   504,    -1,     1,    -1,   116,   265,   133,   262,
1207 <      -1,    72,   265,   133,   262,    -1,    73,   265,   133,   262,
1208 <      -1,    12,   265,   199,   262,    -1,   256,   265,   199,   262,
1209 <      -1,   162,   265,   271,   262,    -1,   186,   265,   199,   262,
1210 <      -1,    93,   265,   133,   262,    -1,    84,   265,   199,   262,
1211 <      -1,    89,   265,   199,   262,    -1,    43,   265,   199,   262,
1212 <      -1,    53,   265,   199,   262,    -1,     8,   265,   199,   262,
1213 <      -1,   113,   265,   271,   262,    -1,   112,   265,   133,   262,
1214 <      -1,   106,   265,   133,   262,    -1,     9,   265,   271,   262,
1215 <      -1,   203,   265,   271,   262,    -1,   202,   265,   271,   262,
1216 <      -1,    77,   265,   133,   262,    -1,    97,   265,   199,   262,
1217 <      -1,    96,   265,   155,   262,    -1,    90,   265,   199,   262,
1218 <      -1,   261,   265,   199,   262,    -1,   194,   265,   199,   262,
1219 <      -1,   197,   265,   199,   262,    -1,   198,   265,   199,   262,
1220 <      -1,   196,   265,   199,   262,    -1,   196,   265,   200,   262,
1221 <      -1,   195,   265,   199,   262,    -1,   195,   265,   200,   262,
1222 <      -1,   147,   265,   271,   262,    -1,    19,   265,   271,   262,
1223 <      -1,   139,   265,   199,   262,    -1,   148,   265,   271,   262,
1224 <      -1,   190,   265,   199,   262,    -1,   130,   265,   199,   262,
1225 <      -1,   245,   265,   199,   262,    -1,   142,   265,   199,   262,
1226 <      -1,   117,   265,   155,   262,    -1,    88,   265,   271,   262,
1227 <      -1,    45,   265,   133,   262,    -1,   115,   265,   133,   262,
1228 <      -1,   184,   265,   155,   262,    -1,    32,   265,   155,   262,
1229 <      -1,    28,   265,   133,   262,    -1,   251,   265,   199,   262,
1230 <      -1,    47,   265,   155,   262,    -1,   151,   265,   199,   262,
1231 <      -1,    39,   265,   199,   262,    -1,   243,   265,   271,   262,
1232 <      -1,    -1,   144,   554,   265,   555,   262,    -1,   555,   266,
1233 <     556,    -1,   556,    -1,   206,    -1,   209,    -1,   210,    -1,
1323 <     212,    -1,   213,    -1,   216,    -1,   235,    -1,   230,    -1,
1324 <     232,    -1,   239,    -1,   236,    -1,   215,    -1,   231,    -1,
1325 <     234,    -1,   217,    -1,   242,    -1,   207,    -1,   208,    -1,
1326 <     220,    -1,    -1,   141,   558,   265,   559,   262,    -1,   559,
1327 <     266,   560,    -1,   560,    -1,   206,    -1,   209,    -1,   210,
1328 <      -1,   212,    -1,   213,    -1,   216,    -1,   235,    -1,   230,
1329 <      -1,   232,    -1,   239,    -1,   236,    -1,   215,    -1,   231,
1330 <      -1,   234,    -1,   217,    -1,   242,    -1,   207,    -1,   208,
1331 <      -1,   220,    -1,   118,   265,   133,   262,    -1,   119,   265,
1332 <     133,   262,    -1,    33,   265,   133,   262,    -1,   211,   265,
1333 <     273,   262,    -1,    44,   265,   199,   262,    -1,    -1,    68,
1334 <     567,   264,   568,   263,   262,    -1,   568,   569,    -1,   569,
1335 <      -1,   570,    -1,   571,    -1,   572,    -1,   576,    -1,   577,
1336 <      -1,   578,    -1,     1,    -1,    49,   265,   199,   262,    -1,
1337 <      46,   265,   271,   262,    -1,    -1,   104,   573,   265,   574,
1338 <     262,    -1,   574,   266,   575,    -1,   575,    -1,   201,    -1,
1339 <      11,    -1,   250,   265,   155,   262,    -1,   122,   265,   155,
1340 <     262,    -1,    -1,     4,   579,   265,   580,   262,    -1,   580,
1341 <     266,   581,    -1,   581,    -1,   201,    -1,    11,    -1,    22,
1342 <     264,   583,   263,   262,    -1,   583,   584,    -1,   584,    -1,
1343 <     587,    -1,   588,    -1,   589,    -1,   590,    -1,   595,    -1,
1344 <     591,    -1,   592,    -1,   593,    -1,   594,    -1,   596,    -1,
1345 <     597,    -1,   598,    -1,   586,    -1,   599,    -1,   600,    -1,
1346 <     601,    -1,   602,    -1,   585,    -1,     1,    -1,    40,   265,
1347 <     199,   262,    -1,   165,   265,   199,   262,    -1,    42,   265,
1348 <     199,   262,    -1,   252,   265,   199,   262,    -1,   253,   265,
1349 <     199,   262,    -1,   254,   265,   199,   262,    -1,    98,   265,
1350 <     271,   262,    -1,    99,   265,   271,   262,    -1,   108,   265,
1351 <     133,   262,    -1,   156,   265,   199,   262,    -1,   107,   265,
1352 <     133,   262,    -1,    35,   265,   133,   262,    -1,    34,   265,
1353 <     133,   262,    -1,   128,   265,   199,   262,    -1,   129,   265,
1354 <     199,   262,    -1,    13,   265,   199,   262,    -1,   145,   265,
1355 <     133,   262,    -1,   146,   265,   271,   262,    -1,   182,   264,
1356 <     604,   263,   262,    -1,   604,   605,    -1,   605,    -1,   606,
1357 <      -1,   607,    -1,   609,    -1,   611,    -1,   610,    -1,   608,
1358 <      -1,   612,    -1,     1,    -1,    56,   265,   199,   262,    -1,
1359 <      83,   265,   199,   262,    -1,    80,   265,   155,   262,    -1,
1360 <     101,   265,   271,   262,    -1,    78,   265,   199,   262,    -1,
1361 <      41,   265,   199,   262,    -1,    82,   265,   199,   262,    -1
1043 >     220,     0,    -1,    -1,   220,   221,    -1,   253,    -1,   259,
1044 >      -1,   273,    -1,   475,    -1,   291,    -1,   308,    -1,   322,
1045 >      -1,   231,    -1,   492,    -1,   337,    -1,   344,    -1,   348,
1046 >      -1,   358,    -1,   367,    -1,   387,    -1,   397,    -1,   403,
1047 >      -1,   417,    -1,   407,    -1,   226,    -1,     1,   214,    -1,
1048 >       1,   215,    -1,    -1,   223,    -1,    99,   222,    -1,    99,
1049 >     137,   222,    -1,    99,   138,   222,    -1,    99,   139,   222,
1050 >      -1,    99,   140,   222,    -1,    99,   141,   222,    -1,    -1,
1051 >     225,    -1,    99,   224,    -1,    99,     9,   224,    -1,    99,
1052 >      10,   224,    -1,    99,    11,   224,    -1,    88,   216,   227,
1053 >     215,   214,    -1,   227,   228,    -1,   228,    -1,   229,    -1,
1054 >     230,    -1,     1,   214,    -1,    87,   217,   117,   214,    -1,
1055 >     113,   217,   117,   214,    -1,   145,   216,   232,   215,   214,
1056 >      -1,   232,   233,    -1,   233,    -1,   244,    -1,   249,    -1,
1057 >     252,    -1,   246,    -1,   247,    -1,   248,    -1,   251,    -1,
1058 >     242,    -1,   241,    -1,   250,    -1,   245,    -1,   240,    -1,
1059 >     234,    -1,   235,    -1,   243,    -1,     1,   214,    -1,   131,
1060 >     217,   236,   214,    -1,   132,   217,   238,   214,    -1,   236,
1061 >     218,   237,    -1,   237,    -1,   133,    -1,   134,    -1,   238,
1062 >     218,   239,    -1,   239,    -1,   133,    -1,   134,    -1,   129,
1063 >     217,   117,   214,    -1,   127,   217,   117,   214,    -1,   130,
1064 >     217,   117,   214,    -1,   170,   217,   117,   214,    -1,    89,
1065 >     217,   117,   214,    -1,   146,   217,   117,   214,    -1,    24,
1066 >     217,   117,   214,    -1,    92,   217,   117,   214,    -1,    91,
1067 >     217,   117,   214,    -1,   208,   217,   117,   214,    -1,   209,
1068 >     217,   117,   214,    -1,   180,   217,    99,   214,    -1,    57,
1069 >     217,   159,   214,    -1,     4,   216,   254,   215,   214,    -1,
1070 >     254,   255,    -1,   255,    -1,   256,    -1,   258,    -1,   257,
1071 >      -1,     1,   214,    -1,    89,   217,   117,   214,    -1,    31,
1072 >     217,   117,   214,    -1,    24,   217,   117,   214,    -1,    71,
1073 >     216,   260,   215,   214,    -1,   260,   261,    -1,   261,    -1,
1074 >     262,    -1,   263,    -1,     1,   214,    -1,   207,   217,   159,
1075 >     214,    -1,    -1,   264,   213,   216,   265,   215,   214,    -1,
1076 >     265,   266,    -1,   266,    -1,   267,    -1,   269,    -1,   268,
1077 >      -1,     1,   214,    -1,    89,   217,   117,   214,    -1,   212,
1078 >     217,   225,   214,    -1,   212,   217,   194,   214,    -1,    -1,
1079 >     150,   270,   217,   271,   214,    -1,   271,   218,   272,    -1,
1080 >     272,    -1,   205,    -1,   102,    -1,    40,    -1,   173,    -1,
1081 >      64,    -1,    62,    -1,   172,    -1,    -1,   102,   274,   216,
1082 >     275,   215,   214,    -1,   275,   276,    -1,   276,    -1,   277,
1083 >      -1,   278,    -1,   279,    -1,   283,    -1,   282,    -1,   280,
1084 >      -1,   281,    -1,   287,    -1,     1,   214,    -1,    89,   217,
1085 >     117,   214,    -1,   205,   217,   117,   214,    -1,   112,   217,
1086 >     117,   214,    -1,    32,   217,   159,   214,    -1,   128,   217,
1087 >     117,   214,    -1,    17,   217,   117,   214,    -1,    -1,   191,
1088 >     284,   217,   285,   214,    -1,   285,   218,   286,    -1,   286,
1089 >      -1,   165,    -1,   168,    -1,   169,    -1,   171,    -1,   172,
1090 >      -1,   175,    -1,    51,    -1,   188,    -1,   181,    -1,   184,
1091 >      -1,   192,    -1,   189,    -1,   174,    -1,   182,    -1,   186,
1092 >      -1,   176,    -1,   198,    -1,   166,    -1,   167,    -1,   179,
1093 >      -1,    -1,    36,   288,   217,   289,   214,    -1,   289,   218,
1094 >     290,    -1,   290,    -1,    47,    -1,   124,    -1,    64,    -1,
1095 >     204,    -1,   173,    -1,   193,    -1,   210,    -1,    40,    -1,
1096 >      25,    -1,   199,    -1,   123,    -1,     4,    -1,    94,    -1,
1097 >     182,    -1,   197,    -1,   106,    -1,   125,    -1,   187,    -1,
1098 >      87,    -1,    -1,    17,   292,   216,   293,   215,   214,    -1,
1099 >     293,   294,    -1,   294,    -1,   295,    -1,   305,    -1,   306,
1100 >      -1,   296,    -1,   307,    -1,   297,    -1,   298,    -1,   299,
1101 >      -1,   300,    -1,   301,    -1,   302,    -1,   303,    -1,   304,
1102 >      -1,     1,   214,    -1,    89,   217,   117,   214,    -1,   115,
1103 >     217,   223,   214,    -1,   101,   217,    99,   214,    -1,    19,
1104 >     217,   223,   214,    -1,    81,   217,    99,   214,    -1,    76,
1105 >     217,    99,   214,    -1,    78,   217,    99,   214,    -1,    77,
1106 >     217,    99,   214,    -1,   142,   217,   225,   214,    -1,   183,
1107 >     217,   225,   214,    -1,    15,   217,    99,   214,    -1,    16,
1108 >     217,    99,   214,    -1,   100,   217,    99,   214,    -1,    -1,
1109 >      70,   309,   216,   314,   215,   214,    -1,    -1,    36,   311,
1110 >     217,   312,   214,    -1,   312,   218,   313,    -1,   313,    -1,
1111 >     190,    -1,    51,    -1,   185,    -1,   314,   315,    -1,   315,
1112 >      -1,   316,    -1,   310,    -1,   320,    -1,   321,    -1,     1,
1113 >     214,    -1,    -1,   116,   217,   318,   317,   214,    -1,   318,
1114 >     218,   319,    -1,   319,    -1,    99,    -1,    99,   163,    99,
1115 >      -1,    61,   217,   117,   214,    -1,    56,   217,   117,   214,
1116 >      -1,    -1,    48,   323,   216,   324,   215,   214,    -1,   324,
1117 >     325,    -1,   325,    -1,   326,    -1,   327,    -1,   328,    -1,
1118 >     330,    -1,   334,    -1,   335,    -1,   336,    -1,   329,    -1,
1119 >       1,   214,    -1,   205,   217,   117,   214,    -1,   112,   217,
1120 >     117,   214,    -1,    17,   217,   117,   214,    -1,    32,   217,
1121 >     159,   214,    -1,    -1,    36,   331,   217,   332,   214,    -1,
1122 >     332,   218,   333,    -1,   333,    -1,   153,    -1,    33,    -1,
1123 >      65,    -1,    49,    -1,    13,    -1,    98,    -1,    43,    -1,
1124 >     136,    -1,    90,    -1,   152,   217,   117,   214,    -1,   121,
1125 >     217,   117,   214,    -1,   120,   217,    99,   214,    -1,    -1,
1126 >     135,   338,   216,   339,   215,   214,    -1,   339,   340,    -1,
1127 >     340,    -1,   341,    -1,   342,    -1,   343,    -1,     1,   214,
1128 >      -1,   119,   217,   117,   214,    -1,    14,   217,   117,   214,
1129 >      -1,    93,   217,   117,   214,    -1,   200,   216,   345,   215,
1130 >     214,    -1,   345,   346,    -1,   346,    -1,   347,    -1,     1,
1131 >      -1,    89,   217,   117,   214,    -1,    -1,   148,   349,   216,
1132 >     350,   215,   214,    -1,   350,   351,    -1,   351,    -1,   352,
1133 >      -1,   353,    -1,   354,    -1,     1,   214,    -1,    89,   217,
1134 >     117,   214,    -1,   205,   217,   117,   214,    -1,    -1,   150,
1135 >     355,   217,   356,   214,    -1,   356,   218,   357,    -1,   357,
1136 >      -1,    64,    -1,   204,    -1,   173,    -1,   193,    -1,   210,
1137 >      -1,   196,    -1,   135,    -1,   195,    -1,   179,    -1,   164,
1138 >      -1,    -1,   149,   359,   216,   360,   215,   214,    -1,   360,
1139 >     361,    -1,   361,    -1,   362,    -1,   363,    -1,     1,   214,
1140 >      -1,    89,   217,   117,   214,    -1,    -1,   150,   364,   217,
1141 >     365,   214,    -1,   365,   218,   366,    -1,   366,    -1,    64,
1142 >      -1,   204,    -1,   173,    -1,   193,    -1,   210,    -1,   196,
1143 >      -1,   135,    -1,   195,    -1,   179,    -1,   164,    -1,    -1,
1144 >      18,   368,   216,   369,   215,   214,    -1,   369,   370,    -1,
1145 >     370,    -1,   371,    -1,   372,    -1,   373,    -1,   374,    -1,
1146 >     375,    -1,   377,    -1,   376,    -1,   386,    -1,   378,    -1,
1147 >     383,    -1,   384,    -1,   385,    -1,   382,    -1,     1,   214,
1148 >      -1,    89,   217,   117,   214,    -1,    56,   217,   117,   214,
1149 >      -1,   208,   217,   117,   214,    -1,   143,   217,   117,   214,
1150 >      -1,     3,   217,   117,   214,    -1,   116,   217,    99,   214,
1151 >      -1,     5,   217,   177,   214,    -1,     5,   217,   178,   214,
1152 >      -1,    -1,    36,   379,   217,   380,   214,    -1,   380,   218,
1153 >     381,    -1,   381,    -1,     8,    -1,   190,    -1,    32,   217,
1154 >     159,   214,    -1,    58,   217,   117,   214,    -1,    68,   217,
1155 >     117,   214,    -1,    17,   217,   117,   214,    -1,   170,   217,
1156 >     117,   214,    -1,    -1,    62,   388,   216,   393,   215,   214,
1157 >      -1,    -1,   150,   390,   217,   391,   214,    -1,   391,   218,
1158 >     392,    -1,   392,    -1,   122,    -1,   393,   394,    -1,   394,
1159 >      -1,   395,    -1,   396,    -1,   389,    -1,     1,    -1,   205,
1160 >     217,   117,   214,    -1,   119,   217,   117,   214,    -1,    -1,
1161 >      23,   398,   216,   399,   215,   214,    -1,   399,   400,    -1,
1162 >     400,    -1,   401,    -1,   402,    -1,     1,    -1,    61,   217,
1163 >     117,   214,    -1,   119,   217,   117,   214,    -1,    34,   216,
1164 >     404,   215,   214,    -1,   404,   405,    -1,   405,    -1,   406,
1165 >      -1,     1,    -1,    61,   217,   117,   214,    -1,    -1,    38,
1166 >     408,   216,   413,   215,   214,    -1,    -1,   150,   410,   217,
1167 >     411,   214,    -1,   411,   218,   412,    -1,   412,    -1,   122,
1168 >      -1,   413,   414,    -1,   414,    -1,   415,    -1,   416,    -1,
1169 >     409,    -1,     1,    -1,    89,   217,   117,   214,    -1,   119,
1170 >     217,   117,   214,    -1,    39,   216,   418,   215,   214,    -1,
1171 >     418,   419,    -1,   419,    -1,   428,    -1,   429,    -1,   431,
1172 >      -1,   432,    -1,   433,    -1,   434,    -1,   435,    -1,   436,
1173 >      -1,   437,    -1,   438,    -1,   427,    -1,   440,    -1,   441,
1174 >      -1,   456,    -1,   443,    -1,   445,    -1,   447,    -1,   446,
1175 >      -1,   450,    -1,   444,    -1,   451,    -1,   452,    -1,   453,
1176 >      -1,   454,    -1,   455,    -1,   468,    -1,   457,    -1,   458,
1177 >      -1,   459,    -1,   464,    -1,   448,    -1,   449,    -1,   474,
1178 >      -1,   472,    -1,   473,    -1,   430,    -1,   463,    -1,   439,
1179 >      -1,   461,    -1,   462,    -1,   426,    -1,   421,    -1,   422,
1180 >      -1,   423,    -1,   424,    -1,   425,    -1,   442,    -1,   420,
1181 >      -1,   460,    -1,     1,    -1,    83,   217,    99,   214,    -1,
1182 >      42,   217,   159,   214,    -1,    41,   217,   223,   214,    -1,
1183 >      44,   217,   223,   214,    -1,    45,   217,    99,   214,    -1,
1184 >      46,   217,    99,   214,    -1,   147,   217,   159,   214,    -1,
1185 >      63,   217,   223,   214,    -1,    55,   217,   159,   214,    -1,
1186 >      59,   217,   159,   214,    -1,    28,   217,   159,   214,    -1,
1187 >      35,   217,   159,   214,    -1,     6,   217,   159,   214,    -1,
1188 >      80,   217,   223,   214,    -1,    79,   217,    99,   214,    -1,
1189 >      72,   217,    99,   214,    -1,     7,   217,   223,   214,    -1,
1190 >     162,   217,   223,   214,    -1,   161,   217,   223,   214,    -1,
1191 >      50,   217,    99,   214,    -1,    60,   217,   159,   214,    -1,
1192 >     211,   217,   159,   214,    -1,   154,   217,   159,   214,    -1,
1193 >     157,   217,   159,   214,    -1,   158,   217,   159,   214,    -1,
1194 >     156,   217,   159,   214,    -1,   156,   217,   160,   214,    -1,
1195 >     155,   217,   159,   214,    -1,   155,   217,   160,   214,    -1,
1196 >     110,   217,   223,   214,    -1,    12,   217,   223,   214,    -1,
1197 >     103,   217,   159,   214,    -1,   111,   217,   223,   214,    -1,
1198 >     151,   217,   159,   214,    -1,    97,   217,   159,   214,    -1,
1199 >     203,   217,   159,   214,    -1,   105,   217,   159,   214,    -1,
1200 >      84,   217,   117,   214,    -1,    29,   217,    99,   214,    -1,
1201 >      82,   217,    99,   214,    -1,   206,   217,   159,   214,    -1,
1202 >      30,   217,   117,   214,    -1,   201,   217,   117,   214,    -1,
1203 >     114,   217,   159,   214,    -1,    26,   217,   159,   214,    -1,
1204 >     202,   217,   223,   214,    -1,    -1,   107,   465,   217,   466,
1205 >     214,    -1,   466,   218,   467,    -1,   467,    -1,   165,    -1,
1206 >     168,    -1,   169,    -1,   171,    -1,   172,    -1,   175,    -1,
1207 >      51,    -1,   188,    -1,   181,    -1,   184,    -1,   192,    -1,
1208 >     189,    -1,   174,    -1,   182,    -1,   186,    -1,   176,    -1,
1209 >     198,    -1,   166,    -1,   167,    -1,   179,    -1,    -1,   104,
1210 >     469,   217,   470,   214,    -1,   470,   218,   471,    -1,   471,
1211 >      -1,   165,    -1,   168,    -1,   169,    -1,   171,    -1,   172,
1212 >      -1,   175,    -1,   188,    -1,    51,    -1,   181,    -1,   184,
1213 >      -1,   192,    -1,   189,    -1,   174,    -1,   182,    -1,   186,
1214 >      -1,   176,    -1,   198,    -1,   166,    -1,   167,    -1,   179,
1215 >      -1,    85,   217,    99,   214,    -1,    86,   217,    99,   214,
1216 >      -1,    20,   217,    99,   214,    -1,    14,   216,   476,   215,
1217 >     214,    -1,   476,   477,    -1,   477,    -1,   485,    -1,   480,
1218 >      -1,   481,    -1,   482,    -1,   483,    -1,   484,    -1,   486,
1219 >      -1,   487,    -1,   488,    -1,   479,    -1,   489,    -1,   490,
1220 >      -1,   491,    -1,   478,    -1,     1,    -1,    27,   217,   159,
1221 >     214,    -1,   126,   217,   159,   214,    -1,    66,   217,   223,
1222 >     214,    -1,    67,   217,   223,   214,    -1,    75,   217,    99,
1223 >     214,    -1,    74,   217,    99,   214,    -1,   118,   217,   159,
1224 >     214,    -1,    73,   217,    99,   214,    -1,    22,   217,    99,
1225 >     214,    -1,    21,   217,    99,   214,    -1,    95,   217,   159,
1226 >     214,    -1,    96,   217,   159,   214,    -1,   108,   217,    99,
1227 >     214,    -1,   109,   217,   223,   214,    -1,   144,   216,   493,
1228 >     215,   214,    -1,   493,   494,    -1,   494,    -1,   495,    -1,
1229 >     496,    -1,   498,    -1,   499,    -1,   497,    -1,   500,    -1,
1230 >       1,    -1,    37,   217,   159,   214,    -1,    54,   217,   159,
1231 >     214,    -1,    52,   217,   117,   214,    -1,    69,   217,   223,
1232 >     214,    -1,    51,   217,   159,   214,    -1,    53,   217,   159,
1233 >     214,    -1
1234   };
1235  
1236   /* YYRLINE[YYN] -- source line where rule number YYN was defined.  */
1237   static const yytype_uint16 yyrline[] =
1238   {
1239 <       0,   397,   397,   398,   401,   402,   403,   404,   405,   406,
1240 <     407,   408,   409,   410,   411,   412,   413,   414,   415,   416,
1241 <     417,   418,   419,   420,   421,   422,   426,   426,   427,   431,
1242 <     435,   439,   443,   447,   453,   453,   454,   455,   456,   457,
1243 <     464,   467,   467,   468,   468,   468,   470,   478,   487,   489,
1244 <     489,   490,   490,   491,   491,   492,   492,   493,   494,   494,
1245 <     495,   495,   496,   497,   501,   500,   515,   515,   516,   520,
1246 <     526,   560,   620,   634,   649,   658,   672,   681,   709,   739,
1247 <     762,   784,   786,   786,   787,   787,   788,   788,   790,   799,
1248 <     808,   821,   823,   824,   826,   826,   827,   828,   828,   829,
1249 <     829,   830,   830,   831,   831,   832,   833,   835,   839,   843,
1250 <     850,   857,   864,   871,   878,   885,   892,   899,   903,   907,
1251 <     911,   915,   919,   923,   929,   939,   938,  1032,  1032,  1033,
1252 <    1033,  1034,  1034,  1034,  1034,  1035,  1035,  1036,  1036,  1036,
1253 <    1037,  1037,  1037,  1038,  1038,  1038,  1039,  1039,  1039,  1039,
1254 <    1040,  1040,  1041,  1041,  1043,  1055,  1067,  1101,  1113,  1124,
1255 <    1166,  1176,  1175,  1181,  1181,  1182,  1186,  1190,  1194,  1198,
1256 <    1202,  1206,  1210,  1214,  1218,  1222,  1226,  1230,  1234,  1238,
1257 <    1242,  1246,  1250,  1254,  1260,  1271,  1282,  1293,  1304,  1315,
1258 <    1326,  1337,  1348,  1359,  1370,  1381,  1392,  1403,  1415,  1414,
1259 <    1418,  1418,  1419,  1419,  1420,  1420,  1422,  1429,  1436,  1443,
1260 <    1450,  1457,  1464,  1471,  1478,  1485,  1492,  1499,  1506,  1513,
1261 <    1520,  1527,  1541,  1540,  1590,  1590,  1592,  1592,  1593,  1594,
1262 <    1594,  1595,  1596,  1597,  1598,  1599,  1600,  1601,  1602,  1603,
1263 <    1604,  1605,  1607,  1616,  1625,  1631,  1637,  1643,  1649,  1655,
1264 <    1661,  1667,  1673,  1679,  1685,  1691,  1701,  1700,  1717,  1716,
1265 <    1721,  1721,  1722,  1726,  1730,  1738,  1738,  1739,  1739,  1739,
1266 <    1739,  1739,  1741,  1741,  1743,  1743,  1745,  1759,  1779,  1788,
1267 <    1801,  1800,  1869,  1869,  1870,  1870,  1870,  1870,  1871,  1871,
1268 <    1872,  1872,  1872,  1873,  1873,  1874,  1874,  1874,  1875,  1875,
1269 <    1875,  1877,  1914,  1927,  1938,  1947,  1959,  1958,  1962,  1962,
1270 <    1963,  1963,  1964,  1964,  1966,  1974,  1981,  1988,  1995,  2002,
1271 <    2009,  2016,  2023,  2030,  2039,  2050,  2061,  2072,  2083,  2094,
1272 <    2106,  2125,  2135,  2144,  2160,  2159,  2175,  2175,  2176,  2176,
1273 <    2176,  2176,  2178,  2187,  2202,  2216,  2215,  2231,  2231,  2232,
1274 <    2232,  2232,  2232,  2234,  2243,  2266,  2265,  2271,  2271,  2272,
1275 <    2276,  2280,  2284,  2288,  2292,  2296,  2300,  2304,  2308,  2312,
1276 <    2322,  2321,  2338,  2338,  2339,  2339,  2339,  2341,  2348,  2347,
1277 <    2353,  2353,  2354,  2358,  2362,  2366,  2370,  2374,  2378,  2382,
1278 <    2386,  2390,  2394,  2404,  2403,  2549,  2549,  2550,  2550,  2551,
1279 <    2551,  2551,  2552,  2552,  2553,  2553,  2554,  2554,  2554,  2555,
1280 <    2555,  2555,  2556,  2556,  2556,  2557,  2557,  2558,  2558,  2560,
1281 <    2572,  2584,  2593,  2619,  2637,  2655,  2661,  2665,  2673,  2683,
1282 <    2682,  2686,  2686,  2687,  2687,  2688,  2688,  2690,  2701,  2708,
1283 <    2715,  2722,  2732,  2773,  2784,  2795,  2810,  2821,  2832,  2845,
1284 <    2858,  2867,  2903,  2902,  2966,  2965,  2969,  2969,  2970,  2976,
1285 <    2976,  2977,  2977,  2977,  2977,  2979,  2998,  3008,  3007,  3030,
1286 <    3030,  3031,  3031,  3031,  3033,  3039,  3048,  3050,  3050,  3051,
1287 <    3051,  3053,  3072,  3071,  3119,  3118,  3122,  3122,  3123,  3129,
1288 <    3129,  3130,  3130,  3130,  3130,  3132,  3138,  3147,  3150,  3150,
1289 <    3151,  3151,  3152,  3152,  3153,  3153,  3154,  3154,  3155,  3155,
1290 <    3156,  3156,  3157,  3157,  3158,  3158,  3159,  3159,  3160,  3160,
1291 <    3161,  3161,  3162,  3162,  3163,  3163,  3164,  3164,  3165,  3165,
1292 <    3166,  3166,  3167,  3167,  3168,  3168,  3169,  3169,  3170,  3170,
1293 <    3171,  3172,  3172,  3173,  3173,  3174,  3174,  3175,  3175,  3176,
1294 <    3176,  3177,  3177,  3178,  3178,  3179,  3180,  3183,  3188,  3193,
1295 <    3198,  3203,  3208,  3213,  3218,  3223,  3228,  3233,  3238,  3243,
1296 <    3248,  3253,  3258,  3263,  3268,  3273,  3279,  3290,  3295,  3304,
1297 <    3309,  3314,  3319,  3324,  3329,  3332,  3337,  3340,  3345,  3350,
1298 <    3355,  3360,  3365,  3370,  3375,  3380,  3385,  3396,  3401,  3406,
1299 <    3411,  3420,  3452,  3470,  3475,  3484,  3489,  3494,  3500,  3499,
1300 <    3504,  3504,  3505,  3508,  3511,  3514,  3517,  3520,  3523,  3526,
1301 <    3529,  3532,  3535,  3538,  3541,  3544,  3547,  3550,  3553,  3556,
1430 <    3559,  3565,  3564,  3569,  3569,  3570,  3573,  3576,  3579,  3582,
1431 <    3585,  3588,  3591,  3594,  3597,  3600,  3603,  3606,  3609,  3612,
1432 <    3615,  3618,  3621,  3624,  3629,  3634,  3639,  3644,  3649,  3658,
1433 <    3657,  3681,  3681,  3682,  3683,  3684,  3685,  3686,  3687,  3688,
1434 <    3690,  3696,  3703,  3702,  3707,  3707,  3708,  3712,  3718,  3752,
1435 <    3762,  3761,  3811,  3811,  3812,  3816,  3825,  3828,  3828,  3829,
1436 <    3829,  3830,  3830,  3831,  3831,  3832,  3832,  3833,  3833,  3834,
1437 <    3835,  3835,  3836,  3836,  3837,  3837,  3838,  3838,  3840,  3845,
1438 <    3850,  3855,  3860,  3865,  3870,  3875,  3880,  3885,  3890,  3895,
1439 <    3900,  3905,  3910,  3915,  3920,  3925,  3933,  3936,  3936,  3937,
1440 <    3937,  3938,  3939,  3940,  3940,  3941,  3942,  3944,  3950,  3956,
1441 <    3965,  3979,  3985,  3991
1239 >       0,   354,   354,   355,   358,   359,   360,   361,   362,   363,
1240 >     364,   365,   366,   367,   368,   369,   370,   371,   372,   373,
1241 >     374,   375,   376,   377,   378,   379,   383,   383,   384,   388,
1242 >     392,   396,   400,   404,   410,   410,   411,   412,   413,   414,
1243 >     421,   424,   424,   425,   425,   425,   427,   433,   440,   442,
1244 >     442,   443,   443,   444,   444,   445,   445,   446,   446,   447,
1245 >     447,   448,   448,   449,   449,   450,   451,   454,   455,   457,
1246 >     457,   458,   464,   472,   472,   473,   479,   487,   526,   585,
1247 >     613,   621,   636,   651,   660,   674,   683,   711,   741,   764,
1248 >     773,   775,   775,   776,   776,   777,   777,   779,   788,   797,
1249 >     809,   810,   810,   812,   812,   813,   815,   822,   822,   835,
1250 >     836,   838,   838,   839,   839,   841,   849,   852,   858,   857,
1251 >     863,   863,   864,   868,   872,   876,   880,   884,   888,   899,
1252 >     898,   978,   978,   979,   979,   979,   980,   980,   980,   981,
1253 >     981,   981,   983,   989,   995,  1001,  1012,  1018,  1025,  1024,
1254 >    1030,  1030,  1031,  1035,  1039,  1043,  1047,  1051,  1055,  1059,
1255 >    1063,  1067,  1071,  1075,  1079,  1083,  1087,  1091,  1095,  1099,
1256 >    1103,  1107,  1114,  1113,  1119,  1119,  1120,  1124,  1128,  1132,
1257 >    1136,  1140,  1144,  1148,  1152,  1156,  1160,  1164,  1168,  1172,
1258 >    1176,  1180,  1184,  1188,  1192,  1203,  1202,  1253,  1253,  1254,
1259 >    1255,  1255,  1256,  1257,  1258,  1259,  1260,  1261,  1262,  1263,
1260 >    1264,  1264,  1265,  1267,  1273,  1279,  1285,  1291,  1297,  1303,
1261 >    1309,  1315,  1321,  1328,  1334,  1340,  1350,  1349,  1356,  1355,
1262 >    1360,  1360,  1361,  1365,  1369,  1375,  1375,  1376,  1376,  1376,
1263 >    1376,  1376,  1378,  1378,  1380,  1380,  1382,  1396,  1416,  1422,
1264 >    1432,  1431,  1473,  1473,  1474,  1474,  1474,  1474,  1475,  1475,
1265 >    1475,  1476,  1476,  1478,  1484,  1490,  1496,  1508,  1507,  1513,
1266 >    1513,  1514,  1518,  1522,  1526,  1530,  1534,  1538,  1542,  1546,
1267 >    1552,  1566,  1575,  1589,  1588,  1597,  1597,  1598,  1598,  1598,
1268 >    1598,  1600,  1606,  1615,  1624,  1626,  1626,  1627,  1627,  1629,
1269 >    1645,  1644,  1669,  1669,  1670,  1670,  1670,  1670,  1672,  1678,
1270 >    1698,  1697,  1703,  1703,  1704,  1708,  1712,  1716,  1720,  1724,
1271 >    1728,  1732,  1736,  1740,  1750,  1749,  1770,  1770,  1771,  1771,
1272 >    1771,  1773,  1780,  1779,  1785,  1785,  1786,  1790,  1794,  1798,
1273 >    1802,  1806,  1810,  1814,  1818,  1822,  1832,  1831,  1897,  1897,
1274 >    1898,  1898,  1898,  1899,  1899,  1900,  1900,  1900,  1901,  1901,
1275 >    1901,  1902,  1902,  1903,  1905,  1911,  1917,  1923,  1936,  1949,
1276 >    1955,  1959,  1968,  1967,  1972,  1972,  1973,  1977,  1983,  1994,
1277 >    2000,  2006,  2012,  2028,  2027,  2090,  2089,  2095,  2095,  2096,
1278 >    2102,  2102,  2103,  2103,  2103,  2103,  2105,  2125,  2135,  2134,
1279 >    2161,  2161,  2162,  2162,  2162,  2164,  2170,  2179,  2181,  2181,
1280 >    2182,  2182,  2184,  2202,  2201,  2247,  2246,  2252,  2252,  2253,
1281 >    2259,  2259,  2260,  2260,  2260,  2260,  2262,  2268,  2277,  2280,
1282 >    2280,  2281,  2281,  2282,  2282,  2283,  2283,  2284,  2284,  2285,
1283 >    2285,  2286,  2287,  2288,  2288,  2289,  2289,  2290,  2290,  2291,
1284 >    2291,  2292,  2292,  2293,  2293,  2294,  2295,  2295,  2296,  2296,
1285 >    2297,  2297,  2298,  2298,  2299,  2299,  2300,  2301,  2301,  2302,
1286 >    2303,  2304,  2304,  2305,  2305,  2306,  2307,  2308,  2309,  2309,
1287 >    2310,  2313,  2318,  2324,  2330,  2336,  2341,  2346,  2351,  2356,
1288 >    2361,  2366,  2371,  2376,  2381,  2386,  2391,  2396,  2401,  2406,
1289 >    2412,  2423,  2428,  2433,  2438,  2443,  2448,  2451,  2456,  2459,
1290 >    2464,  2469,  2474,  2479,  2484,  2489,  2494,  2499,  2504,  2515,
1291 >    2520,  2525,  2530,  2539,  2548,  2553,  2558,  2564,  2563,  2568,
1292 >    2568,  2569,  2572,  2575,  2578,  2581,  2584,  2587,  2590,  2593,
1293 >    2596,  2599,  2602,  2605,  2608,  2611,  2614,  2617,  2620,  2623,
1294 >    2626,  2632,  2631,  2636,  2636,  2637,  2640,  2643,  2646,  2649,
1295 >    2652,  2655,  2658,  2661,  2664,  2667,  2670,  2673,  2676,  2679,
1296 >    2682,  2685,  2688,  2691,  2694,  2699,  2704,  2709,  2718,  2721,
1297 >    2721,  2722,  2723,  2723,  2724,  2724,  2725,  2725,  2726,  2727,
1298 >    2727,  2728,  2729,  2729,  2730,  2730,  2732,  2737,  2742,  2747,
1299 >    2752,  2757,  2762,  2767,  2772,  2777,  2782,  2787,  2792,  2797,
1300 >    2805,  2808,  2808,  2809,  2809,  2810,  2811,  2811,  2812,  2813,
1301 >    2815,  2821,  2827,  2836,  2850,  2856
1302   };
1303   #endif
1304  
1305 < #if YYDEBUG || YYERROR_VERBOSE || YYTOKEN_TABLE
1305 > #if YYDEBUG || YYERROR_VERBOSE || 0
1306   /* YYTNAME[SYMBOL-NUM] -- String name of the symbol SYMBOL-NUM.
1307     First, the terminals, then, starting at YYNTOKENS, nonterminals.  */
1308   static const char *const yytname[] =
1309   {
1310 <  "$end", "error", "$undefined", "ACCEPT_PASSWORD", "ACTION", "ADMIN",
1311 <  "AFTYPE", "T_ALLOW", "ANTI_NICK_FLOOD", "ANTI_SPAM_EXIT_MESSAGE_TIME",
1312 <  "AUTOCONN", "T_BLOCK", "BURST_AWAY", "BURST_TOPICWHO", "BYTES", "KBYTES",
1313 <  "MBYTES", "GBYTES", "TBYTES", "CALLER_ID_WAIT", "CAN_FLOOD", "CAN_IDLE",
1314 <  "CHANNEL", "CIDR_BITLEN_IPV4", "CIDR_BITLEN_IPV6", "CIPHER_PREFERENCE",
1315 <  "CLASS", "COMPRESSED", "COMPRESSION_LEVEL", "CONNECT", "CONNECTFREQ",
1316 <  "CRYPTLINK", "DEFAULT_CIPHER_PREFERENCE", "DEFAULT_FLOODCOUNT",
1317 <  "DEFAULT_SPLIT_SERVER_COUNT", "DEFAULT_SPLIT_USER_COUNT", "DENY",
1318 <  "DESCRIPTION", "DIE", "DISABLE_AUTH", "DISABLE_FAKE_CHANNELS",
1319 <  "DISABLE_HIDDEN", "DISABLE_LOCAL_CHANNELS", "DISABLE_REMOTE_COMMANDS",
1320 <  "DOT_IN_IP6_ADDR", "DOTS_IN_IDENT", "DURATION", "EGDPOOL_PATH", "EMAIL",
1461 <  "ENABLE", "ENCRYPTED", "EXCEED_LIMIT", "EXEMPT", "FAILED_OPER_NOTICE",
1462 <  "FAKENAME", "IRCD_FLAGS", "FLATTEN_LINKS", "FFAILED_OPERLOG", "FKILLLOG",
1463 <  "FKLINELOG", "FGLINELOG", "FIOERRLOG", "FOPERLOG", "FOPERSPYLOG",
1464 <  "FUSERLOG", "GECOS", "GENERAL", "GLINE", "GLINES", "GLINE_EXEMPT",
1465 <  "GLINE_LOG", "GLINE_TIME", "GLINE_MIN_CIDR", "GLINE_MIN_CIDR6",
1310 >  "$end", "error", "$undefined", "ACCEPT_PASSWORD", "ADMIN", "AFTYPE",
1311 >  "ANTI_NICK_FLOOD", "ANTI_SPAM_EXIT_MESSAGE_TIME", "AUTOCONN", "BYTES",
1312 >  "KBYTES", "MBYTES", "CALLER_ID_WAIT", "CAN_FLOOD", "CHANNEL",
1313 >  "CIDR_BITLEN_IPV4", "CIDR_BITLEN_IPV6", "CLASS", "CONNECT",
1314 >  "CONNECTFREQ", "DEFAULT_FLOODCOUNT", "DEFAULT_SPLIT_SERVER_COUNT",
1315 >  "DEFAULT_SPLIT_USER_COUNT", "DENY", "DESCRIPTION", "DIE", "DISABLE_AUTH",
1316 >  "DISABLE_FAKE_CHANNELS", "DISABLE_REMOTE_COMMANDS", "DOTS_IN_IDENT",
1317 >  "EGDPOOL_PATH", "EMAIL", "ENCRYPTED", "EXCEED_LIMIT", "EXEMPT",
1318 >  "FAILED_OPER_NOTICE", "IRCD_FLAGS", "FLATTEN_LINKS", "GECOS", "GENERAL",
1319 >  "GLINE", "GLINE_DURATION", "GLINE_ENABLE", "GLINE_EXEMPT",
1320 >  "GLINE_REQUEST_DURATION", "GLINE_MIN_CIDR", "GLINE_MIN_CIDR6",
1321    "GLOBAL_KILL", "IRCD_AUTH", "NEED_IDENT", "HAVENT_READ_CONF", "HIDDEN",
1322 <  "HIDDEN_ADMIN", "HIDDEN_NAME", "HIDDEN_OPER", "HIDE_SERVER_IPS",
1323 <  "HIDE_SERVERS", "HIDE_SPOOF_IPS", "HOST", "HUB", "HUB_MASK", "IDLETIME",
1324 <  "IGNORE_BOGUS_TS", "INVISIBLE_ON_CONNECT", "IP", "KILL",
1325 <  "KILL_CHASE_TIME_LIMIT", "KLINE", "KLINE_EXEMPT", "KLINE_REASON",
1326 <  "KLINE_WITH_REASON", "KNOCK_DELAY", "KNOCK_DELAY_CHANNEL", "LEAF_MASK",
1327 <  "LINKS_DELAY", "LISTEN", "T_LOG", "LOGGING", "LOG_LEVEL", "MAX_ACCEPT",
1473 <  "MAX_BANS", "MAX_CHANS_PER_USER", "MAX_GLOBAL", "MAX_IDENT", "MAX_LOCAL",
1322 >  "HIDDEN_NAME", "HIDE_SERVER_IPS", "HIDE_SERVERS", "HIDE_SPOOF_IPS",
1323 >  "HOST", "HUB", "HUB_MASK", "IGNORE_BOGUS_TS", "INVISIBLE_ON_CONNECT",
1324 >  "IP", "KILL", "KILL_CHASE_TIME_LIMIT", "KLINE", "KLINE_EXEMPT",
1325 >  "KNOCK_DELAY", "KNOCK_DELAY_CHANNEL", "LEAF_MASK", "LINKS_DELAY",
1326 >  "LISTEN", "T_LOG", "MAX_ACCEPT", "MAX_BANS", "MAX_CHANS_PER_OPER",
1327 >  "MAX_CHANS_PER_USER", "MAX_GLOBAL", "MAX_IDENT", "MAX_LOCAL",
1328    "MAX_NICK_CHANGES", "MAX_NICK_TIME", "MAX_NUMBER", "MAX_TARGETS",
1329    "MAX_WATCH", "MESSAGE_LOCALE", "MIN_NONWILDCARD",
1330    "MIN_NONWILDCARD_SIMPLE", "MODULE", "MODULES", "NAME", "NEED_PASSWORD",
1331    "NETWORK_DESC", "NETWORK_NAME", "NICK", "NICK_CHANGES",
1332    "NO_CREATE_ON_SPLIT", "NO_JOIN_ON_SPLIT", "NO_OPER_FLOOD", "NO_TILDE",
1333 <  "NOT", "NUMBER", "NUMBER_PER_IDENT", "NUMBER_PER_CIDR", "NUMBER_PER_IP",
1334 <  "NUMBER_PER_IP_GLOBAL", "OPERATOR", "OPERS_BYPASS_CALLERID", "OPER_LOG",
1335 <  "OPER_ONLY_UMODES", "OPER_PASS_RESV", "OPER_SPY_T", "OPER_UMODES",
1336 <  "JOIN_FLOOD_COUNT", "JOIN_FLOOD_TIME", "PACE_WAIT", "PACE_WAIT_SIMPLE",
1337 <  "PASSWORD", "PATH", "PING_COOKIE", "PING_TIME", "PING_WARNING", "PORT",
1338 <  "QSTRING", "QUIET_ON_BAN", "REASON", "REDIRPORT", "REDIRSERV", "REGEX_T",
1339 <  "REHASH", "TREJECT_HOLD_TIME", "REMOTE", "REMOTEBAN",
1340 <  "RESTRICT_CHANNELS", "RESTRICTED", "RSA_PRIVATE_KEY_FILE",
1341 <  "RSA_PUBLIC_KEY_FILE", "SSL_CERTIFICATE_FILE", "T_SSL_CONNECTION_METHOD",
1342 <  "T_SSLV3", "T_TLSV1", "RESV", "RESV_EXEMPT", "SECONDS", "MINUTES",
1343 <  "HOURS", "DAYS", "WEEKS", "SENDQ", "SEND_PASSWORD", "SERVERHIDE",
1344 <  "SERVERINFO", "SERVLINK_PATH", "IRCD_SID", "TKLINE_EXPIRE_NOTICES",
1345 <  "T_SHARED", "T_CLUSTER", "TYPE", "SHORT_MOTD", "SILENT", "SPOOF",
1346 <  "SPOOF_NOTICE", "STATS_E_DISABLED", "STATS_I_OPER_ONLY",
1347 <  "STATS_K_OPER_ONLY", "STATS_O_OPER_ONLY", "STATS_P_OPER_ONLY", "TBOOL",
1348 <  "TMASKED", "T_REJECT", "TS_MAX_DELTA", "TS_WARN_DELTA", "TWODOTS",
1349 <  "T_ALL", "T_BOTS", "T_SOFTCALLERID", "T_CALLERID", "T_CCONN",
1350 <  "T_CCONN_FULL", "T_CLIENT_FLOOD", "T_DEAF", "T_DEBUG", "T_DRONE",
1351 <  "T_EXTERNAL", "T_FULL", "T_INVISIBLE", "T_IPV4", "T_IPV6", "T_LOCOPS",
1352 <  "T_LOGPATH", "T_L_CRIT", "T_L_DEBUG", "T_L_ERROR", "T_L_INFO",
1353 <  "T_L_NOTICE", "T_L_TRACE", "T_L_WARN", "T_MAX_CLIENTS", "T_NCHANGE",
1354 <  "T_OPERWALL", "T_REJ", "T_SERVER", "T_SERVNOTICE", "T_SKILL", "T_SPY",
1355 <  "T_SSL", "T_UMODES", "T_UNAUTH", "T_UNRESV", "T_UNXLINE", "T_WALLOP",
1356 <  "THROTTLE_TIME", "TOPICBURST", "TRUE_NO_OPER_FLOOD", "TKLINE", "TXLINE",
1357 <  "TRESV", "UNKLINE", "USER", "USE_EGD", "USE_EXCEPT", "USE_INVEX",
1358 <  "USE_KNOCK", "USE_LOGGING", "USE_WHOIS_ACTUALLY", "VHOST", "VHOST6",
1359 <  "XLINE", "WARN", "WARN_NO_NLINE", "';'", "'}'", "'{'", "'='", "','",
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",
1333 >  "NUMBER", "NUMBER_PER_CIDR", "NUMBER_PER_IP", "OPERATOR",
1334 >  "OPERS_BYPASS_CALLERID", "OPER_ONLY_UMODES", "OPER_PASS_RESV",
1335 >  "OPER_SPY_T", "OPER_UMODES", "JOIN_FLOOD_COUNT", "JOIN_FLOOD_TIME",
1336 >  "PACE_WAIT", "PACE_WAIT_SIMPLE", "PASSWORD", "PATH", "PING_COOKIE",
1337 >  "PING_TIME", "PORT", "QSTRING", "QUIET_ON_BAN", "REASON", "REDIRPORT",
1338 >  "REDIRSERV", "REGEX_T", "REHASH", "REMOTE", "REMOTEBAN",
1339 >  "RESTRICT_CHANNELS", "RSA_PRIVATE_KEY_FILE", "RSA_PUBLIC_KEY_FILE",
1340 >  "SSL_CERTIFICATE_FILE", "SSL_DH_PARAM_FILE", "T_SSL_CLIENT_METHOD",
1341 >  "T_SSL_SERVER_METHOD", "T_SSLV3", "T_TLSV1", "RESV", "RESV_EXEMPT",
1342 >  "SECONDS", "MINUTES", "HOURS", "DAYS", "WEEKS", "SENDQ", "SEND_PASSWORD",
1343 >  "SERVERHIDE", "SERVERINFO", "IRCD_SID", "TKLINE_EXPIRE_NOTICES",
1344 >  "T_SHARED", "T_CLUSTER", "TYPE", "SHORT_MOTD", "SPOOF", "SPOOF_NOTICE",
1345 >  "STATS_E_DISABLED", "STATS_I_OPER_ONLY", "STATS_K_OPER_ONLY",
1346 >  "STATS_O_OPER_ONLY", "STATS_P_OPER_ONLY", "TBOOL", "TMASKED",
1347 >  "TS_MAX_DELTA", "TS_WARN_DELTA", "TWODOTS", "T_ALL", "T_BOTS",
1348 >  "T_SOFTCALLERID", "T_CALLERID", "T_CCONN", "T_CCONN_FULL",
1349 >  "T_SSL_CIPHER_LIST", "T_DEAF", "T_DEBUG", "T_DLINE", "T_EXTERNAL",
1350 >  "T_FULL", "T_INVISIBLE", "T_IPV4", "T_IPV6", "T_LOCOPS", "T_MAX_CLIENTS",
1351 >  "T_NCHANGE", "T_OPERWALL", "T_RECVQ", "T_REJ", "T_SERVER",
1352 >  "T_SERVNOTICE", "T_SET", "T_SKILL", "T_SPY", "T_SSL", "T_UMODES",
1353 >  "T_UNAUTH", "T_UNDLINE", "T_UNLIMITED", "T_UNRESV", "T_UNXLINE",
1354 >  "T_GLOBOPS", "T_WALLOP", "T_RESTART", "T_SERVICE", "T_SERVICES_NAME",
1355 >  "THROTTLE_TIME", "TRUE_NO_OPER_FLOOD", "UNKLINE", "USER", "USE_EGD",
1356 >  "USE_LOGGING", "VHOST", "VHOST6", "XLINE", "WARN_NO_NLINE", "T_SIZE",
1357 >  "T_FILE", "';'", "'}'", "'{'", "'='", "','", "$accept", "conf",
1358 >  "conf_item", "timespec_", "timespec", "sizespec_", "sizespec",
1359 >  "modules_entry", "modules_items", "modules_item", "modules_module",
1360 >  "modules_path", "serverinfo_entry", "serverinfo_items",
1361 >  "serverinfo_item", "serverinfo_ssl_client_method",
1362 >  "serverinfo_ssl_server_method", "client_method_types",
1363 >  "client_method_type_item", "server_method_types",
1364 >  "server_method_type_item", "serverinfo_ssl_certificate_file",
1365 >  "serverinfo_rsa_private_key_file", "serverinfo_ssl_dh_param_file",
1366 >  "serverinfo_ssl_cipher_list", "serverinfo_name", "serverinfo_sid",
1367    "serverinfo_description", "serverinfo_network_name",
1368    "serverinfo_network_desc", "serverinfo_vhost", "serverinfo_vhost6",
1369    "serverinfo_max_clients", "serverinfo_hub", "admin_entry", "admin_items",
1370    "admin_item", "admin_name", "admin_email", "admin_description",
1371 <  "logging_entry", "logging_items", "logging_item", "logging_path",
1372 <  "logging_oper_log", "logging_fuserlog", "logging_ffailed_operlog",
1373 <  "logging_foperlog", "logging_foperspylog", "logging_fglinelog",
1374 <  "logging_fklinelog", "logging_ioerrlog", "logging_killlog",
1375 <  "logging_log_level", "logging_use_logging", "oper_entry", "$@2",
1376 <  "oper_name_b", "oper_items", "oper_item", "oper_name", "oper_name_t",
1377 <  "oper_user", "oper_password", "oper_encrypted",
1378 <  "oper_rsa_public_key_file", "oper_class", "oper_umodes", "$@3",
1379 <  "oper_umodes_items", "oper_umodes_item", "oper_global_kill",
1380 <  "oper_remote", "oper_remoteban", "oper_kline", "oper_xline",
1381 <  "oper_unkline", "oper_gline", "oper_nick_changes", "oper_die",
1382 <  "oper_rehash", "oper_admin", "oper_hidden_admin", "oper_hidden_oper",
1528 <  "oper_operwall", "oper_flags", "$@4", "oper_flags_items",
1529 <  "oper_flags_item", "$@5", "$@6", "oper_flags_item_atom", "class_entry",
1530 <  "$@7", "class_name_b", "class_items", "class_item", "class_name",
1531 <  "class_name_t", "class_ping_time", "class_ping_warning",
1532 <  "class_number_per_ip", "class_connectfreq", "class_max_number",
1533 <  "class_max_global", "class_max_local", "class_max_ident", "class_sendq",
1371 >  "logging_entry", "logging_items", "logging_item", "logging_use_logging",
1372 >  "logging_file_entry", "$@1", "logging_file_items", "logging_file_item",
1373 >  "logging_file_name", "logging_file_size", "logging_file_type", "$@2",
1374 >  "logging_file_type_items", "logging_file_type_item", "oper_entry", "$@3",
1375 >  "oper_items", "oper_item", "oper_name", "oper_user", "oper_password",
1376 >  "oper_encrypted", "oper_rsa_public_key_file", "oper_class",
1377 >  "oper_umodes", "$@4", "oper_umodes_items", "oper_umodes_item",
1378 >  "oper_flags", "$@5", "oper_flags_items", "oper_flags_item",
1379 >  "class_entry", "$@6", "class_items", "class_item", "class_name",
1380 >  "class_ping_time", "class_number_per_ip", "class_connectfreq",
1381 >  "class_max_number", "class_max_global", "class_max_local",
1382 >  "class_max_ident", "class_sendq", "class_recvq",
1383    "class_cidr_bitlen_ipv4", "class_cidr_bitlen_ipv6",
1384 <  "class_number_per_cidr", "listen_entry", "$@8", "listen_flags", "$@9",
1384 >  "class_number_per_cidr", "listen_entry", "$@7", "listen_flags", "$@8",
1385    "listen_flags_items", "listen_flags_item", "listen_items", "listen_item",
1386 <  "listen_port", "$@10", "port_items", "port_item", "listen_address",
1387 <  "listen_host", "auth_entry", "$@11", "auth_items", "auth_item",
1388 <  "auth_user", "auth_passwd", "auth_spoof_notice", "auth_class",
1389 <  "auth_encrypted", "auth_flags", "$@12", "auth_flags_items",
1390 <  "auth_flags_item", "$@13", "$@14", "auth_flags_item_atom",
1391 <  "auth_kline_exempt", "auth_need_ident", "auth_exceed_limit",
1392 <  "auth_can_flood", "auth_no_tilde", "auth_gline_exempt", "auth_spoof",
1393 <  "auth_redir_serv", "auth_redir_port", "auth_need_password", "resv_entry",
1394 <  "$@15", "resv_items", "resv_item", "resv_creason", "resv_channel",
1395 <  "resv_nick", "shared_entry", "$@16", "shared_items", "shared_item",
1396 <  "shared_name", "shared_user", "shared_type", "$@17", "shared_types",
1397 <  "shared_type_item", "cluster_entry", "$@18", "cluster_items",
1549 <  "cluster_item", "cluster_name", "cluster_type", "$@19", "cluster_types",
1550 <  "cluster_type_item", "connect_entry", "$@20", "connect_name_b",
1551 <  "connect_items", "connect_item", "connect_name", "connect_name_t",
1386 >  "listen_port", "$@9", "port_items", "port_item", "listen_address",
1387 >  "listen_host", "auth_entry", "$@10", "auth_items", "auth_item",
1388 >  "auth_user", "auth_passwd", "auth_class", "auth_encrypted", "auth_flags",
1389 >  "$@11", "auth_flags_items", "auth_flags_item", "auth_spoof",
1390 >  "auth_redir_serv", "auth_redir_port", "resv_entry", "$@12", "resv_items",
1391 >  "resv_item", "resv_creason", "resv_channel", "resv_nick",
1392 >  "service_entry", "service_items", "service_item", "service_name",
1393 >  "shared_entry", "$@13", "shared_items", "shared_item", "shared_name",
1394 >  "shared_user", "shared_type", "$@14", "shared_types", "shared_type_item",
1395 >  "cluster_entry", "$@15", "cluster_items", "cluster_item", "cluster_name",
1396 >  "cluster_type", "$@16", "cluster_types", "cluster_type_item",
1397 >  "connect_entry", "$@17", "connect_items", "connect_item", "connect_name",
1398    "connect_host", "connect_vhost", "connect_send_password",
1399    "connect_accept_password", "connect_port", "connect_aftype",
1400 <  "connect_fakename", "connect_flags", "$@21", "connect_flags_items",
1401 <  "connect_flags_item", "$@22", "$@23", "connect_flags_item_atom",
1402 <  "connect_rsa_public_key_file", "connect_encrypted", "connect_cryptlink",
1403 <  "connect_compressed", "connect_auto", "connect_topicburst",
1404 <  "connect_hub_mask", "connect_leaf_mask", "connect_class",
1405 <  "connect_cipher_preference", "kill_entry", "$@24", "kill_type", "$@25",
1406 <  "kill_type_items", "kill_type_item", "kill_items", "kill_item",
1407 <  "kill_user", "kill_reason", "deny_entry", "$@26", "deny_items",
1408 <  "deny_item", "deny_ip", "deny_reason", "exempt_entry", "exempt_items",
1409 <  "exempt_item", "exempt_ip", "gecos_entry", "$@27", "gecos_flags", "$@28",
1410 <  "gecos_flags_items", "gecos_flags_item", "gecos_items", "gecos_item",
1411 <  "gecos_name", "gecos_reason", "general_entry", "general_items",
1412 <  "general_item", "general_max_watch", "general_gline_min_cidr",
1413 <  "general_gline_min_cidr6", "general_burst_away",
1414 <  "general_use_whois_actually", "general_reject_hold_time",
1415 <  "general_tkline_expire_notices", "general_kill_chase_time_limit",
1416 <  "general_hide_spoof_ips", "general_ignore_bogus_ts",
1417 <  "general_disable_remote_commands", "general_failed_oper_notice",
1418 <  "general_anti_nick_flood", "general_max_nick_time",
1419 <  "general_max_nick_changes", "general_max_accept",
1420 <  "general_anti_spam_exit_message_time", "general_ts_warn_delta",
1421 <  "general_ts_max_delta", "general_havent_read_conf",
1422 <  "general_kline_with_reason", "general_kline_reason",
1423 <  "general_invisible_on_connect", "general_warn_no_nline",
1424 <  "general_stats_e_disabled", "general_stats_o_oper_only",
1425 <  "general_stats_P_oper_only", "general_stats_k_oper_only",
1426 <  "general_stats_i_oper_only", "general_pace_wait",
1427 <  "general_caller_id_wait", "general_opers_bypass_callerid",
1428 <  "general_pace_wait_simple", "general_short_motd",
1429 <  "general_no_oper_flood", "general_true_no_oper_flood",
1430 <  "general_oper_pass_resv", "general_message_locale", "general_idletime",
1431 <  "general_dots_in_ident", "general_max_targets", "general_servlink_path",
1432 <  "general_default_cipher_preference", "general_compression_level",
1433 <  "general_use_egd", "general_egdpool_path", "general_ping_cookie",
1434 <  "general_disable_auth", "general_throttle_time", "general_oper_umodes",
1435 <  "$@29", "umode_oitems", "umode_oitem", "general_oper_only_umodes",
1436 <  "$@30", "umode_items", "umode_item", "general_min_nonwildcard",
1437 <  "general_min_nonwildcard_simple", "general_default_floodcount",
1592 <  "general_client_flood", "general_dot_in_ip6_addr", "gline_entry", "$@31",
1593 <  "gline_items", "gline_item", "gline_enable", "gline_duration",
1594 <  "gline_logging", "$@32", "gline_logging_types",
1595 <  "gline_logging_type_item", "gline_user", "gline_server", "gline_action",
1596 <  "$@33", "gdeny_types", "gdeny_type_item", "channel_entry",
1597 <  "channel_items", "channel_item", "channel_disable_fake_channels",
1598 <  "channel_restrict_channels", "channel_disable_local_channels",
1599 <  "channel_use_except", "channel_use_invex", "channel_use_knock",
1600 <  "channel_knock_delay", "channel_knock_delay_channel",
1601 <  "channel_max_chans_per_user", "channel_quiet_on_ban", "channel_max_bans",
1400 >  "connect_flags", "$@18", "connect_flags_items", "connect_flags_item",
1401 >  "connect_encrypted", "connect_hub_mask", "connect_leaf_mask",
1402 >  "connect_class", "connect_ssl_cipher_list", "kill_entry", "$@19",
1403 >  "kill_type", "$@20", "kill_type_items", "kill_type_item", "kill_items",
1404 >  "kill_item", "kill_user", "kill_reason", "deny_entry", "$@21",
1405 >  "deny_items", "deny_item", "deny_ip", "deny_reason", "exempt_entry",
1406 >  "exempt_items", "exempt_item", "exempt_ip", "gecos_entry", "$@22",
1407 >  "gecos_flags", "$@23", "gecos_flags_items", "gecos_flags_item",
1408 >  "gecos_items", "gecos_item", "gecos_name", "gecos_reason",
1409 >  "general_entry", "general_items", "general_item", "general_max_watch",
1410 >  "general_gline_enable", "general_gline_duration",
1411 >  "general_gline_request_duration", "general_gline_min_cidr",
1412 >  "general_gline_min_cidr6", "general_tkline_expire_notices",
1413 >  "general_kill_chase_time_limit", "general_hide_spoof_ips",
1414 >  "general_ignore_bogus_ts", "general_disable_remote_commands",
1415 >  "general_failed_oper_notice", "general_anti_nick_flood",
1416 >  "general_max_nick_time", "general_max_nick_changes",
1417 >  "general_max_accept", "general_anti_spam_exit_message_time",
1418 >  "general_ts_warn_delta", "general_ts_max_delta",
1419 >  "general_havent_read_conf", "general_invisible_on_connect",
1420 >  "general_warn_no_nline", "general_stats_e_disabled",
1421 >  "general_stats_o_oper_only", "general_stats_P_oper_only",
1422 >  "general_stats_k_oper_only", "general_stats_i_oper_only",
1423 >  "general_pace_wait", "general_caller_id_wait",
1424 >  "general_opers_bypass_callerid", "general_pace_wait_simple",
1425 >  "general_short_motd", "general_no_oper_flood",
1426 >  "general_true_no_oper_flood", "general_oper_pass_resv",
1427 >  "general_message_locale", "general_dots_in_ident", "general_max_targets",
1428 >  "general_use_egd", "general_egdpool_path", "general_services_name",
1429 >  "general_ping_cookie", "general_disable_auth", "general_throttle_time",
1430 >  "general_oper_umodes", "$@24", "umode_oitems", "umode_oitem",
1431 >  "general_oper_only_umodes", "$@25", "umode_items", "umode_item",
1432 >  "general_min_nonwildcard", "general_min_nonwildcard_simple",
1433 >  "general_default_floodcount", "channel_entry", "channel_items",
1434 >  "channel_item", "channel_disable_fake_channels",
1435 >  "channel_restrict_channels", "channel_knock_delay",
1436 >  "channel_knock_delay_channel", "channel_max_chans_per_user",
1437 >  "channel_max_chans_per_oper", "channel_quiet_on_ban", "channel_max_bans",
1438    "channel_default_split_user_count", "channel_default_split_server_count",
1439    "channel_no_create_on_split", "channel_no_join_on_split",
1440 <  "channel_burst_topicwho", "channel_jflood_count", "channel_jflood_time",
1441 <  "serverhide_entry", "serverhide_items", "serverhide_item",
1442 <  "serverhide_flatten_links", "serverhide_hide_servers",
1443 <  "serverhide_hidden_name", "serverhide_links_delay", "serverhide_hidden",
1444 <  "serverhide_disable_hidden", "serverhide_hide_server_ips", 0
1440 >  "channel_jflood_count", "channel_jflood_time", "serverhide_entry",
1441 >  "serverhide_items", "serverhide_item", "serverhide_flatten_links",
1442 >  "serverhide_hide_servers", "serverhide_hidden_name",
1443 >  "serverhide_links_delay", "serverhide_hidden",
1444 >  "serverhide_hide_server_ips", YY_NULL
1445   };
1446   #endif
1447  
# Line 1635 | Line 1471 | static const yytype_uint16 yytoknum[] =
1471       435,   436,   437,   438,   439,   440,   441,   442,   443,   444,
1472       445,   446,   447,   448,   449,   450,   451,   452,   453,   454,
1473       455,   456,   457,   458,   459,   460,   461,   462,   463,   464,
1474 <     465,   466,   467,   468,   469,   470,   471,   472,   473,   474,
1639 <     475,   476,   477,   478,   479,   480,   481,   482,   483,   484,
1640 <     485,   486,   487,   488,   489,   490,   491,   492,   493,   494,
1641 <     495,   496,   497,   498,   499,   500,   501,   502,   503,   504,
1642 <     505,   506,   507,   508,   509,   510,   511,   512,   513,   514,
1643 <     515,   516,    59,   125,   123,    61,    44
1474 >     465,   466,   467,   468,    59,   125,   123,    61,    44
1475   };
1476   # endif
1477  
1478   /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives.  */
1479   static const yytype_uint16 yyr1[] =
1480   {
1481 <       0,   267,   268,   268,   269,   269,   269,   269,   269,   269,
1482 <     269,   269,   269,   269,   269,   269,   269,   269,   269,   269,
1483 <     269,   269,   269,   269,   269,   269,   270,   270,   271,   271,
1484 <     271,   271,   271,   271,   272,   272,   273,   273,   273,   273,
1485 <     274,   275,   275,   276,   276,   276,   277,   278,   279,   280,
1486 <     280,   281,   281,   281,   281,   281,   281,   281,   281,   281,
1487 <     281,   281,   281,   281,   283,   282,   284,   284,   285,   285,
1488 <     286,   287,   288,   289,   290,   291,   292,   293,   294,   295,
1489 <     296,   297,   298,   298,   299,   299,   299,   299,   300,   301,
1490 <     302,   303,   304,   304,   305,   305,   305,   305,   305,   305,
1491 <     305,   305,   305,   305,   305,   305,   305,   306,   307,   308,
1492 <     309,   310,   311,   312,   313,   314,   315,   316,   316,   316,
1493 <     316,   316,   316,   316,   317,   319,   318,   320,   320,   321,
1494 <     321,   322,   322,   322,   322,   322,   322,   322,   322,   322,
1495 <     322,   322,   322,   322,   322,   322,   322,   322,   322,   322,
1496 <     322,   322,   322,   322,   323,   324,   325,   326,   327,   328,
1497 <     329,   331,   330,   332,   332,   333,   333,   333,   333,   333,
1498 <     333,   333,   333,   333,   333,   333,   333,   333,   333,   333,
1499 <     333,   333,   333,   333,   334,   335,   336,   337,   338,   339,
1500 <     340,   341,   342,   343,   344,   345,   346,   347,   349,   348,
1501 <     350,   350,   352,   351,   353,   351,   354,   354,   354,   354,
1502 <     354,   354,   354,   354,   354,   354,   354,   354,   354,   354,
1503 <     354,   354,   356,   355,   357,   357,   358,   358,   359,   359,
1504 <     359,   359,   359,   359,   359,   359,   359,   359,   359,   359,
1505 <     359,   359,   360,   361,   362,   363,   364,   365,   366,   367,
1506 <     368,   369,   370,   371,   372,   373,   375,   374,   377,   376,
1507 <     378,   378,   379,   379,   379,   380,   380,   381,   381,   381,
1508 <     381,   381,   383,   382,   384,   384,   385,   385,   386,   387,
1509 <     389,   388,   390,   390,   391,   391,   391,   391,   391,   391,
1510 <     391,   391,   391,   391,   391,   391,   391,   391,   391,   391,
1511 <     391,   392,   393,   394,   395,   396,   398,   397,   399,   399,
1512 <     401,   400,   402,   400,   403,   403,   403,   403,   403,   403,
1513 <     403,   403,   403,   403,   404,   405,   406,   407,   408,   409,
1514 <     410,   411,   412,   413,   415,   414,   416,   416,   417,   417,
1515 <     417,   417,   418,   419,   420,   422,   421,   423,   423,   424,
1516 <     424,   424,   424,   425,   426,   428,   427,   429,   429,   430,
1517 <     430,   430,   430,   430,   430,   430,   430,   430,   430,   430,
1518 <     432,   431,   433,   433,   434,   434,   434,   435,   437,   436,
1519 <     438,   438,   439,   439,   439,   439,   439,   439,   439,   439,
1520 <     439,   439,   439,   441,   440,   442,   442,   443,   443,   444,
1521 <     444,   444,   444,   444,   444,   444,   444,   444,   444,   444,
1522 <     444,   444,   444,   444,   444,   444,   444,   444,   444,   445,
1523 <     446,   447,   448,   449,   450,   451,   452,   452,   453,   455,
1524 <     454,   456,   456,   458,   457,   459,   457,   460,   460,   460,
1525 <     460,   460,   461,   462,   463,   464,   465,   466,   467,   468,
1526 <     469,   470,   472,   471,   474,   473,   475,   475,   476,   477,
1527 <     477,   478,   478,   478,   478,   479,   480,   482,   481,   483,
1528 <     483,   484,   484,   484,   485,   486,   487,   488,   488,   489,
1529 <     489,   490,   492,   491,   494,   493,   495,   495,   496,   497,
1530 <     497,   498,   498,   498,   498,   499,   500,   501,   502,   502,
1531 <     503,   503,   503,   503,   503,   503,   503,   503,   503,   503,
1532 <     503,   503,   503,   503,   503,   503,   503,   503,   503,   503,
1533 <     503,   503,   503,   503,   503,   503,   503,   503,   503,   503,
1534 <     503,   503,   503,   503,   503,   503,   503,   503,   503,   503,
1535 <     503,   503,   503,   503,   503,   503,   503,   503,   503,   503,
1536 <     503,   503,   503,   503,   503,   503,   503,   504,   505,   506,
1537 <     507,   508,   509,   510,   511,   512,   513,   514,   515,   516,
1538 <     517,   518,   519,   520,   521,   522,   523,   524,   525,   526,
1539 <     527,   528,   529,   530,   531,   531,   532,   532,   533,   534,
1540 <     535,   536,   537,   538,   539,   540,   541,   542,   543,   544,
1541 <     545,   546,   547,   548,   549,   550,   551,   552,   554,   553,
1542 <     555,   555,   556,   556,   556,   556,   556,   556,   556,   556,
1543 <     556,   556,   556,   556,   556,   556,   556,   556,   556,   556,
1713 <     556,   558,   557,   559,   559,   560,   560,   560,   560,   560,
1714 <     560,   560,   560,   560,   560,   560,   560,   560,   560,   560,
1715 <     560,   560,   560,   560,   561,   562,   563,   564,   565,   567,
1716 <     566,   568,   568,   569,   569,   569,   569,   569,   569,   569,
1717 <     570,   571,   573,   572,   574,   574,   575,   575,   576,   577,
1718 <     579,   578,   580,   580,   581,   581,   582,   583,   583,   584,
1719 <     584,   584,   584,   584,   584,   584,   584,   584,   584,   584,
1720 <     584,   584,   584,   584,   584,   584,   584,   584,   585,   586,
1721 <     587,   588,   589,   590,   591,   592,   593,   594,   595,   596,
1722 <     597,   598,   599,   600,   601,   602,   603,   604,   604,   605,
1723 <     605,   605,   605,   605,   605,   605,   605,   606,   607,   608,
1724 <     609,   610,   611,   612
1481 >       0,   219,   220,   220,   221,   221,   221,   221,   221,   221,
1482 >     221,   221,   221,   221,   221,   221,   221,   221,   221,   221,
1483 >     221,   221,   221,   221,   221,   221,   222,   222,   223,   223,
1484 >     223,   223,   223,   223,   224,   224,   225,   225,   225,   225,
1485 >     226,   227,   227,   228,   228,   228,   229,   230,   231,   232,
1486 >     232,   233,   233,   233,   233,   233,   233,   233,   233,   233,
1487 >     233,   233,   233,   233,   233,   233,   233,   234,   235,   236,
1488 >     236,   237,   237,   238,   238,   239,   239,   240,   241,   242,
1489 >     243,   244,   245,   246,   247,   248,   249,   250,   251,   252,
1490 >     253,   254,   254,   255,   255,   255,   255,   256,   257,   258,
1491 >     259,   260,   260,   261,   261,   261,   262,   264,   263,   265,
1492 >     265,   266,   266,   266,   266,   267,   268,   268,   270,   269,
1493 >     271,   271,   272,   272,   272,   272,   272,   272,   272,   274,
1494 >     273,   275,   275,   276,   276,   276,   276,   276,   276,   276,
1495 >     276,   276,   277,   278,   279,   280,   281,   282,   284,   283,
1496 >     285,   285,   286,   286,   286,   286,   286,   286,   286,   286,
1497 >     286,   286,   286,   286,   286,   286,   286,   286,   286,   286,
1498 >     286,   286,   288,   287,   289,   289,   290,   290,   290,   290,
1499 >     290,   290,   290,   290,   290,   290,   290,   290,   290,   290,
1500 >     290,   290,   290,   290,   290,   292,   291,   293,   293,   294,
1501 >     294,   294,   294,   294,   294,   294,   294,   294,   294,   294,
1502 >     294,   294,   294,   295,   296,   297,   298,   299,   300,   301,
1503 >     302,   303,   304,   305,   306,   307,   309,   308,   311,   310,
1504 >     312,   312,   313,   313,   313,   314,   314,   315,   315,   315,
1505 >     315,   315,   317,   316,   318,   318,   319,   319,   320,   321,
1506 >     323,   322,   324,   324,   325,   325,   325,   325,   325,   325,
1507 >     325,   325,   325,   326,   327,   328,   329,   331,   330,   332,
1508 >     332,   333,   333,   333,   333,   333,   333,   333,   333,   333,
1509 >     334,   335,   336,   338,   337,   339,   339,   340,   340,   340,
1510 >     340,   341,   342,   343,   344,   345,   345,   346,   346,   347,
1511 >     349,   348,   350,   350,   351,   351,   351,   351,   352,   353,
1512 >     355,   354,   356,   356,   357,   357,   357,   357,   357,   357,
1513 >     357,   357,   357,   357,   359,   358,   360,   360,   361,   361,
1514 >     361,   362,   364,   363,   365,   365,   366,   366,   366,   366,
1515 >     366,   366,   366,   366,   366,   366,   368,   367,   369,   369,
1516 >     370,   370,   370,   370,   370,   370,   370,   370,   370,   370,
1517 >     370,   370,   370,   370,   371,   372,   373,   374,   375,   376,
1518 >     377,   377,   379,   378,   380,   380,   381,   381,   382,   383,
1519 >     384,   385,   386,   388,   387,   390,   389,   391,   391,   392,
1520 >     393,   393,   394,   394,   394,   394,   395,   396,   398,   397,
1521 >     399,   399,   400,   400,   400,   401,   402,   403,   404,   404,
1522 >     405,   405,   406,   408,   407,   410,   409,   411,   411,   412,
1523 >     413,   413,   414,   414,   414,   414,   415,   416,   417,   418,
1524 >     418,   419,   419,   419,   419,   419,   419,   419,   419,   419,
1525 >     419,   419,   419,   419,   419,   419,   419,   419,   419,   419,
1526 >     419,   419,   419,   419,   419,   419,   419,   419,   419,   419,
1527 >     419,   419,   419,   419,   419,   419,   419,   419,   419,   419,
1528 >     419,   419,   419,   419,   419,   419,   419,   419,   419,   419,
1529 >     419,   420,   421,   422,   423,   424,   425,   426,   427,   428,
1530 >     429,   430,   431,   432,   433,   434,   435,   436,   437,   438,
1531 >     439,   440,   441,   442,   443,   444,   445,   445,   446,   446,
1532 >     447,   448,   449,   450,   451,   452,   453,   454,   455,   456,
1533 >     457,   458,   459,   460,   461,   462,   463,   465,   464,   466,
1534 >     466,   467,   467,   467,   467,   467,   467,   467,   467,   467,
1535 >     467,   467,   467,   467,   467,   467,   467,   467,   467,   467,
1536 >     467,   469,   468,   470,   470,   471,   471,   471,   471,   471,
1537 >     471,   471,   471,   471,   471,   471,   471,   471,   471,   471,
1538 >     471,   471,   471,   471,   471,   472,   473,   474,   475,   476,
1539 >     476,   477,   477,   477,   477,   477,   477,   477,   477,   477,
1540 >     477,   477,   477,   477,   477,   477,   478,   479,   480,   481,
1541 >     482,   483,   484,   485,   486,   487,   488,   489,   490,   491,
1542 >     492,   493,   493,   494,   494,   494,   494,   494,   494,   494,
1543 >     495,   496,   497,   498,   499,   500
1544   };
1545  
1546   /* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN.  */
# Line 1733 | Line 1552 | static const yytype_uint8 yyr2[] =
1552         3,     3,     3,     3,     0,     1,     2,     3,     3,     3,
1553         5,     2,     1,     1,     1,     2,     4,     4,     5,     2,
1554         1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1555 <       1,     1,     1,     2,     0,     5,     3,     1,     1,     1,
1556 <       4,     4,     4,     4,     4,     4,     4,     4,     4,     4,
1738 <       4,     5,     2,     1,     1,     1,     1,     2,     4,     4,
1739 <       4,     5,     2,     1,     1,     1,     1,     1,     1,     1,
1740 <       1,     1,     1,     1,     1,     1,     2,     4,     4,     4,
1555 >       1,     1,     1,     1,     1,     1,     2,     4,     4,     3,
1556 >       1,     1,     1,     3,     1,     1,     1,     4,     4,     4,
1557         4,     4,     4,     4,     4,     4,     4,     4,     4,     4,
1558 <       4,     4,     4,     4,     4,     0,     7,     0,     1,     2,
1559 <       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1560 <       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1561 <       1,     1,     1,     2,     4,     1,     4,     4,     4,     4,
1562 <       4,     0,     5,     3,     1,     1,     1,     1,     1,     1,
1558 >       5,     2,     1,     1,     1,     1,     2,     4,     4,     4,
1559 >       5,     2,     1,     1,     1,     2,     4,     0,     6,     2,
1560 >       1,     1,     1,     1,     2,     4,     4,     4,     0,     5,
1561 >       3,     1,     1,     1,     1,     1,     1,     1,     1,     0,
1562 >       6,     2,     1,     1,     1,     1,     1,     1,     1,     1,
1563 >       1,     2,     4,     4,     4,     4,     4,     4,     0,     5,
1564 >       3,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1565         1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1566 <       1,     1,     1,     1,     4,     4,     4,     4,     4,     4,
1749 <       4,     4,     4,     4,     4,     4,     4,     4,     0,     5,
1750 <       3,     1,     0,     3,     0,     2,     1,     1,     1,     1,
1566 >       1,     1,     0,     5,     3,     1,     1,     1,     1,     1,
1567         1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1568 <       1,     1,     0,     7,     0,     1,     2,     1,     1,     1,
1568 >       1,     1,     1,     1,     1,     0,     6,     2,     1,     1,
1569         1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1570 <       1,     2,     4,     1,     4,     4,     4,     4,     4,     4,
1570 >       1,     1,     2,     4,     4,     4,     4,     4,     4,     4,
1571         4,     4,     4,     4,     4,     4,     0,     6,     0,     5,
1572         3,     1,     1,     1,     1,     2,     1,     1,     1,     1,
1573         1,     2,     0,     5,     3,     1,     1,     3,     4,     4,
1574         0,     6,     2,     1,     1,     1,     1,     1,     1,     1,
1575 +       1,     1,     2,     4,     4,     4,     4,     0,     5,     3,
1576         1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1577 <       2,     4,     4,     4,     4,     4,     0,     5,     3,     1,
1578 <       0,     3,     0,     2,     1,     1,     1,     1,     1,     1,
1579 <       1,     1,     1,     1,     4,     4,     4,     4,     4,     4,
1580 <       4,     4,     4,     4,     0,     6,     2,     1,     1,     1,
1581 <       1,     2,     4,     4,     4,     0,     6,     2,     1,     1,
1582 <       1,     1,     2,     4,     4,     0,     5,     3,     1,     1,
1577 >       4,     4,     4,     0,     6,     2,     1,     1,     1,     1,
1578 >       2,     4,     4,     4,     5,     2,     1,     1,     1,     4,
1579 >       0,     6,     2,     1,     1,     1,     1,     2,     4,     4,
1580 >       0,     5,     3,     1,     1,     1,     1,     1,     1,     1,
1581 >       1,     1,     1,     1,     0,     6,     2,     1,     1,     1,
1582 >       2,     4,     0,     5,     3,     1,     1,     1,     1,     1,
1583 >       1,     1,     1,     1,     1,     1,     0,     6,     2,     1,
1584         1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1585 <       0,     6,     2,     1,     1,     1,     2,     4,     0,     5,
1586 <       3,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1587 <       1,     1,     1,     0,     7,     0,     1,     2,     1,     1,
1588 <       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1589 <       1,     1,     1,     1,     1,     1,     1,     1,     2,     4,
1590 <       1,     4,     4,     4,     4,     4,     4,     4,     4,     0,
1591 <       5,     3,     1,     0,     3,     0,     2,     1,     1,     1,
1774 <       1,     1,     4,     4,     4,     4,     4,     4,     4,     4,
1775 <       4,     4,     0,     6,     0,     5,     3,     1,     1,     2,
1776 <       1,     1,     1,     1,     1,     4,     4,     0,     6,     2,
1777 <       1,     1,     1,     1,     4,     4,     5,     2,     1,     1,
1778 <       1,     4,     0,     6,     0,     5,     3,     1,     1,     2,
1779 <       1,     1,     1,     1,     1,     4,     4,     5,     2,     1,
1585 >       1,     1,     1,     2,     4,     4,     4,     4,     4,     4,
1586 >       4,     4,     0,     5,     3,     1,     1,     1,     4,     4,
1587 >       4,     4,     4,     0,     6,     0,     5,     3,     1,     1,
1588 >       2,     1,     1,     1,     1,     1,     4,     4,     0,     6,
1589 >       2,     1,     1,     1,     1,     4,     4,     5,     2,     1,
1590 >       1,     1,     4,     0,     6,     0,     5,     3,     1,     1,
1591 >       2,     1,     1,     1,     1,     1,     4,     4,     5,     2,
1592         1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1593         1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1594         1,     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,     4,     4,     4,
1786 <       4,     4,     4,     4,     4,     4,     4,     4,     4,     4,
1597 >       1,     4,     4,     4,     4,     4,     4,     4,     4,     4,
1598         4,     4,     4,     4,     4,     4,     4,     4,     4,     4,
1599         4,     4,     4,     4,     4,     4,     4,     4,     4,     4,
1600         4,     4,     4,     4,     4,     4,     4,     4,     4,     4,
1601 <       4,     4,     4,     4,     4,     4,     4,     4,     0,     5,
1602 <       3,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1601 >       4,     4,     4,     4,     4,     4,     4,     0,     5,     3,
1602 >       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1603         1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1604         1,     0,     5,     3,     1,     1,     1,     1,     1,     1,
1605         1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1606 <       1,     1,     1,     1,     4,     4,     4,     4,     4,     0,
1796 <       6,     2,     1,     1,     1,     1,     1,     1,     1,     1,
1797 <       4,     4,     0,     5,     3,     1,     1,     1,     4,     4,
1798 <       0,     5,     3,     1,     1,     1,     5,     2,     1,     1,
1606 >       1,     1,     1,     1,     1,     4,     4,     4,     5,     2,
1607         1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1608 <       1,     1,     1,     1,     1,     1,     1,     1,     4,     4,
1608 >       1,     1,     1,     1,     1,     1,     4,     4,     4,     4,
1609         4,     4,     4,     4,     4,     4,     4,     4,     4,     4,
1610 <       4,     4,     4,     4,     4,     4,     5,     2,     1,     1,
1611 <       1,     1,     1,     1,     1,     1,     1,     4,     4,     4,
1804 <       4,     4,     4,     4
1610 >       5,     2,     1,     1,     1,     1,     1,     1,     1,     1,
1611 >       4,     4,     4,     4,     4,     4
1612   };
1613  
1614 < /* YYDEFACT[STATE-NAME] -- Default rule to reduce with in state
1615 <   STATE-NUM when YYTABLE doesn't specify something else to do.  Zero
1614 > /* YYDEFACT[STATE-NAME] -- Default reduction number in state STATE-NUM.
1615 >   Performed when YYTABLE doesn't specify something else to do.  Zero
1616     means the default is an error.  */
1617   static const yytype_uint16 yydefact[] =
1618   {
1619 <       2,     0,     1,     0,     0,     0,   222,   393,   467,     0,
1620 <     482,     0,   659,   280,   452,   256,     0,     0,   125,   334,
1621 <       0,     0,   345,   370,     3,    23,    11,     4,     5,     6,
1619 >       2,     0,     1,     0,     0,     0,   195,   346,   398,     0,
1620 >     413,     0,   250,   383,   226,     0,     0,   129,   283,     0,
1621 >       0,   300,   324,     0,     3,    23,    11,     4,     5,     6,
1622         8,     9,    10,    13,    14,    15,    16,    17,    18,    19,
1623 <      22,    20,    21,     7,    12,    24,    25,     0,     0,   224,
1817 <     395,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1818 <       0,   127,     0,     0,     0,     0,     0,     0,     0,     0,
1819 <       0,     0,    83,    84,    86,    85,   707,     0,     0,     0,
1820 <       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1821 <       0,     0,     0,     0,     0,     0,   688,   706,   701,   689,
1822 <     690,   691,   692,   694,   695,   696,   697,   693,   698,   699,
1823 <     700,   702,   703,   704,   705,   243,     0,   225,   420,     0,
1824 <     396,     0,   480,     0,     0,   478,   479,     0,   556,     0,
1825 <       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1826 <       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1827 <       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1828 <       0,     0,   631,     0,   608,     0,     0,     0,     0,     0,
1829 <       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1830 <       0,     0,     0,     0,     0,     0,   499,   555,   550,   551,
1831 <     548,   552,   553,   549,   510,   500,   501,   539,   502,   503,
1832 <     504,   505,   506,   507,   508,   509,   544,   511,   512,   513,
1833 <     514,   554,   516,   521,   517,   519,   518,   533,   534,   520,
1834 <     522,   523,   524,   525,   527,   526,   515,   529,   538,   540,
1835 <     541,   530,   531,   546,   547,   543,   532,   528,   536,   537,
1836 <     535,   542,   545,     0,     0,     0,     0,     0,     0,     0,
1837 <       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1838 <       0,    93,    94,    95,    98,   105,    99,   103,   100,   101,
1839 <     104,   102,    96,    97,     0,     0,     0,     0,    42,    43,
1840 <      44,   155,     0,   128,     0,   736,     0,     0,     0,     0,
1841 <       0,     0,     0,     0,   728,   729,   730,   734,   731,   733,
1842 <     732,   735,     0,     0,     0,     0,     0,     0,     0,     0,
1843 <      64,     0,     0,     0,     0,     0,    50,    62,    61,    58,
1844 <      51,    60,    54,    55,    56,    52,    59,    57,    53,     0,
1845 <       0,    87,     0,     0,     0,     0,    82,     0,     0,     0,
1623 >      20,    22,    21,     7,    12,    24,    25,     0,     0,     0,
1624         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1847       0,     0,     0,     0,     0,     0,   687,     0,     0,   473,
1848       0,     0,     0,   470,   471,   472,     0,     0,   477,   494,
1849       0,     0,   484,   493,     0,   490,   491,   492,     0,     0,
1625         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1626 +       0,     0,    92,    93,    95,    94,   595,     0,     0,     0,
1627         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1628 +       0,     0,   580,   594,   590,   582,   583,   584,   585,   586,
1629 +     581,   587,   588,   589,   591,   592,   593,     0,     0,     0,
1630 +     411,     0,     0,   409,   410,     0,   480,     0,     0,     0,
1631         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1632         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1633 +       0,     0,     0,     0,     0,     0,   551,     0,   527,     0,
1634         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1635 <       0,     0,     0,     0,     0,   498,   669,   680,     0,     0,
1636 <     672,     0,     0,     0,   662,   663,   664,   665,   666,   667,
1637 <     668,     0,     0,     0,     0,     0,   306,     0,     0,     0,
1638 <       0,     0,     0,     0,     0,     0,     0,     0,     0,   283,
1639 <     284,   285,   294,   286,   299,   287,   288,   289,   290,   297,
1640 <     291,   292,   293,   295,   296,   298,   464,     0,   454,     0,
1641 <     463,     0,   460,   461,   462,     0,   258,     0,     0,     0,
1642 <     268,     0,   266,   267,   269,   270,   106,     0,     0,     0,
1635 >       0,     0,     0,     0,     0,     0,     0,   430,   478,   472,
1636 >     473,   474,   475,   476,   471,   441,   431,   432,   466,   433,
1637 >     434,   435,   436,   437,   438,   439,   440,   468,   442,   443,
1638 >     477,   445,   450,   446,   448,   447,   461,   462,   449,   451,
1639 >     452,   453,   454,   455,   444,   457,   458,   459,   479,   469,
1640 >     470,   467,   460,   456,   464,   465,   463,     0,     0,     0,
1641 >       0,     0,     0,   102,   103,   104,     0,     0,     0,     0,
1642 >       0,    42,    43,    44,     0,     0,   619,     0,     0,     0,
1643 >       0,     0,     0,     0,   612,   613,   614,   617,   615,   616,
1644 >     618,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1645 >       0,     0,     0,     0,     0,     0,     0,     0,    50,    63,
1646 >      64,    62,    59,    58,    65,    51,    61,    54,    55,    56,
1647 >      52,    60,    57,    53,     0,     0,   298,     0,     0,   296,
1648 >     297,    96,     0,     0,     0,     0,    91,     0,     0,     0,
1649         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1650 <      92,    45,     0,     0,     0,    41,     0,     0,     0,     0,
1651 <       0,     0,   337,   338,   339,   340,     0,     0,     0,     0,
1652 <       0,     0,     0,     0,   727,    63,     0,     0,     0,     0,
1653 <       0,     0,     0,     0,     0,     0,     0,     0,     0,    49,
1654 <       0,     0,   355,     0,     0,   348,   349,   350,   351,     0,
1655 <       0,   378,     0,   373,   374,   375,     0,     0,     0,    81,
1656 <       0,     0,     0,     0,     0,    26,     0,     0,     0,     0,
1657 <       0,     0,     0,     0,     0,     0,     0,     0,     0,   686,
1650 >       0,     0,   579,     0,     0,     0,     0,     0,     0,     0,
1651 >       0,     0,     0,     0,     0,     0,     0,     0,   198,   199,
1652 >     202,   204,   205,   206,   207,   208,   209,   210,   211,   200,
1653 >     201,   203,     0,     0,     0,     0,     0,   372,     0,     0,
1654 >       0,     0,     0,     0,     0,     0,     0,   349,   350,   351,
1655 >     352,   353,   354,   356,   355,   358,   362,   359,   360,   361,
1656 >     357,   404,     0,     0,     0,   401,   402,   403,     0,     0,
1657 >     408,   425,     0,     0,   415,   424,     0,   421,   422,   423,
1658         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1873       0,     0,     0,     0,     0,   227,   228,   231,   232,   234,
1874     235,   236,   237,   238,   239,   240,   229,   230,   233,     0,
1875       0,     0,     0,     0,     0,     0,     0,     0,     0,   429,
1659         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1877     398,   399,   400,   401,   402,   403,   405,   404,   406,   407,
1878     415,   412,   414,   413,   411,   417,   408,   409,   410,   416,
1879       0,     0,     0,   469,     0,   476,     0,     0,     0,     0,
1880     489,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1660         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1661         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1662         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1663 +     429,     0,     0,     0,   267,     0,     0,     0,     0,     0,
1664 +       0,   253,   254,   255,   256,   261,   257,   258,   259,   260,
1665 +     395,     0,   385,     0,   394,     0,   391,   392,   393,     0,
1666 +     228,     0,     0,     0,   238,     0,   236,   237,   239,   240,
1667 +     105,     0,     0,   101,     0,    45,     0,     0,     0,    41,
1668 +       0,     0,     0,   172,     0,     0,     0,   148,     0,     0,
1669 +     132,   133,   134,   135,   138,   139,   137,   136,   140,     0,
1670 +       0,     0,     0,     0,   286,   287,   288,   289,     0,     0,
1671 +       0,     0,     0,     0,     0,   611,    66,     0,     0,     0,
1672         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1673 <       0,     0,     0,    34,     0,     0,     0,     0,     0,     0,
1674 <     497,     0,     0,     0,     0,     0,     0,     0,   661,   300,
1673 >       0,     0,     0,    49,     0,     0,   310,     0,     0,   303,
1674 >     304,   305,   306,     0,     0,   332,     0,   327,   328,   329,
1675 >       0,     0,   295,     0,     0,     0,    90,     0,     0,     0,
1676 >      26,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1677 >       0,     0,   578,   212,     0,     0,     0,     0,     0,     0,
1678 >       0,     0,     0,     0,     0,     0,     0,     0,   197,   363,
1679         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1680 <       0,     0,     0,     0,     0,     0,     0,   282,     0,     0,
1681 <       0,     0,   459,   271,     0,     0,     0,     0,     0,   265,
1680 >       0,     0,     0,     0,   348,     0,     0,     0,   400,     0,
1681 >     407,     0,     0,     0,     0,   420,     0,     0,     0,     0,
1682         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1891       0,     0,     0,     0,     0,     0,     0,     0,    91,     0,
1892       0,    40,     0,     0,     0,     0,     0,   198,     0,     0,
1683         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1894       0,   161,     0,     0,     0,     0,   130,   131,   132,   133,
1895     150,   151,   137,   136,   138,   139,   145,   140,   141,   142,
1896     143,   144,   146,   147,   148,   134,   135,   149,   152,   341,
1897       0,     0,     0,     0,   336,     0,     0,     0,     0,     0,
1898       0,     0,   726,     0,     0,     0,     0,     0,     0,     0,
1899       0,     0,     0,     0,     0,    48,   352,     0,     0,     0,
1900       0,   347,   376,     0,     0,     0,   372,    90,    89,    88,
1901     723,   720,   719,   708,   710,    26,    26,    26,    26,    26,
1902      28,    27,   714,   715,   718,   716,   721,   722,   724,   725,
1903     717,   709,   711,   712,   713,   241,     0,     0,     0,     0,
1684         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1905     226,   418,     0,     0,     0,     0,     0,     0,     0,     0,
1685         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1686 <       0,     0,   397,     0,     0,   468,   481,     0,     0,     0,
1687 <     483,   569,   573,   560,   589,   602,   601,   656,   606,   567,
1688 <     658,   598,   604,   568,   558,   559,   576,   565,   597,   566,
1689 <     579,   564,   578,   577,   572,   571,   570,   599,   557,   596,
1690 <     654,   655,   593,   590,   635,   651,   652,   636,   637,   638,
1691 <     639,   646,   640,   649,   653,   642,   647,   643,   648,   641,
1692 <     645,   644,   650,     0,   634,   595,   612,   628,   629,   613,
1693 <     614,   615,   616,   623,   617,   626,   630,   619,   624,   620,
1694 <     625,   618,   622,   621,   627,     0,   611,   588,   591,   605,
1695 <     562,   600,   563,   592,   581,   586,   587,   584,   585,   582,
1696 <     583,   575,   574,    34,    34,    34,    36,    35,   657,   607,
1697 <     594,   603,   561,   580,     0,     0,     0,     0,     0,     0,
1919 <     660,     0,     0,     0,     0,   312,     0,     0,     0,     0,
1920 <       0,     0,     0,     0,     0,     0,     0,   281,     0,     0,
1921 <       0,   453,     0,     0,     0,   276,   272,   275,   257,   110,
1922 <     116,   114,   113,   115,   111,   112,   109,   117,   123,   118,
1923 <     122,   120,   121,   119,   108,   107,   124,    46,    47,   153,
1686 >       0,     0,     0,     0,     0,     0,     0,   428,   262,     0,
1687 >       0,     0,     0,     0,     0,     0,     0,     0,   252,     0,
1688 >       0,     0,     0,   390,   241,     0,     0,     0,     0,     0,
1689 >     235,     0,   100,     0,     0,     0,    40,   141,     0,     0,
1690 >       0,     0,     0,     0,     0,     0,     0,   131,   290,     0,
1691 >       0,     0,     0,   285,     0,     0,     0,     0,     0,     0,
1692 >     610,     0,     0,     0,     0,     0,     0,     0,     0,    71,
1693 >      72,     0,    70,    75,    76,     0,    74,     0,     0,     0,
1694 >       0,     0,    48,   307,     0,     0,     0,     0,   302,   330,
1695 >       0,     0,     0,   326,     0,   294,    99,    98,    97,   605,
1696 >     604,   596,    26,    26,    26,    26,    26,    28,    27,   598,
1697 >     599,   603,   601,   600,   606,   607,   608,   609,   602,   597,
1698         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1699 <       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1700 <       0,     0,     0,   129,     0,     0,     0,   335,   742,   737,
1701 <     741,   739,   743,   738,   740,    74,    80,    72,    76,    75,
1702 <      71,    70,    68,    69,     0,    67,    73,    79,    77,    78,
1703 <       0,     0,     0,   346,     0,     0,   371,    29,    30,    31,
1704 <      32,    33,     0,     0,     0,     0,     0,     0,     0,     0,
1705 <       0,     0,     0,     0,     0,   223,     0,     0,     0,     0,
1706 <       0,     0,     0,     0,     0,     0,   435,     0,     0,     0,
1707 <       0,     0,     0,     0,     0,     0,   394,   474,   475,   495,
1708 <     496,   488,     0,   487,   632,     0,   609,     0,    37,    38,
1709 <      39,   685,   684,     0,   683,   671,   670,   677,   676,     0,
1710 <     675,   679,   678,   327,   304,   305,   326,   310,     0,   309,
1711 <       0,   329,   325,   324,   333,   328,   302,   332,   331,   330,
1712 <     303,   301,   466,   458,     0,   457,   465,   263,   264,   262,
1713 <       0,   261,   279,   278,     0,     0,     0,     0,     0,     0,
1714 <       0,   204,     0,     0,     0,     0,     0,     0,     0,     0,
1715 <       0,     0,     0,     0,     0,     0,     0,     0,     0,   126,
1716 <     343,   344,   342,    65,     0,   353,   359,   365,   369,   368,
1717 <     367,   364,   360,   363,   366,   361,   362,     0,   358,   354,
1718 <     377,   382,   388,   392,   391,   390,   387,   383,   386,   389,
1719 <     384,   385,     0,   381,   253,   254,   247,   249,   251,   250,
1720 <     248,   242,   255,   246,   244,   245,   252,   424,   426,   427,
1721 <     446,   451,   450,   445,   444,   443,   428,   433,     0,   432,
1722 <       0,   421,   448,   449,   419,   425,   442,   423,   447,   422,
1723 <     485,     0,   633,   610,   681,     0,   673,     0,     0,   307,
1724 <     312,   318,   319,   315,   321,   317,   316,   323,   320,   322,
1725 <     314,   313,   455,     0,   259,     0,   277,   274,   273,   194,
1726 <     160,   192,   158,   202,     0,   201,     0,   190,   184,   195,
1727 <     196,   187,   154,   191,   157,   193,   185,   186,   159,   197,
1728 <     165,   181,   182,   166,   167,   168,   169,   176,   170,   179,
1729 <     183,   172,   177,   173,   178,   171,   175,   174,   180,     0,
1730 <     164,   189,   156,   188,    66,   356,     0,   379,     0,     0,
1731 <     430,   435,   439,   440,   437,   438,   441,   436,   486,   682,
1732 <     674,   311,   308,   456,   260,     0,   199,   204,   214,   212,
1733 <     221,   211,   206,   215,   219,   208,   216,   218,   213,   207,
1734 <     220,   217,   209,   210,   205,   162,     0,   357,   380,   434,
1735 <     431,   203,   200,   163
1699 >       0,    34,     0,     0,   196,     0,     0,     0,     0,     0,
1700 >       0,     0,     0,     0,     0,     0,     0,     0,     0,   347,
1701 >       0,     0,   399,   412,     0,     0,     0,   414,   493,   497,
1702 >     511,   577,   525,   491,   519,   522,   492,   483,   482,   484,
1703 >     485,   486,   500,   489,   490,   501,   488,   496,   495,   494,
1704 >     520,   481,   518,   575,   576,   515,   512,   562,   555,   572,
1705 >     573,   556,   557,   558,   559,   567,   560,   570,   574,   563,
1706 >     568,   564,   569,   561,   566,   565,   571,     0,   554,   517,
1707 >     537,   531,   548,   549,   532,   533,   534,   535,   543,   536,
1708 >     546,   550,   539,   544,   540,   545,   538,   542,   541,   547,
1709 >       0,   530,   510,   513,   524,   487,   514,   503,   508,   509,
1710 >     506,   507,   504,   505,   499,   498,   523,   526,   516,   521,
1711 >     502,     0,     0,     0,     0,     0,     0,     0,     0,   251,
1712 >       0,     0,     0,   384,     0,     0,     0,   246,   242,   245,
1713 >     227,   106,     0,     0,   118,     0,     0,   110,   111,   113,
1714 >     112,    46,    47,     0,     0,     0,     0,     0,     0,     0,
1715 >       0,   130,     0,     0,     0,   284,   620,   624,   622,   625,
1716 >     621,   623,    83,    89,    81,    85,    84,    78,    77,    79,
1717 >      67,     0,    68,     0,    82,    80,    88,    86,    87,     0,
1718 >       0,     0,   301,     0,     0,   325,   299,    29,    30,    31,
1719 >      32,    33,   223,   224,   216,   218,   220,   219,   217,   213,
1720 >     225,   215,   214,    34,    34,    34,    36,    35,   221,   222,
1721 >     368,   370,   371,   381,   378,   376,   377,     0,   375,   365,
1722 >     379,   380,   364,   369,   367,   382,   366,   405,   406,   426,
1723 >     427,   419,     0,   418,   552,     0,   528,     0,   265,   266,
1724 >     275,   272,   277,   274,   273,   279,   276,   278,   271,     0,
1725 >     270,   264,   282,   281,   280,   263,   397,   389,     0,   388,
1726 >     396,   233,   234,   232,     0,   231,   249,   248,     0,     0,
1727 >       0,   114,     0,     0,     0,     0,   109,   147,   145,   187,
1728 >     184,   183,   176,   178,   194,   188,   191,   186,   177,   192,
1729 >     180,   189,   193,   181,   190,   185,   179,   182,     0,   175,
1730 >     142,   144,   146,   158,   152,   169,   170,   153,   154,   155,
1731 >     156,   164,   157,   167,   171,   160,   165,   161,   166,   159,
1732 >     163,   162,   168,     0,   151,   143,   292,   293,   291,    69,
1733 >      73,   308,   314,   320,   323,   316,   322,   317,   321,   319,
1734 >     315,   318,     0,   313,   309,   331,   336,   342,   345,   338,
1735 >     344,   339,   343,   341,   337,   340,     0,   335,    37,    38,
1736 >      39,   373,     0,   416,     0,   553,   529,   268,     0,   386,
1737 >       0,   229,     0,   247,   244,   243,     0,     0,     0,     0,
1738 >     108,   173,     0,   149,     0,   311,     0,   333,     0,   374,
1739 >     417,   269,   387,   230,   115,   124,   127,   126,   123,   128,
1740 >     125,   122,     0,   121,   117,   116,   174,   150,   312,   334,
1741 >     119,     0,   120
1742   };
1743  
1744   /* YYDEFGOTO[NTERM-NUM].  */
1745   static const yytype_int16 yydefgoto[] =
1746   {
1747 <      -1,     1,    24,   900,   901,  1056,  1057,    25,   277,   278,
1748 <     279,   280,    26,   315,   316,   317,   553,  1164,  1165,   318,
1749 <     319,   320,   321,   322,   323,   324,   325,   326,   327,   328,
1750 <      27,    71,    72,    73,    74,    75,    28,   260,   261,   262,
1751 <     263,   264,   265,   266,   267,   268,   269,   270,   271,   272,
1752 <     273,    29,    61,   282,   825,   826,   827,   283,   828,   829,
1753 <     830,   831,   832,   833,  1138,  1439,  1440,   834,   835,   836,
1754 <     837,   838,   839,   840,   841,   842,   843,   844,   845,   846,
1755 <     847,   848,  1124,  1404,  1405,  1465,  1406,  1484,    30,    49,
1756 <     116,   614,   615,   616,   117,   617,   618,   619,   620,   621,
1757 <     622,   623,   624,   625,   626,   627,   628,    31,    58,   500,
1758 <     774,  1270,  1271,   501,   502,   503,  1276,  1096,  1097,   504,
1759 <     505,    32,    56,   468,   469,   470,   471,   472,   473,   474,
1760 <     475,   754,  1248,  1249,  1378,  1250,  1391,   476,   477,   478,
1761 <     479,   480,   481,   482,   483,   484,   485,    33,    62,   531,
1762 <     532,   533,   534,   535,    34,    65,   564,   565,   566,   567,
1763 <     568,   878,  1317,  1318,    35,    66,   572,   573,   574,   575,
1764 <     884,  1332,  1333,    36,    50,   119,   649,   650,   651,   120,
1765 <     652,   653,   654,   655,   656,   657,   658,   659,   941,  1358,
1766 <    1359,  1449,  1360,  1457,   660,   661,   662,   663,   664,   665,
1767 <     666,   667,   668,   669,    37,    57,   490,   769,  1264,  1265,
1768 <     491,   492,   493,   494,    38,    51,   362,   363,   364,   365,
1769 <      39,   124,   125,   126,    40,    53,   373,   678,  1222,  1223,
1770 <     374,   375,   376,   377,    41,   185,   186,   187,   188,   189,
1771 <     190,   191,   192,   193,   194,   195,   196,   197,   198,   199,
1772 <     200,   201,   202,   203,   204,   205,   206,   207,   208,   209,
1773 <     210,   211,   212,   213,   214,   215,   216,   217,   218,   219,
1774 <     220,   221,   222,   223,   224,   225,   226,   227,   228,   229,
1775 <     230,   231,   232,   233,   234,   235,   236,   413,  1035,  1036,
1996 <     237,   411,  1013,  1014,   238,   239,   240,   241,   242,    42,
1997 <      55,   443,   444,   445,   446,   447,   744,  1239,  1240,   448,
1998 <     449,   450,   741,  1233,  1234,    43,    95,    96,    97,    98,
1999 <      99,   100,   101,   102,   103,   104,   105,   106,   107,   108,
2000 <     109,   110,   111,   112,   113,   114,    44,   293,   294,   295,
2001 <     296,   297,   298,   299,   300,   301
1747 >      -1,     1,    24,   777,   778,  1016,  1017,    25,   230,   231,
1748 >     232,   233,    26,   267,   268,   269,   270,   741,   742,   745,
1749 >     746,   271,   272,   273,   274,   275,   276,   277,   278,   279,
1750 >     280,   281,   282,   283,    27,    71,    72,    73,    74,    75,
1751 >      28,   222,   223,   224,   225,   226,   946,   947,   948,   949,
1752 >     950,  1083,  1212,  1213,    29,    60,   499,   500,   501,   502,
1753 >     503,   504,   505,   506,   507,   714,  1133,  1134,   508,   710,
1754 >    1108,  1109,    30,    49,   327,   328,   329,   330,   331,   332,
1755 >     333,   334,   335,   336,   337,   338,   339,   340,   341,    31,
1756 >      57,   474,   695,  1074,  1075,   475,   476,   477,  1080,   938,
1757 >     939,   478,   479,    32,    55,   450,   451,   452,   453,   454,
1758 >     455,   456,   681,  1059,  1060,   457,   458,   459,    33,    61,
1759 >     513,   514,   515,   516,   517,    34,   288,   289,   290,    35,
1760 >      64,   548,   549,   550,   551,   552,   755,  1152,  1153,    36,
1761 >      65,   556,   557,   558,   559,   761,  1166,  1167,    37,    50,
1762 >     356,   357,   358,   359,   360,   361,   362,   363,   364,   365,
1763 >     604,  1027,  1028,   366,   367,   368,   369,   370,    38,    56,
1764 >     464,   690,  1068,  1069,   465,   466,   467,   468,    39,    51,
1765 >     374,   375,   376,   377,    40,   112,   113,   114,    41,    53,
1766 >     385,   623,  1042,  1043,   386,   387,   388,   389,    42,   166,
1767 >     167,   168,   169,   170,   171,   172,   173,   174,   175,   176,
1768 >     177,   178,   179,   180,   181,   182,   183,   184,   185,   186,
1769 >     187,   188,   189,   190,   191,   192,   193,   194,   195,   196,
1770 >     197,   198,   199,   200,   201,   202,   203,   204,   205,   206,
1771 >     207,   208,   209,   210,   211,   212,   421,   900,   901,   213,
1772 >     419,   877,   878,   214,   215,   216,    43,    91,    92,    93,
1773 >      94,    95,    96,    97,    98,    99,   100,   101,   102,   103,
1774 >     104,   105,   106,    44,   243,   244,   245,   246,   247,   248,
1775 >     249,   250
1776   };
1777  
1778   /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
1779     STATE-NUM.  */
1780 < #define YYPACT_NINF -952
1780 > #define YYPACT_NINF -745
1781   static const yytype_int16 yypact[] =
1782   {
1783 <    -952,   888,  -952,  -233,  -260,  -258,  -952,  -952,  -952,  -255,
1784 <    -952,  -253,  -952,  -952,  -952,  -952,  -250,  -237,  -952,  -952,
1785 <    -228,  -226,  -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,
1786 <    -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,
1787 <    -952,  -952,  -952,  -952,  -952,  -952,  -952,   302,   766,  -136,
1788 <    -112,  -199,    17,  -193,   475,  -190,  -187,  -173,  -167,   702,
1789 <       2,   -46,  -149,   361,   520,  -140,  -134,  -130,  -121,  -102,
1790 <     -84,     4,  -952,  -952,  -952,  -952,  -952,   -82,   -77,   -62,
1791 <     -57,   -51,   -33,   -30,   -25,   -16,    -5,    -4,    20,    24,
1792 <      37,    40,    46,    49,    59,   286,  -952,  -952,  -952,  -952,
1793 <    -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,
1794 <    -952,  -952,  -952,  -952,  -952,  -952,    36,  -952,  -952,    63,
1795 <    -952,    19,  -952,    70,     7,  -952,  -952,   159,  -952,    71,
1796 <      76,    79,    84,    91,    98,   104,   105,   107,   108,   109,
1797 <     112,   113,   114,   116,   117,   118,   121,   125,   126,   130,
1798 <     132,   136,   140,   142,   144,   146,   148,   153,   155,   157,
1799 <     161,   164,  -952,   165,  -952,   169,   170,   171,   172,   173,
1800 <     181,   184,   185,   194,   196,   198,   199,   200,   201,   204,
1801 <     206,   209,   210,   212,   213,    23,  -952,  -952,  -952,  -952,
1802 <    -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,
1803 <    -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,
1804 <    -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,
1805 <    -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,
1806 <    -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,
1807 <    -952,  -952,  -952,   552,   784,    93,    88,   217,   215,   216,
1808 <     220,   224,   225,   226,   227,   231,   232,   234,   235,   239,
1809 <     133,  -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,
1810 <    -952,  -952,  -952,  -952,   243,   241,   245,    27,  -952,  -952,
1811 <    -952,  -952,   247,  -952,    25,  -952,   248,   250,   252,   259,
1812 <     260,   261,   266,    45,  -952,  -952,  -952,  -952,  -952,  -952,
1813 <    -952,  -952,   271,   269,   270,   272,   276,   278,   279,   280,
1814 <    -952,   281,   285,   289,   290,   303,  -952,  -952,  -952,  -952,
1815 <    -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,    56,
1816 <      62,  -952,   357,   381,   396,   296,  -952,   363,   434,   436,
1817 <     374,   375,   444,   444,   449,   450,   387,   390,   462,   444,
1818 <     397,   400,   403,   404,   405,   318,  -952,   634,   703,  -952,
1819 <     342,   343,    15,  -952,  -952,  -952,   454,   348,  -952,  -952,
1820 <     346,   353,  -952,  -952,   158,  -952,  -952,  -952,   414,   444,
1821 <     421,   444,   494,   476,   497,   433,   435,   437,   500,   483,
1822 <     440,   510,   513,   514,   451,   444,   452,   453,   516,   499,
1823 <     461,   529,   530,   444,   533,   542,   512,   543,   546,   481,
1824 <     482,   417,   484,   419,   444,   444,   486,   444,   536,   489,
1825 <     493,   495,  -150,  -141,   496,   498,   444,   444,   560,   444,
1826 <     501,   503,   509,   511,   455,  -952,  -952,  -952,   446,   456,
1827 <    -952,   457,   459,    44,  -952,  -952,  -952,  -952,  -952,  -952,
1828 <    -952,   463,   467,   468,   485,   487,  -952,   490,   506,   507,
1829 <     508,   519,   524,   526,   527,   531,   532,   544,   160,  -952,
1830 <    -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,
1831 <    -952,  -952,  -952,  -952,  -952,  -952,  -952,   548,  -952,   550,
1832 <    -952,    12,  -952,  -952,  -952,   465,  -952,   551,   553,   554,
1833 <    -952,    14,  -952,  -952,  -952,  -952,  -952,   557,   559,   561,
1834 <     564,   585,   586,   591,   592,   230,   596,   613,   577,   537,
1835 <    -952,  -952,   640,   643,   549,  -952,   574,   555,   556,   562,
1836 <     563,    32,  -952,  -952,  -952,  -952,   623,   630,   631,   665,
1837 <     632,   633,   444,   575,  -952,  -952,   681,   639,   685,   688,
1838 <     689,   690,   691,   582,   693,   565,   694,   695,   589,  -952,
1839 <     590,   593,  -952,   594,     9,  -952,  -952,  -952,  -952,   601,
1840 <     607,  -952,    33,  -952,  -952,  -952,   604,   614,   615,  -952,
1841 <     616,   619,   620,   624,   625,   189,   628,   629,   635,   636,
1842 <     637,   638,   641,   642,   644,   646,   647,   651,   654,  -952,
1843 <     656,   610,   618,   627,   655,   660,   661,   662,   663,   664,
1844 <     667,   669,   670,   671,   223,  -952,  -952,  -952,  -952,  -952,
1845 <    -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,   657,
1846 <     672,   673,   674,   676,   679,   680,   683,   684,   686,  -952,
1847 <     687,   696,   697,   699,   700,   701,   704,   705,   706,   238,
1848 <    -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,
1849 <    -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,
1850 <     730,   741,   659,  -952,   668,  -952,   746,   747,   707,   711,
1851 <    -952,   712,   713,   716,   717,   719,   720,   721,   722,   723,
1852 <     724,   725,   726,   727,   729,   731,   732,   733,   734,   735,
1853 <     736,   737,   738,   739,   740,   742,   743,   744,   745,   748,
1854 <     749,   750,   751,   752,   815,   753,   871,   754,   755,   767,
1855 <     771,   774,   775,   776,   777,   778,   779,   780,   781,   782,
1856 <     786,   790,   791,   315,   793,   794,   796,   797,   798,   800,
1857 <    -952,   799,   444,   756,   801,   795,   803,   805,  -952,  -952,
1858 <     760,   812,   769,   804,   807,   809,   864,   866,   869,   870,
1859 <     918,   566,   919,   927,   886,   934,   828,  -952,   937,   829,
1860 <     938,   833,  -952,  -952,   831,   942,   943,   772,   837,  -952,
1861 <     838,   842,   846,   847,   849,   850,   857,   860,   865,   867,
1862 <     868,   872,   873,   874,   875,   879,   883,   884,  -952,   887,
1863 <     889,  -952,   890,   861,   891,   892,   893,  -952,   894,   895,
1864 <     896,   897,   898,   899,   900,   901,   902,   903,   904,   905,
1865 <     906,  -952,   907,   909,   910,   149,  -952,  -952,  -952,  -952,
1866 <    -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,
1867 <    -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,
1868 <     976,   977,   978,   911,  -952,   914,   915,   916,   917,   920,
1869 <     921,   922,  -952,   923,   924,   925,   926,   928,   929,   930,
1870 <     -15,   931,   932,   933,   935,  -952,  -952,   993,   936,   998,
1871 <     940,  -952,  -952,   999,   939,   941,  -952,  -952,  -952,  -952,
1872 <    -952,  -952,  -952,  -952,  -952,   444,   444,   444,   444,   444,
1873 <    -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,
1874 <    -952,  -952,  -952,  -952,  -952,  -952,   813,  1022,   444,  1047,
1875 <    1048,  1056,  1063,  1043,  1066,  1067,   444,   444,   560,   944,
1876 <    -952,  -952,  1050,   -13,  1008,  1053,  1054,  1011,  1012,  1013,
1877 <    1058,   949,  1060,  1061,  1062,  1064,  1085,  1065,  1068,  1023,
1878 <    1069,   959,  -952,   963,   964,  -952,  -952,   965,   966,  1070,
1879 <    -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,
1880 <    -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,
1881 <    -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,
1882 <    -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,
1883 <    -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,
1884 <    -952,  -952,  -952,  -245,  -952,  -952,  -952,  -952,  -952,  -952,
1885 <    -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,
1886 <    -952,  -952,  -952,  -952,  -952,  -202,  -952,  -952,  -952,  -952,
1887 <    -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,
1888 <    -952,  -952,  -952,   560,   560,   560,  -952,  -952,  -952,  -952,
1889 <    -952,  -952,  -952,  -952,     1,   967,   969,    11,   970,   971,
1890 <    -952,   972,   973,   974,   975,  1106,   979,   980,   981,   982,
1891 <     983,   984,   985,   986,   987,   988,   989,  -952,   990,  1079,
1892 <     991,  -952,     0,   992,   994,   650,   995,  -952,  -952,  -952,
1893 <    -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,
1894 <    -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,
1895 <    1041,  1100,  1059,  1071,   997,  1072,  1073,  1074,  1075,  1076,
1896 <    1102,  1077,  1104,  1078,  1080,  1081,  1105,  1082,  1000,  1083,
1897 <    1108,  1084,  1002,  -952,  1004,  1005,  1006,  -952,  -952,  -952,
1898 <    -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,
1899 <    -952,  -952,  -952,  -952,  -174,  -952,  -952,  -952,  -952,  -952,
1900 <    1007,   534,  1016,  -952,  1024,   621,  -952,  -952,  -952,  -952,
1901 <    -952,  -952,  1025,  1026,  1027,  1028,  1029,  1030,  1031,  1032,
1902 <    1033,  1034,  1035,  1036,  1037,  -952,  1038,  1039,  1040,  1042,
1903 <    1044,  1045,  1046,  1049,  1051,  1052,  1152,  1055,  1057,  1086,
1904 <    1087,  1088,  1089,  1090,  1091,  1092,  -952,  -952,  -952,  -952,
1905 <    -952,  -952,  -148,  -952,  -952,   815,  -952,   871,  -952,  -952,
2132 <    -952,  -952,  -952,  -145,  -952,  -952,  -952,  -952,  -952,  -129,
2133 <    -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,  -117,  -952,
2134 <     447,  -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,
2135 <    -952,  -952,  -952,  -952,   -35,  -952,  -952,  -952,  -952,  -952,
2136 <     -10,  -952,  -952,  -952,  1170,   772,  1093,  1094,  1095,  1096,
2137 <    1097,  1153,  1098,  1099,  1101,  1103,  1107,  1109,  1110,  1111,
2138 <    1112,  1113,  1114,  1115,  1116,   908,  1117,  1118,  1119,  -952,
2139 <    -952,  -952,  -952,  -952,   -15,  -952,  -952,  -952,  -952,  -952,
2140 <    -952,  -952,  -952,  -952,  -952,  -952,  -952,    -8,  -952,  -952,
2141 <    -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,
2142 <    -952,  -952,    35,  -952,  -952,  -952,  -952,  -952,  -952,  -952,
2143 <    -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,
2144 <    -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,    80,  -952,
2145 <      13,  -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,
2146 <    -952,  1070,  -952,  -952,  -952,     1,  -952,    11,   447,  -952,
2147 <    1106,  -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,
2148 <    -952,  -952,  -952,  1079,  -952,     0,  -952,  -952,  -952,  -952,
2149 <    -952,  -952,  -952,  -952,    89,  -952,   366,  -952,  -952,  -952,
2150 <    -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,
2151 <    -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,
2152 <    -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,    95,
2153 <    -952,  -952,  -952,  -952,  -952,  -952,   534,  -952,   621,    13,
2154 <    -952,  1152,  -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,
2155 <    -952,  -952,  -952,  -952,  -952,   366,  -952,  1153,  -952,  -952,
2156 <    -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,
2157 <    -952,  -952,  -952,  -952,  -952,  -952,   908,  -952,  -952,  -952,
2158 <    -952,  -952,  -952,  -952
1783 >    -745,   615,  -745,  -209,  -208,  -192,  -745,  -745,  -745,  -190,
1784 >    -745,  -183,  -745,  -745,  -745,  -169,  -167,  -745,  -745,  -144,
1785 >    -137,  -745,  -745,  -132,  -745,  -745,  -745,  -745,  -745,  -745,
1786 >    -745,  -745,  -745,  -745,  -745,  -745,  -745,  -745,  -745,  -745,
1787 >    -745,  -745,  -745,  -745,  -745,  -745,  -745,   292,   784,  -111,
1788 >    -102,   -93,    22,   -90,   389,   -80,   -74,   -72,    50,    15,
1789 >     -65,   -60,   299,   388,   -54,   -34,    18,  -176,   -58,   -32,
1790 >     -22,     3,  -745,  -745,  -745,  -745,  -745,   -15,    -9,    26,
1791 >      38,    67,    69,    75,    80,    82,    88,    90,    93,   100,
1792 >     107,   195,  -745,  -745,  -745,  -745,  -745,  -745,  -745,  -745,
1793 >    -745,  -745,  -745,  -745,  -745,  -745,  -745,   569,   505,    13,
1794 >    -745,   115,    12,  -745,  -745,   258,  -745,   117,   122,   129,
1795 >     131,   140,   141,   144,   145,   146,   154,   155,   156,   159,
1796 >     161,   165,   166,   168,   170,   174,   175,   176,   177,   180,
1797 >     190,   194,   197,   199,   203,   204,  -745,   205,  -745,   206,
1798 >     209,   211,   212,   215,   219,   221,   224,   225,   229,   230,
1799 >     233,   234,   236,   237,   239,   240,    36,  -745,  -745,  -745,
1800 >    -745,  -745,  -745,  -745,  -745,  -745,  -745,  -745,  -745,  -745,
1801 >    -745,  -745,  -745,  -745,  -745,  -745,  -745,  -745,  -745,  -745,
1802 >    -745,  -745,  -745,  -745,  -745,  -745,  -745,  -745,  -745,  -745,
1803 >    -745,  -745,  -745,  -745,  -745,  -745,  -745,  -745,  -745,  -745,
1804 >    -745,  -745,  -745,  -745,  -745,  -745,  -745,   343,    60,   284,
1805 >    -157,   241,    43,  -745,  -745,  -745,    66,   113,   242,   245,
1806 >      99,  -745,  -745,  -745,   348,    62,  -745,   249,   253,   264,
1807 >     266,   267,   271,    16,  -745,  -745,  -745,  -745,  -745,  -745,
1808 >    -745,   268,   273,   274,   280,   281,   285,   287,   290,   294,
1809 >     295,   296,   297,   306,   307,   308,   309,    74,  -745,  -745,
1810 >    -745,  -745,  -745,  -745,  -745,  -745,  -745,  -745,  -745,  -745,
1811 >    -745,  -745,  -745,  -745,   220,   277,  -745,   310,    20,  -745,
1812 >    -745,  -745,   252,   370,   384,   302,  -745,   410,   430,   371,
1813 >     432,   432,   433,   434,   436,   379,   390,   453,   432,   395,
1814 >     396,   342,  -745,   345,   349,   350,   352,   354,   355,   357,
1815 >     360,   361,   362,   363,   365,   366,   369,   152,  -745,  -745,
1816 >    -745,  -745,  -745,  -745,  -745,  -745,  -745,  -745,  -745,  -745,
1817 >    -745,  -745,   346,   372,   381,   385,   386,  -745,   392,   393,
1818 >     397,   400,   401,   405,   407,   408,   270,  -745,  -745,  -745,
1819 >    -745,  -745,  -745,  -745,  -745,  -745,  -745,  -745,  -745,  -745,
1820 >    -745,  -745,   409,   413,    51,  -745,  -745,  -745,   445,   351,
1821 >    -745,  -745,   414,   417,  -745,  -745,     8,  -745,  -745,  -745,
1822 >     428,   432,   432,   502,   446,   447,   508,   495,   454,   432,
1823 >     461,   432,   528,   536,   537,   480,   485,   493,   432,   556,
1824 >     557,   432,   562,   563,   548,   567,   568,   512,   513,   456,
1825 >     519,   459,   432,   432,   521,   522,   523,   524,    14,    54,
1826 >     530,   532,   432,   432,   570,   432,   533,   535,   538,   474,
1827 >    -745,   481,   479,   483,  -745,   484,   488,   492,   498,   501,
1828 >     128,  -745,  -745,  -745,  -745,  -745,  -745,  -745,  -745,  -745,
1829 >    -745,   503,  -745,   506,  -745,    19,  -745,  -745,  -745,   514,
1830 >    -745,   515,   518,   520,  -745,   116,  -745,  -745,  -745,  -745,
1831 >    -745,   539,   516,  -745,   496,  -745,   602,   612,   526,  -745,
1832 >     527,   531,   534,  -745,   540,   544,   545,  -745,   553,   183,
1833 >    -745,  -745,  -745,  -745,  -745,  -745,  -745,  -745,  -745,   541,
1834 >     560,   561,   573,    11,  -745,  -745,  -745,  -745,   572,   575,
1835 >     621,   584,   585,   432,   542,  -745,  -745,   629,   586,   630,
1836 >     632,   636,   637,   663,   670,   112,   196,   684,   691,   674,
1837 >     696,   701,   605,  -745,   619,   617,  -745,   622,    59,  -745,
1838 >    -745,  -745,  -745,   627,   626,  -745,   110,  -745,  -745,  -745,
1839 >     719,   633,  -745,   635,   638,   639,  -745,   641,   642,   646,
1840 >     265,   647,   648,   649,   650,   651,   652,   653,   654,   655,
1841 >     657,   658,  -745,  -745,   771,   774,   432,   775,   776,   777,
1842 >     778,   761,   782,   783,   432,   785,   785,   669,  -745,  -745,
1843 >     768,   164,   769,   728,   671,   772,   773,   779,   780,   792,
1844 >     781,   786,   787,   680,  -745,   788,   789,   681,  -745,   685,
1845 >    -745,   790,   791,   683,   687,  -745,   695,   697,   698,   699,
1846 >     700,   702,   703,   704,   705,   706,   707,   708,   709,   710,
1847 >     711,   712,   713,   714,   715,   716,   717,   718,   720,   721,
1848 >     722,   723,   724,   725,   726,   600,   727,   628,   729,   730,
1849 >     731,   732,   733,   734,   735,   736,   737,   738,   739,   740,
1850 >     741,   742,   743,   744,   745,   746,   747,  -745,  -745,   798,
1851 >     803,   748,   816,   843,   846,   847,   849,   753,  -745,   851,
1852 >     752,   853,   757,  -745,  -745,   755,   856,   857,   876,   762,
1853 >    -745,   763,  -745,   187,   764,   765,  -745,  -745,   863,   822,
1854 >     766,   865,   867,   868,   770,   869,   793,  -745,  -745,   871,
1855 >     872,   873,   794,  -745,   795,   796,   797,   799,   800,   801,
1856 >    -745,   802,   804,   805,   806,   807,   808,   809,   810,  -745,
1857 >    -745,  -196,  -745,  -745,  -745,  -179,  -745,   811,   812,   813,
1858 >     814,   815,  -745,  -745,   874,   817,   875,   818,  -745,  -745,
1859 >     877,   819,   821,  -745,   823,  -745,  -745,  -745,  -745,  -745,
1860 >    -745,  -745,   432,   432,   432,   432,   432,  -745,  -745,  -745,
1861 >    -745,  -745,  -745,  -745,  -745,  -745,  -745,  -745,  -745,  -745,
1862 >     824,   825,   826,   827,   828,   829,   830,   831,   832,   833,
1863 >     834,    79,   835,   836,  -745,   837,   838,   839,   840,   841,
1864 >      -1,   842,   844,   845,   848,   850,   852,   854,   855,  -745,
1865 >     858,   859,  -745,  -745,   860,   861,   878,  -745,  -745,  -745,
1866 >    -745,  -745,  -745,  -745,  -745,  -745,  -745,  -745,  -745,  -745,
1867 >    -745,  -745,  -745,  -745,  -745,  -745,  -745,  -745,  -745,  -745,
1868 >    -745,  -745,  -745,  -745,  -745,  -745,  -745,  -745,  -745,  -745,
1869 >    -745,  -745,  -745,  -745,  -745,  -745,  -745,  -745,  -745,  -745,
1870 >    -745,  -745,  -745,  -745,  -745,  -745,  -745,  -178,  -745,  -745,
1871 >    -745,  -745,  -745,  -745,  -745,  -745,  -745,  -745,  -745,  -745,
1872 >    -745,  -745,  -745,  -745,  -745,  -745,  -745,  -745,  -745,  -745,
1873 >    -173,  -745,  -745,  -745,  -745,  -745,  -745,  -745,  -745,  -745,
1874 >    -745,  -745,  -745,  -745,  -745,  -745,  -745,  -745,  -745,  -745,
1875 >    -745,   862,   864,   693,   866,   870,   879,   880,   881,  -745,
1876 >     882,   883,   884,  -745,   -36,   885,   886,   894,   887,  -745,
1877 >    -745,  -745,   888,   889,  -745,   890,    86,  -745,  -745,  -745,
1878 >    -745,  -745,  -745,   895,   896,   517,   897,   898,   899,   656,
1879 >     900,  -745,   901,   902,   903,  -745,  -745,  -745,  -745,  -745,
1880 >    -745,  -745,  -745,  -745,  -745,  -745,  -745,  -745,  -745,  -745,
1881 >    -745,   112,  -745,   196,  -745,  -745,  -745,  -745,  -745,   904,
1882 >     464,   905,  -745,   906,   529,  -745,  -745,  -745,  -745,  -745,
1883 >    -745,  -745,  -745,  -745,  -745,  -745,  -745,  -745,  -745,  -745,
1884 >    -745,  -745,  -745,   785,   785,   785,  -745,  -745,  -745,  -745,
1885 >    -745,  -745,  -745,  -745,  -745,  -745,  -745,  -168,  -745,  -745,
1886 >    -745,  -745,  -745,  -745,  -745,  -745,  -745,  -745,  -745,  -745,
1887 >    -745,  -745,  -160,  -745,  -745,   600,  -745,   628,  -745,  -745,
1888 >    -745,  -745,  -745,  -745,  -745,  -745,  -745,  -745,  -745,  -159,
1889 >    -745,  -745,  -745,  -745,  -745,  -745,  -745,  -745,   -57,  -745,
1890 >    -745,  -745,  -745,  -745,   -38,  -745,  -745,  -745,   907,   876,
1891 >     908,  -745,   913,   891,   -88,   909,  -745,  -745,  -745,  -745,
1892 >    -745,  -745,  -745,  -745,  -745,  -745,  -745,  -745,  -745,  -745,
1893 >    -745,  -745,  -745,  -745,  -745,  -745,  -745,  -745,    -7,  -745,
1894 >    -745,  -745,  -745,  -745,  -745,  -745,  -745,  -745,  -745,  -745,
1895 >    -745,  -745,  -745,  -745,  -745,  -745,  -745,  -745,  -745,  -745,
1896 >    -745,  -745,  -745,    63,  -745,  -745,  -745,  -745,  -745,  -745,
1897 >    -745,  -745,  -745,  -745,  -745,  -745,  -745,  -745,  -745,  -745,
1898 >    -745,  -745,    94,  -745,  -745,  -745,  -745,  -745,  -745,  -745,
1899 >    -745,  -745,  -745,  -745,  -745,  -745,   101,  -745,  -745,  -745,
1900 >    -745,  -745,    -1,  -745,   878,  -745,  -745,  -745,   693,  -745,
1901 >     883,  -745,   -36,  -745,  -745,  -745,   910,   403,   911,   912,
1902 >    -745,  -745,   517,  -745,   656,  -745,   464,  -745,   529,  -745,
1903 >    -745,  -745,  -745,  -745,  -745,  -745,  -745,  -745,  -745,  -745,
1904 >    -745,  -745,   104,  -745,  -745,  -745,  -745,  -745,  -745,  -745,
1905 >    -745,   403,  -745
1906   };
1907  
1908   /* YYPGOTO[NTERM-NUM].  */
1909   static const yytype_int16 yypgoto[] =
1910   {
1911 <    -952,  -952,  -952,  -816,  -342,  -951,  -426,  -952,  -952,   578,
1912 <    -952,  -952,  -952,  -952,   541,  -952,  -952,  -952,     5,  -952,
1913 <    -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,
1914 <    -952,  -952,  1234,  -952,  -952,  -952,  -952,  -952,  1122,  -952,
1915 <    -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,
1916 <    -952,  -952,  -952,  -952,  -952,   491,  -952,  -952,  -952,  -952,
1917 <    -952,  -952,  -952,  -952,  -952,  -952,  -176,  -952,  -952,  -952,
1918 <    -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,
1919 <    -952,  -952,  -952,  -952,  -155,  -952,  -952,  -147,  -952,  -952,
1920 <    -952,  -952,   708,  -952,  -952,  -952,  -952,  -952,  -952,  -952,
1921 <    -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,
1922 <    -952,  -952,   -80,  -952,   819,  -952,  -952,  -952,    48,  -952,
1923 <    -952,  -952,  -952,  -952,   853,  -952,  -952,  -952,  -952,  -952,
1924 <    -952,  -952,  -952,   -56,  -952,  -952,   -53,  -952,  -952,  -952,
1925 <    -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,
1926 <     802,  -952,  -952,  -952,  -952,  -952,  -952,   762,  -952,  -952,
1927 <    -952,  -952,  -952,  -119,  -952,  -952,  -952,   757,  -952,  -952,
1928 <    -952,  -952,  -120,  -952,  -952,  -952,  -952,   682,  -952,  -952,
1929 <    -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,
1930 <    -116,  -952,  -952,  -115,  -952,  -952,  -952,  -952,  -952,  -952,
1931 <    -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,   -63,
1932 <    -952,   841,  -952,  -952,  -952,  -952,  -952,  1021,  -952,  -952,
1933 <    -952,  -952,  1212,  -952,  -952,  -952,  -952,  -952,  -952,   -34,
1934 <    -952,   968,  -952,  -952,  -952,  -952,  1154,  -952,  -952,  -952,
1935 <    -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,
1936 <    -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,
1937 <    -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,
1938 <    -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,
1939 <    -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,   111,
2193 <    -952,  -952,  -952,   115,  -952,  -952,  -952,  -952,  -952,  -952,
2194 <    -952,  -952,   945,  -952,  -952,  -952,  -952,  -952,   -36,  -952,
2195 <    -952,  -952,  -952,  -952,   -32,  -952,  -952,  1249,  -952,  -952,
2196 <    -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,
2197 <    -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,  1120,  -952,
2198 <    -952,  -952,  -952,  -952,  -952,  -952
1911 >    -745,  -745,  -745,  -744,  -298,  -659,  -595,  -745,  -745,   767,
1912 >    -745,  -745,  -745,  -745,   750,  -745,  -745,  -745,    17,  -745,
1913 >      10,  -745,  -745,  -745,  -745,  -745,  -745,  -745,  -745,  -745,
1914 >    -745,  -745,  -745,  -745,  -745,  -745,   924,  -745,  -745,  -745,
1915 >    -745,  -745,   914,  -745,  -745,  -745,  -745,    53,  -745,  -745,
1916 >    -745,  -745,  -745,  -225,  -745,  -745,  -745,   504,  -745,  -745,
1917 >    -745,  -745,  -745,  -745,  -745,  -745,  -745,  -193,  -745,  -745,
1918 >    -745,  -188,  -745,  -745,  -745,   675,  -745,  -745,  -745,  -745,
1919 >    -745,  -745,  -745,  -745,  -745,  -745,  -745,  -745,  -745,  -745,
1920 >    -745,  -745,  -745,  -745,  -170,  -745,   558,  -745,  -745,  -745,
1921 >     -48,  -745,  -745,  -745,  -745,  -745,   610,  -745,  -745,  -745,
1922 >    -745,  -745,  -745,  -745,  -117,  -745,  -745,  -745,  -745,  -745,
1923 >    -745,   550,  -745,  -745,  -745,  -745,  -745,   892,  -745,  -745,
1924 >    -745,  -745,   543,  -745,  -745,  -745,  -745,  -745,  -131,  -745,
1925 >    -745,  -745,   511,  -745,  -745,  -745,  -745,  -128,  -745,  -745,
1926 >    -745,   820,  -745,  -745,  -745,  -745,  -745,  -745,  -745,  -745,
1927 >    -745,  -745,  -101,  -745,  -745,  -745,  -745,  -745,  -745,  -745,
1928 >    -745,  -745,  -745,  -103,  -745,   614,  -745,  -745,  -745,  -745,
1929 >    -745,   754,  -745,  -745,  -745,  -745,   969,  -745,  -745,  -745,
1930 >    -745,  -745,  -745,   -92,  -745,   749,  -745,  -745,  -745,  -745,
1931 >     917,  -745,  -745,  -745,  -745,  -745,  -745,  -745,  -745,  -745,
1932 >    -745,  -745,  -745,  -745,  -745,  -745,  -745,  -745,  -745,  -745,
1933 >    -745,  -745,  -745,  -745,  -745,  -745,  -745,  -745,  -745,  -745,
1934 >    -745,  -745,  -745,  -745,  -745,  -745,  -745,  -745,  -745,  -745,
1935 >    -745,  -745,  -745,  -745,  -745,  -745,  -745,  -745,    39,  -745,
1936 >    -745,  -745,    40,  -745,  -745,  -745,  -745,  -745,   996,  -745,
1937 >    -745,  -745,  -745,  -745,  -745,  -745,  -745,  -745,  -745,  -745,
1938 >    -745,  -745,  -745,  -745,  -745,   915,  -745,  -745,  -745,  -745,
1939 >    -745,  -745
1940   };
1941  
1942   /* YYTABLE[YYPACT[STATE-NUM]].  What to do in state STATE-NUM.  If
1943     positive, shift that token.  If negative, reduce the rule which
1944 <   number is the opposite.  If zero, do what YYDEFACT says.
1945 <   If YYTABLE_NINF, syntax error.  */
1946 < #define YYTABLE_NINF -1
2206 < static const yytype_uint16 yytable[] =
1944 >   number is the opposite.  If YYTABLE_NINF, syntax error.  */
1945 > #define YYTABLE_NINF -108
1946 > static const yytype_int16 yytable[] =
1947   {
1948 <     586,   587,   734,   274,    47,    67,    48,   593,   122,    52,
1949 <     560,    54,  1231,   486,    59,   495,   359,  1224,   122,   115,
1950 <     359,  1225,  1237,  1452,   128,  1453,   527,    60,   274,    45,
1951 <      46,   129,   130,   527,   569,   131,    63,   682,    64,   684,
1952 <    1454,    68,   132,   118,  1455,   436,   285,   528,   437,   725,
1953 <     726,   133,    69,   698,   528,   134,   135,   560,   727,   728,
1954 <    1226,   706,   136,   569,  1227,   121,   137,   138,   139,   496,
1955 <     140,   127,   717,   718,   243,   720,   141,   244,  1267,  1177,
1956 <    1178,  1179,  1180,  1181,   731,   732,   286,   735,  1303,   495,
1957 <     438,   245,  1304,   439,   486,   142,   143,   246,   123,   497,
1958 <     144,   287,  1228,  1229,  1230,   498,   360,   145,   123,   281,
1959 <     360,   146,   147,   148,  1370,   284,   149,  1374,  1371,   150,
1960 <     151,  1375,   275,   288,   329,   289,    70,   290,   291,   152,
1961 <     330,   561,   331,  1376,   247,   153,   154,  1377,   155,   156,
1962 <     157,   158,   159,   496,   332,  1379,   292,   275,   440,  1380,
1963 <     802,   529,   276,   160,   803,   570,  1162,  1163,   529,   369,
1964 <     369,   451,   161,   333,   162,   163,   441,   164,   499,   487,
1965 <     165,   166,   361,   497,   167,   804,   361,   276,   561,   498,
1966 <     452,   334,   530,   337,   570,   168,   453,   805,   338,   530,
1967 <     248,   249,   250,   251,   252,   253,   254,   255,   562,   806,
1968 <     861,   488,  1232,   339,   807,  1197,  1198,   169,   340,   170,
1969 <     454,   455,  1238,   171,   341,   456,   808,   172,   173,   174,
1970 <     175,   176,   571,   809,   600,   177,   178,  1392,   810,   457,
1971 <     811,  1393,   342,  1268,   179,   343,   458,  1269,   256,   629,
1972 <     344,   630,   499,   812,   631,   562,   601,   602,   632,   345,
1973 <     487,   571,  1394,   603,  1445,   459,  1395,  1456,  1446,   563,
1974 <     346,   347,   489,   633,   634,   635,   180,   335,   181,   636,
1975 <     367,   813,   880,   257,   182,   771,   814,   778,   672,   183,
1976 <     370,   370,   488,   460,   184,   348,   434,    76,   637,   349,
1977 <     524,   461,   638,   639,   442,   853,   885,  1447,   815,    77,
1978 <     357,  1448,   350,    67,   302,   351,   563,   747,   543,   462,
1979 <     816,   352,   817,   818,   353,   371,   371,   819,   463,   464,
1980 <      78,    79,   585,   640,   354,   641,    80,   358,    81,  1053,
1981 <    1054,  1055,   604,   605,   606,   366,   378,   607,   642,    68,
1982 <     303,   379,  1450,   489,   380,   608,  1451,   372,   372,   381,
1983 <      69,  1466,   465,   466,   258,  1467,   382,  1485,   609,   610,
1984 <     643,  1486,   285,   383,   895,   896,   897,   898,   899,   384,
1985 <     385,  1468,   386,   387,   388,   611,   612,   389,   390,   391,
1986 <     820,   392,   393,   394,    82,    83,   395,   821,   259,   304,
1987 <     396,   397,   644,    84,    85,   398,   519,   399,   822,   823,
1988 <    1065,   400,   286,   613,  1469,   401,   645,   402,   824,   403,
1989 <     467,   404,  1142,   405,    86,    87,  1470,   287,   406,   646,
1990 <     407,   679,   408,   766,    70,   305,   409,   306,   307,   410,
1991 <     412,    88,    89,  1471,   414,   415,   416,   417,   418,   288,
1992 <    1472,   289,    90,   290,   291,  1473,   419,  1474,   733,   420,
1993 <     421,    91,   788,   789,   790,   791,   792,   793,   794,   422,
1994 <    1475,   423,   292,   424,   425,   426,   427,  1381,  1382,   428,
1995 <     308,   429,   309,   310,   430,   431,   128,   432,   433,   506,
1996 <     507,   508,   647,   129,   130,   509,   929,   131,   311,   510,
1997 <     511,   512,   513,  1476,   132,   648,   514,   515,  1383,   516,
1998 <     517,   951,  1194,   133,   518,   521,   522,   134,   135,  1477,
1999 <     523,   526,   576,   536,   136,   537,  1384,   538,   137,   138,
2000 <     139,   302,   140,  1385,   539,   540,   541,  1478,   141,  1479,
2001 <    1480,   542,   312,   545,   546,   547,   577,   548,    92,    93,
2002 <      94,   549,  1386,   550,   551,   552,   554,   142,   143,   355,
2003 <     555,   578,   144,   436,   556,   557,   437,   303,   579,   145,
2004 <     313,   314,   580,   146,   147,   148,   558,   581,   149,   582,
2005 <    1387,   150,   151,   583,   584,   802,  1184,   585,  1388,   803,
2006 <     599,   152,   588,   589,  1192,  1193,   590,   153,   154,   591,
2007 <     155,   156,   157,   158,   159,   592,   594,  1481,   438,   595,
2008 <     804,   439,   596,   597,   598,   160,   304,   670,   671,   674,
2009 <     675,   676,   805,   681,   161,  1482,   162,   163,   677,   164,
2010 <     683,  1389,   165,   166,   806,  1483,   167,   685,  1306,   807,
2011 <     687,   686,   688,   691,   689,   600,   690,   168,   692,   693,
2012 <    1390,   808,   305,   694,   306,   307,   695,   696,   809,   701,
2013 <     697,   699,   700,   810,   702,   811,   440,   601,   602,   169,
2014 <     703,   170,   704,   705,   603,   171,   707,   709,   812,   172,
2015 <     173,   174,   175,   176,   441,   708,   710,   177,   178,   711,
2016 <     712,   713,   714,   715,   716,   719,   179,   308,   722,   309,
2017 <     310,   721,   723,   733,   724,   729,   813,   730,   872,  1082,
2018 <     736,   814,   737,   247,   629,   311,   630,  1307,   738,   631,
2019 <     739,   742,   780,   632,   781,  1321,   782,   740,   180,   783,
2020 <     181,   743,   745,   815,   746,   749,   182,   773,   633,   634,
2021 <     635,   183,   750,   751,   636,   816,   184,   817,   818,  1308,
2022 <     784,   785,   819,   604,   605,   606,   786,   787,   607,   312,
2023 <     752,   795,   753,   637,  1309,   755,   608,   638,   639,   248,
2024 <     249,   250,   251,   252,   253,   254,   255,    76,   796,   609,
2025 <     610,   756,   757,   758,  1310,  1311,   797,   313,   314,    77,
2026 <    1312,  1313,  1314,  1315,   759,   451,   611,   612,   640,   760,
2027 <     641,   761,   762,  1316,  1322,   799,   763,   764,   800,   798,
2028 <      78,    79,   442,   642,   452,   820,    80,   256,    81,   765,
2029 <     453,   801,   821,   768,   613,   770,   775,   849,   776,   777,
2030 <     858,   850,   855,   822,   823,   643,  1323,   851,   852,   856,
2031 <     857,   859,   860,   824,   454,   455,   863,   862,   864,   456,
2032 <     865,  1324,   257,   866,   867,   868,   869,   870,   871,   873,
2033 <     874,   875,   876,   457,  1274,   525,   559,   644,   877,   879,
2034 <     458,  1325,  1326,   882,    82,    83,   887,  1327,  1328,  1329,
2035 <    1330,   645,   883,    84,    85,   916,   888,   889,   890,   459,
2036 <    1331,   891,   892,   917,   646,   953,   893,   894,     2,     3,
2037 <     902,   903,   918,     4,    86,    87,   954,   904,   905,   906,
2038 <     907,   957,   958,   908,   909,  1095,   910,   460,   911,   912,
2039 <       5,    88,    89,   913,     6,   461,   914,     7,   915,   931,
2040 <     919,   955,    90,   258,     8,   920,   921,   922,   923,   924,
2041 <     956,    91,   925,   462,   926,   927,   928,   932,   933,   934,
2042 <       9,   935,   463,   464,   936,   937,  1182,   647,   938,   939,
2043 <    1068,   940,   942,    10,    11,  1066,    12,   259,  1069,  1071,
2044 <     648,   943,   944,    13,   945,   946,   947,  1072,  1073,   948,
2045 <     949,   950,   959,   960,   961,   962,   465,   466,   963,   964,
2046 <      14,   965,   966,   967,   968,   969,   970,   971,   972,   973,
2047 <      15,   974,    16,   975,   976,   977,   978,   979,   980,   981,
2048 <     982,   983,   984,  1074,   985,   986,   987,   988,  1076,    17,
2049 <     989,   990,   991,   992,   993,  1015,  1037,  1038,    92,    93,
2050 <      94,   994,   995,   996,   997,   998,    18,   999,  1000,  1039,
2051 <    1001,  1002,  1003,  1040,   467,  1004,  1041,  1042,  1043,  1044,
2052 <    1045,  1046,  1047,  1048,  1049,  1005,  1006,  1007,  1050,  1008,
2053 <    1009,  1010,  1051,  1052,  1011,  1058,  1059,  1012,  1060,  1061,
2054 <    1062,    19,  1063,  1077,  1064,  1078,  1067,  1070,  1079,  1080,
2055 <      20,    21,  1075,  1081,  1083,    22,    23,  1016,  1017,  1018,
2056 <    1019,  1020,  1084,  1021,  1022,  1085,  1023,  1024,  1025,  1086,
2057 <    1087,  1026,  1088,  1090,  1089,  1091,  1092,  1093,  1094,  1098,
2058 <    1099,  1027,  1028,  1029,  1100,  1030,  1031,  1032,  1101,  1102,
2059 <    1033,  1103,  1104,  1034,  1420,  1421,  1422,  1423,  1424,  1105,
2060 <    1425,  1426,  1106,  1427,  1428,  1429,  1120,  1107,  1430,  1108,
2061 <    1109,  1144,  1145,  1146,  1110,  1111,  1112,  1113,  1431,  1432,
2322 <    1433,  1114,  1434,  1435,  1436,  1115,  1116,  1437,  1170,  1117,
2323 <    1438,  1118,  1119,  1172,  1174,  1183,  1121,  1122,  1123,  1125,
2324 <    1126,  1127,  1128,  1129,  1130,  1131,  1132,  1133,  1134,  1135,
2325 <    1136,  1137,  1139,  1147,  1140,  1141,  1148,  1149,  1150,  1151,
2326 <    1185,  1186,  1152,  1153,  1154,  1155,  1156,  1157,  1158,  1187,
2327 <    1159,  1160,  1161,  1166,  1167,  1168,  1188,  1169,  1189,  1190,
2328 <    1191,  1171,  1173,  1176,  1175,  1196,  1195,  1199,  1200,  1201,
2329 <    1202,  1203,  1204,  1205,  1206,  1207,  1208,  1209,  1211,  1210,
2330 <    1212,  1216,  1214,  1213,  1215,  1217,  1218,  1219,  1220,  1235,
2331 <    1221,  1236,  1241,  1242,  1243,  1244,  1245,  1246,  1247,  1263,
2332 <    1277,  1251,  1252,  1253,  1254,  1255,  1256,  1257,  1258,  1259,
2333 <    1260,  1261,  1262,  1266,  1272,  1278,  1273,  1287,  1279,  1289,
2334 <    1293,  1275,  1281,  1297,  1299,  1295,  1300,  1301,  1302,  1305,
2335 <    1280,  1282,  1283,  1284,  1285,  1286,  1288,  1290,  1319,  1291,
2336 <    1292,  1294,  1296,  1298,  1357,  1403,  1320,  1334,  1335,  1336,
2337 <    1337,  1338,  1339,  1340,  1341,  1342,  1343,  1344,  1345,  1346,
2338 <    1347,  1348,  1349,  1396,  1350,   336,  1351,  1352,  1353,  1444,
2339 <    1493,  1354,  1492,  1355,  1356,  1464,  1143,  1361,  1491,  1362,
2340 <     779,   767,   930,  1397,  1462,  1461,   881,  1487,  1488,   886,
2341 <    1463,   952,   772,   854,  1489,  1490,   368,  1458,  1373,   435,
2342 <    1372,  1460,   680,  1459,   356,     0,     0,     0,  1363,  1364,
2343 <    1365,  1366,  1367,  1368,  1369,  1398,  1399,  1400,  1401,  1402,
2344 <    1407,  1408,     0,  1409,     0,  1410,     0,     0,     0,  1411,
2345 <       0,  1412,  1413,  1414,  1415,  1416,  1417,  1418,  1419,  1441,
2346 <    1442,  1443,   520,   673,     0,     0,     0,     0,   748,     0,
1948 >     802,   803,   571,   572,    67,    45,    46,  1025,    47,   381,
1949 >     579,   801,   509,   110,   371,  1071,   227,   236,   980,   286,
1950 >     460,   286,   981,   110,    48,   510,    52,    68,   997,   998,
1951 >     999,  1000,  1001,    54,    69,   982,  1044,   116,   291,   983,
1952 >    1045,  1046,   117,   118,   220,  1047,  1171,    58,   119,    59,
1953 >    1172,   220,   371,   237,  1173,  1177,   120,   480,  1174,  1178,
1954 >     544,   460,   121,   509,   122,   123,   124,   238,   239,   240,
1955 >     241,   125,    62,   111,   372,   251,   510,   126,   127,    63,
1956 >     128,   129,   130,   111,    66,   242,   131,   942,  1013,  1014,
1957 >    1015,   132,    70,   627,   628,   133,   134,   382,   252,   135,
1958 >     227,   635,   228,   637,   511,   107,  1188,   287,   136,   287,
1959 >     644,   553,   372,   647,   108,   137,   138,   469,   139,   140,
1960 >     141,   142,   143,   109,   658,   659,   115,   383,   229,   441,
1961 >     512,   253,   373,   144,   670,   671,   217,   673,   461,   145,
1962 >     146,   147,   218,   148,   219,   442,   149,   150,   545,  1072,
1963 >     151,   234,   470,   313,  1073,   511,   235,  1179,   384,   292,
1964 >     443,  1180,   284,   254,   444,   255,   256,   314,   315,   462,
1965 >     373,   316,   471,   664,   665,   943,  1181,   472,   801,   461,
1966 >    1182,   512,   285,   152,   490,   293,   228,   153,   942,  1026,
1967 >     154,   155,   156,   157,   158,   294,    76,   159,   160,   554,
1968 >     491,   257,   297,   258,   259,   260,   261,  1191,   298,   546,
1969 >     462,  1192,   229,   666,   667,   492,    77,    78,   295,   493,
1970 >     262,   544,    79,   624,   463,   729,   722,   379,   317,   318,
1971 >     319,   524,   473,   320,   692,   561,   944,   161,   162,   163,
1972 >     445,   321,   164,   299,   263,   739,   740,   165,   446,   447,
1973 >     221,   439,   322,   323,   264,   300,  -107,   221,   482,   381,
1974 >     555,    80,    81,  -107,   547,   463,   617,   324,    82,    83,
1975 >      84,   342,   494,   343,   757,   344,   943,  1193,   553,   484,
1976 >     448,  1194,   265,   266,   301,   469,   302,   345,   792,   542,
1977 >      85,    86,   303,    67,   325,   495,   800,   304,   945,   305,
1978 >     236,  1085,   346,    87,    88,   306,   347,   307,  1195,   545,
1979 >     308,   496,  1196,    89,   488,  1197,    68,   309,  1220,  1198,
1980 >     470,    90,  1221,    69,   310,   762,   348,   485,   349,   743,
1981 >     744,   699,   378,   449,   390,   326,   237,   944,   350,   391,
1982 >     471,   806,   807,   687,   441,   472,   392,   382,   393,   490,
1983 >     238,   239,   240,   241,  1168,  1169,  1170,   394,   395,   351,
1984 >     442,   396,   397,   398,   570,   491,   554,   597,   242,   563,
1985 >     546,   399,   400,   401,   497,   443,   402,   383,   403,   444,
1986 >     492,    70,   404,   405,   493,   406,   352,   407,   498,   251,
1987 >     116,   408,   409,   410,   411,   117,   118,   412,   716,   945,
1988 >     473,   119,   772,   773,   774,   775,   776,   413,   384,   120,
1989 >     311,   414,   252,   353,   415,   121,   416,   122,   123,   124,
1990 >     417,   418,   420,   422,   125,   547,   423,   555,   424,   425,
1991 >     126,   127,   426,   128,   129,   130,   427,   494,   428,   131,
1992 >     354,   429,   430,  1205,   132,   253,   431,   432,   133,   134,
1993 >     433,   434,   135,   435,   436,   445,   437,   438,   481,   486,
1994 >     495,   136,   487,   446,   447,  1206,   518,  1207,   137,   138,
1995 >     519,   139,   140,   141,   142,   143,   496,   254,   355,   255,
1996 >     256,   520,   526,   521,   522,   613,   144,   564,   523,  1189,
1997 >     527,   528,   145,   146,   147,   448,   148,   529,   530,   149,
1998 >     150,   565,   531,   151,   532,  1208,   342,   533,   343,   567,
1999 >     344,   534,   535,   536,   537,   257,   566,   258,   259,   260,
2000 >     261,  1089,   345,   538,   539,   540,   541,   560,  1142,   568,
2001 >     569,   570,   573,   574,   262,   575,   152,   346,   576,   497,
2002 >     153,   347,  1090,   154,   155,   156,   157,   158,   449,   577,
2003 >     159,   160,   578,   498,   580,   581,   582,  1091,   263,   583,
2004 >     599,   348,   619,   349,  1092,   620,   584,   585,   264,   586,
2005 >     313,   587,   588,   350,   589,  1209,  1210,   590,   591,   592,
2006 >     593,  1093,   594,   595,   314,   315,   596,   626,   316,   600,
2007 >     161,   162,   163,  1156,   351,   164,   265,   266,   601,  1143,
2008 >     165,   629,   602,   603,  1094,   630,   631,   632,  1211,   605,
2009 >     606,  1095,   633,   634,   607,     2,     3,   608,   609,     4,
2010 >     636,   352,   610,  1096,   611,   612,   615,   638,  1144,     5,
2011 >     616,   621,     6,     7,   622,   639,   640,  1145,     8,   641,
2012 >    1097,  1098,  1099,  1146,   642,   317,   318,   319,   353,     9,
2013 >     320,   857,   643,    10,    11,   645,   646,  1147,   321,  1148,
2014 >    1149,   648,   649,    12,  1157,   650,   651,   652,  1150,   322,
2015 >     323,   653,   654,   655,  1151,   354,   657,    13,   656,   880,
2016 >     660,   661,   662,   663,   324,    14,    15,   672,   677,   668,
2017 >    1100,   669,   674,  1158,   675,   678,   679,   676,   701,  1101,
2018 >     680,   682,  1159,    16,  1102,   683,  1050,  1113,  1160,   684,
2019 >    1103,   325,   703,   355,  1104,   685,  1105,    17,   686,   704,
2020 >     689,  1106,  1161,   691,  1162,  1163,  1051,  1107,   694,   705,
2021 >     702,   724,   696,  1164,   725,   697,  1052,   698,   726,  1165,
2022 >     706,   707,  1053,   727,   728,   732,   731,   733,   708,   734,
2023 >      18,   709,   326,   735,   736,   718,   730,   711,  1054,    19,
2024 >      20,   712,   713,    21,    22,   858,   859,   860,   861,   862,
2025 >     715,   863,   864,   749,   865,   866,   867,   719,   720,   868,
2026 >     737,   869,   870,  1055,   871,    76,   872,   738,   873,   874,
2027 >     721,  1056,   875,   881,   882,   883,   884,   885,   876,   886,
2028 >     887,   747,   888,   889,   890,    77,    78,   891,   748,   892,
2029 >     893,    79,   894,   750,   895,    23,   896,   897,   751,   752,
2030 >     898,  1114,  1115,  1116,  1117,  1118,   899,  1119,  1120,  1057,
2031 >    1121,  1122,  1123,   753,   754,  1124,   764,  1125,  1126,   756,
2032 >    1127,   759,  1128,   760,  1129,  1130,  1058,   765,  1131,   766,
2033 >      80,    81,   767,   768,  1132,   769,   770,    82,    83,    84,
2034 >     771,   779,   780,   781,   782,   783,   784,   785,   786,   787,
2035 >     790,   788,   789,   791,   793,   794,   795,   796,   797,    85,
2036 >      86,   798,   799,   804,   801,   805,   808,   809,   810,   811,
2037 >     812,   815,    87,    88,   819,   822,   813,   814,   816,   823,
2038 >     826,   827,    89,   817,   818,   820,   821,   824,   825,   828,
2039 >      90,   829,   830,   831,   832,   921,   833,   834,   835,   836,
2040 >     837,   838,   839,   840,   841,   842,   843,   844,   845,   846,
2041 >     847,   848,   849,   924,   850,   851,   852,   853,   854,   855,
2042 >     856,   879,   925,   902,   903,   904,   905,   906,   907,   908,
2043 >     909,   910,   911,   912,   913,   914,   915,   916,   917,   918,
2044 >     919,   920,   922,   926,   927,   923,   928,   929,   930,   931,
2045 >     932,   933,   934,   935,   936,   937,   940,   941,   951,   952,
2046 >     953,   954,   956,   955,   957,   958,   960,   959,   962,   963,
2047 >     964,   989,   991,  1140,   993,   296,  1222,   489,  1139,  1086,
2048 >    1041,  1217,   598,   717,  1216,  1067,  1183,   961,   965,   966,
2049 >     967,   968,  1203,   969,   970,   971,   972,   543,   973,   974,
2050 >     975,   976,   977,   978,   979,   984,   985,   986,   987,   988,
2051 >    1186,  1184,   992,   700,   990,   995,   994,   996,  1002,  1003,
2052 >    1004,  1005,  1006,  1007,  1008,  1009,  1010,  1011,  1012,  1018,
2053 >    1019,  1020,  1021,  1022,  1023,  1024,  1029,  1078,  1030,  1031,
2054 >     688,  1201,  1032,   723,  1033,  1218,  1034,   763,  1035,  1036,
2055 >    1219,  1199,  1037,  1038,  1039,  1040,  1048,  1202,  1049,   693,
2056 >    1061,   380,  1200,   440,  1062,  1175,  1176,   312,     0,     0,
2057 >       0,   758,     0,  1063,  1064,  1065,  1066,     0,  1070,  1076,
2058 >    1077,     0,  1081,     0,     0,  1079,  1082,  1084,  1187,  1087,
2059 >    1088,  1110,  1111,  1112,  1135,  1136,  1137,  1138,  1141,  1154,
2060 >    1155,     0,  1185,  1190,  1204,  1214,  1215,     0,   618,     0,
2061 >       0,     0,     0,     0,     0,   625,   483,     0,     0,     0,
2062         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2063 +       0,     0,     0,     0,     0,     0,     0,     0,   525,     0,
2064         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2065 <       0,     0,     0,   544
2065 >       0,     0,     0,     0,     0,     0,   614,     0,     0,     0,
2066 >     562
2067   };
2068  
2069 + #define yypact_value_is_default(Yystate) \
2070 +  (!!((Yystate) == (-745)))
2071 +
2072 + #define yytable_value_is_error(Yytable_value) \
2073 +  YYID (0)
2074 +
2075   static const yytype_int16 yycheck[] =
2076   {
2077 <     342,   343,   428,     1,   264,     1,   264,   349,     1,   264,
2078 <       1,   264,    11,     1,   264,     1,     1,   262,     1,   155,
2079 <       1,   266,    11,    10,     1,    12,     1,   264,     1,   262,
2080 <     263,     8,     9,     1,     1,    12,   264,   379,   264,   381,
2081 <      27,    37,    19,   155,    31,     1,     1,    22,     4,   199,
2082 <     200,    28,    48,   395,    22,    32,    33,     1,   199,   200,
2083 <     262,   403,    39,     1,   266,   264,    43,    44,    45,    55,
2084 <      47,   264,   414,   415,   264,   417,    53,   264,    78,   895,
2085 <     896,   897,   898,   899,   426,   427,    41,   429,   262,     1,
2086 <      46,   264,   266,    49,     1,    72,    73,   264,    91,    85,
2087 <      77,    56,  1053,  1054,  1055,    91,    91,    84,    91,   155,
2088 <      91,    88,    89,    90,   262,   264,    93,   262,   266,    96,
2089 <      97,   266,   120,    78,   264,    80,   122,    82,    83,   106,
2090 <     264,   122,   262,   262,     1,   112,   113,   266,   115,   116,
2091 <     117,   118,   119,    55,   265,   262,   101,   120,   104,   266,
2092 <       1,   126,   150,   130,     5,   122,   171,   172,   126,     1,
2093 <       1,     1,   139,   265,   141,   142,   122,   144,   154,   157,
2094 <     147,   148,   157,    85,   151,    26,   157,   150,   122,    91,
2095 <      20,   265,   157,   265,   122,   162,    26,    38,   265,   157,
2096 <      57,    58,    59,    60,    61,    62,    63,    64,   189,    50,
2097 <     542,   189,   201,   265,    55,   218,   219,   184,   265,   186,
2098 <      50,    51,   201,   190,   265,    55,    67,   194,   195,   196,
2099 <     197,   198,   189,    74,     1,   202,   203,   262,    79,    69,
2100 <      81,   266,   265,   233,   211,   265,    76,   237,   105,     1,
2101 <     265,     3,   154,    94,     6,   189,    23,    24,    10,   265,
2102 <     157,   189,   262,    30,   262,    95,   266,   244,   266,   250,
2103 <     265,   265,   250,    25,    26,    27,   243,   263,   245,    31,
2104 <     263,   122,   263,   140,   251,   263,   127,   263,   263,   256,
2105 <     122,   122,   189,   123,   261,   265,   263,     1,    50,   265,
2106 <     263,   131,    54,    55,   250,   263,   263,   262,   149,    13,
2107 <     264,   266,   265,     1,     1,   265,   250,   263,   263,   149,
2108 <     161,   265,   163,   164,   265,   157,   157,   168,   158,   159,
2109 <      34,    35,   133,    85,   265,    87,    40,   264,    42,    14,
2110 <      15,    16,   109,   110,   111,   265,   265,   114,   100,    37,
2111 <      37,   265,   262,   250,   265,   122,   266,   189,   189,   265,
2112 <      48,   262,   192,   193,   221,   266,   265,   262,   135,   136,
2113 <     122,   266,     1,   265,   175,   176,   177,   178,   179,   265,
2114 <     265,     5,   265,   265,   265,   152,   153,   265,   265,   265,
2115 <     231,   265,   265,   265,    98,    99,   265,   238,   255,    86,
2116 <     265,   265,   154,   107,   108,   265,   263,   265,   249,   250,
2117 <     742,   265,    41,   180,    38,   265,   168,   265,   259,   265,
2118 <     250,   265,   263,   265,   128,   129,    50,    56,   265,   181,
2119 <     265,   263,   265,   263,   122,   122,   265,   124,   125,   265,
2120 <     265,   145,   146,    67,   265,   265,   265,   265,   265,    78,
2121 <      74,    80,   156,    82,    83,    79,   265,    81,   133,   265,
2122 <     265,   165,   222,   223,   224,   225,   226,   227,   228,   265,
2123 <      94,   265,   101,   265,   265,   265,   265,    20,    21,   265,
2124 <     167,   265,   169,   170,   265,   265,     1,   265,   265,   262,
2125 <     265,   265,   244,     8,     9,   265,   263,    12,   185,   265,
2126 <     265,   265,   265,   127,    19,   257,   265,   265,    51,   265,
2127 <     265,   263,   928,    28,   265,   262,   265,    32,    33,   143,
2128 <     265,   264,   155,   265,    39,   265,    69,   265,    43,    44,
2129 <      45,     1,    47,    76,   265,   265,   265,   161,    53,   163,
2130 <     164,   265,   229,   262,   265,   265,   155,   265,   252,   253,
2131 <     254,   265,    95,   265,   265,   265,   265,    72,    73,   263,
2132 <     265,   155,    77,     1,   265,   265,     4,    37,   262,    84,
2133 <     257,   258,   199,    88,    89,    90,   263,   133,    93,   133,
2134 <     123,    96,    97,   199,   199,     1,   918,   133,   131,     5,
2135 <     262,   106,   133,   133,   926,   927,   199,   112,   113,   199,
2136 <     115,   116,   117,   118,   119,   133,   199,   231,    46,   199,
2137 <      26,    49,   199,   199,   199,   130,    86,   265,   265,   155,
2138 <     262,   265,    38,   199,   139,   249,   141,   142,   265,   144,
2139 <     199,   174,   147,   148,    50,   259,   151,   133,    94,    55,
2140 <     133,   155,   199,   133,   199,     1,   199,   162,   155,   199,
2141 <     193,    67,   122,   133,   124,   125,   133,   133,    74,   133,
2142 <     199,   199,   199,    79,   155,    81,   104,    23,    24,   184,
2143 <     199,   186,   133,   133,    30,   190,   133,   155,    94,   194,
2144 <     195,   196,   197,   198,   122,   133,   133,   202,   203,   133,
2145 <     199,   199,   265,   199,   265,   199,   211,   167,   199,   169,
2146 <     170,   155,   199,   133,   199,   199,   122,   199,   133,   133,
2147 <     199,   127,   199,     1,     1,   185,     3,   173,   199,     6,
2148 <     199,   265,   155,    10,   155,    94,   155,   262,   243,   155,
2149 <     245,   265,   265,   149,   265,   262,   251,   262,    25,    26,
2150 <      27,   256,   265,   265,    31,   161,   261,   163,   164,   205,
2151 <     155,   155,   168,   109,   110,   111,   155,   155,   114,   229,
2152 <     265,   155,   265,    50,   220,   265,   122,    54,    55,    57,
2153 <      58,    59,    60,    61,    62,    63,    64,     1,   155,   135,
2154 <     136,   265,   265,   265,   240,   241,   199,   257,   258,    13,
2155 <     246,   247,   248,   249,   265,     1,   152,   153,    85,   265,
2156 <      87,   265,   265,   259,   173,   155,   265,   265,   155,   262,
2157 <      34,    35,   250,   100,    20,   231,    40,   105,    42,   265,
2158 <      26,   262,   238,   265,   180,   265,   265,   262,   265,   265,
2159 <     155,   265,   199,   249,   250,   122,   205,   265,   265,   199,
2160 <     199,   199,   199,   259,    50,    51,   155,   262,   199,    55,
2161 <     155,   220,   140,   155,   155,   155,   155,   265,   155,   155,
2162 <     155,   262,   262,    69,   204,   277,   315,   154,   265,   265,
2163 <      76,   240,   241,   262,    98,    99,   262,   246,   247,   248,
2164 <     249,   168,   265,   107,   108,   265,   262,   262,   262,    95,
2165 <     259,   262,   262,   265,   181,   155,   262,   262,     0,     1,
2166 <     262,   262,   265,     5,   128,   129,   155,   262,   262,   262,
2167 <     262,   155,   155,   262,   262,   133,   262,   123,   262,   262,
2168 <      22,   145,   146,   262,    26,   131,   262,    29,   262,   262,
2169 <     265,   262,   156,   221,    36,   265,   265,   265,   265,   265,
2170 <     262,   165,   265,   149,   265,   265,   265,   265,   265,   265,
2171 <      52,   265,   158,   159,   265,   265,   133,   244,   265,   265,
2172 <     155,   265,   265,    65,    66,   199,    68,   255,   155,   199,
2173 <     257,   265,   265,    75,   265,   265,   265,   155,   199,   265,
2174 <     265,   265,   265,   262,   262,   262,   192,   193,   262,   262,
2175 <      92,   262,   262,   262,   262,   262,   262,   262,   262,   262,
2176 <     102,   262,   104,   262,   262,   262,   262,   262,   262,   262,
2177 <     262,   262,   262,   199,   262,   262,   262,   262,   199,   121,
2178 <     262,   262,   262,   262,   262,   262,   262,   262,   252,   253,
2179 <     254,   206,   207,   208,   209,   210,   138,   212,   213,   262,
2180 <     215,   216,   217,   262,   250,   220,   262,   262,   262,   262,
2181 <     262,   262,   262,   262,   262,   230,   231,   232,   262,   234,
2182 <     235,   236,   262,   262,   239,   262,   262,   242,   262,   262,
2183 <     262,   173,   262,   199,   265,   199,   265,   262,   199,   199,
2184 <     182,   183,   265,   155,   155,   187,   188,   206,   207,   208,
2185 <     209,   210,   155,   212,   213,   199,   215,   216,   217,   155,
2186 <     262,   220,   155,   155,   265,   262,   265,   155,   155,   262,
2187 <     262,   230,   231,   232,   262,   234,   235,   236,   262,   262,
2188 <     239,   262,   262,   242,   206,   207,   208,   209,   210,   262,
2189 <     212,   213,   262,   215,   216,   217,   265,   262,   220,   262,
2190 <     262,   155,   155,   155,   262,   262,   262,   262,   230,   231,
2468 <     232,   262,   234,   235,   236,   262,   262,   239,   155,   262,
2469 <     242,   262,   262,   155,   155,   133,   265,   265,   265,   265,
2470 <     265,   265,   265,   265,   265,   265,   265,   265,   265,   265,
2471 <     265,   265,   265,   262,   265,   265,   262,   262,   262,   262,
2472 <     133,   133,   262,   262,   262,   262,   262,   262,   262,   133,
2473 <     262,   262,   262,   262,   262,   262,   133,   262,   155,   133,
2474 <     133,   265,   262,   262,   265,   155,   262,   199,   155,   155,
2475 <     199,   199,   199,   155,   265,   155,   155,   155,   133,   155,
2476 <     155,   262,   199,   155,   155,   262,   262,   262,   262,   262,
2477 <     160,   262,   262,   262,   262,   262,   262,   262,   132,   160,
2478 <     199,   262,   262,   262,   262,   262,   262,   262,   262,   262,
2479 <     262,   262,   262,   262,   262,   155,   262,   155,   199,   155,
2480 <     155,   266,   265,   155,   262,   265,   262,   262,   262,   262,
2481 <     199,   199,   199,   199,   199,   199,   199,   199,   262,   199,
2482 <     199,   199,   199,   199,   132,   132,   262,   262,   262,   262,
2483 <     262,   262,   262,   262,   262,   262,   262,   262,   262,   262,
2484 <     262,   262,   262,   133,   262,    71,   262,   262,   262,  1304,
2485 <    1486,   262,  1467,   262,   262,  1395,   825,   262,  1465,   262,
2486 <     501,   468,   614,  1275,  1380,  1378,   564,  1446,  1448,   572,
2487 <    1393,   649,   491,   531,  1449,  1451,   124,  1371,  1227,   185,
2488 <    1225,  1377,   374,  1375,    95,    -1,    -1,    -1,   262,   262,
2489 <     262,   262,   262,   262,   262,   262,   262,   262,   262,   262,
2490 <     262,   262,    -1,   262,    -1,   262,    -1,    -1,    -1,   262,
2491 <      -1,   262,   262,   262,   262,   262,   262,   262,   262,   262,
2492 <     262,   262,   260,   362,    -1,    -1,    -1,    -1,   443,    -1,
2077 >     595,   596,   300,   301,     1,   214,   215,     8,   216,     1,
2078 >     308,    99,     1,     1,     1,    51,     1,     1,   214,     1,
2079 >       1,     1,   218,     1,   216,    14,   216,    24,   772,   773,
2080 >     774,   775,   776,   216,    31,   214,   214,     1,   214,   218,
2081 >     218,   214,     6,     7,     1,   218,   214,   216,    12,   216,
2082 >     218,     1,     1,    37,   214,   214,    20,   214,   218,   218,
2083 >       1,     1,    26,     1,    28,    29,    30,    51,    52,    53,
2084 >      54,    35,   216,    61,    61,     1,    14,    41,    42,   216,
2085 >      44,    45,    46,    61,   216,    69,    50,     1,     9,    10,
2086 >      11,    55,    89,   391,   392,    59,    60,    89,    24,    63,
2087 >       1,   399,    87,   401,    93,   216,   194,    89,    72,    89,
2088 >     408,     1,    61,   411,   216,    79,    80,     1,    82,    83,
2089 >      84,    85,    86,   216,   422,   423,   216,   119,   113,     1,
2090 >     119,    57,   119,    97,   432,   433,   216,   435,   119,   103,
2091 >     104,   105,   216,   107,   216,    17,   110,   111,    89,   185,
2092 >     114,   216,    36,     1,   190,    93,   216,   214,   150,   217,
2093 >      32,   218,   216,    89,    36,    91,    92,    15,    16,   150,
2094 >     119,    19,    56,   159,   160,    89,   214,    61,    99,   119,
2095 >     218,   119,   216,   147,     1,   217,    87,   151,     1,   190,
2096 >     154,   155,   156,   157,   158,   217,     1,   161,   162,    89,
2097 >      17,   127,   217,   129,   130,   131,   132,   214,   217,   150,
2098 >     150,   218,   113,   159,   160,    32,    21,    22,   215,    36,
2099 >     146,     1,    27,   215,   205,   523,   215,   215,    76,    77,
2100 >      78,   215,   116,    81,   215,   215,   150,   201,   202,   203,
2101 >     112,    89,   206,   217,   170,   133,   134,   211,   120,   121,
2102 >     207,   215,   100,   101,   180,   217,   213,   207,   215,     1,
2103 >     150,    66,    67,   213,   205,   205,   215,   115,    73,    74,
2104 >      75,     1,    89,     3,   215,     5,    89,   214,     1,   213,
2105 >     152,   218,   208,   209,   217,     1,   217,    17,   586,   215,
2106 >      95,    96,   217,     1,   142,   112,   594,   217,   212,   217,
2107 >       1,   215,    32,   108,   109,   217,    36,   217,   214,    89,
2108 >     217,   128,   218,   118,   215,   214,    24,   217,   214,   218,
2109 >      36,   126,   218,    31,   217,   215,    56,   214,    58,   133,
2110 >     134,   215,   217,   205,   217,   183,    37,   150,    68,   217,
2111 >      56,   177,   178,   215,     1,    61,   217,    89,   217,     1,
2112 >      51,    52,    53,    54,  1013,  1014,  1015,   217,   217,    89,
2113 >      17,   217,   217,   217,    99,    17,    89,   215,    69,   117,
2114 >     150,   217,   217,   217,   191,    32,   217,   119,   217,    36,
2115 >      32,    89,   217,   217,    36,   217,   116,   217,   205,     1,
2116 >       1,   217,   217,   217,   217,     6,     7,   217,   215,   212,
2117 >     116,    12,   137,   138,   139,   140,   141,   217,   150,    20,
2118 >     215,   217,    24,   143,   217,    26,   217,    28,    29,    30,
2119 >     217,   217,   217,   217,    35,   205,   217,   150,   217,   217,
2120 >      41,    42,   217,    44,    45,    46,   217,    89,   217,    50,
2121 >     170,   217,   217,    40,    55,    57,   217,   217,    59,    60,
2122 >     217,   217,    63,   217,   217,   112,   217,   217,   217,   217,
2123 >     112,    72,   217,   120,   121,    62,   217,    64,    79,    80,
2124 >     217,    82,    83,    84,    85,    86,   128,    89,   208,    91,
2125 >      92,   217,   214,   217,   217,   215,    97,   117,   217,  1084,
2126 >     217,   217,   103,   104,   105,   152,   107,   217,   217,   110,
2127 >     111,   117,   217,   114,   217,   102,     1,   217,     3,    99,
2128 >       5,   217,   217,   217,   217,   127,   214,   129,   130,   131,
2129 >     132,     4,    17,   217,   217,   217,   217,   217,    64,    99,
2130 >     159,    99,    99,    99,   146,    99,   147,    32,   159,   191,
2131 >     151,    36,    25,   154,   155,   156,   157,   158,   205,   159,
2132 >     161,   162,    99,   205,   159,   159,   214,    40,   170,   214,
2133 >     214,    56,   117,    58,    47,   214,   217,   217,   180,   217,
2134 >       1,   217,   217,    68,   217,   172,   173,   217,   217,   217,
2135 >     217,    64,   217,   217,    15,    16,   217,   159,    19,   217,
2136 >     201,   202,   203,    64,    89,   206,   208,   209,   217,   135,
2137 >     211,    99,   217,   217,    87,   159,   159,    99,   205,   217,
2138 >     217,    94,   117,   159,   217,     0,     1,   217,   217,     4,
2139 >     159,   116,   217,   106,   217,   217,   217,    99,   164,    14,
2140 >     217,   217,    17,    18,   217,    99,    99,   173,    23,   159,
2141 >     123,   124,   125,   179,   159,    76,    77,    78,   143,    34,
2142 >      81,    51,   159,    38,    39,    99,    99,   193,    89,   195,
2143 >     196,    99,    99,    48,   135,   117,    99,    99,   204,   100,
2144 >     101,   159,   159,   217,   210,   170,   217,    62,   159,    51,
2145 >     159,   159,   159,   159,   115,    70,    71,   117,   214,   159,
2146 >     173,   159,   159,   164,   159,   214,   217,   159,   159,   182,
2147 >     217,   217,   173,    88,   187,   217,    13,    51,   179,   217,
2148 >     193,   142,   216,   208,   197,   217,   199,   102,   217,   117,
2149 >     217,   204,   193,   217,   195,   196,    33,   210,   214,   117,
2150 >     214,   159,   217,   204,   159,   217,    43,   217,   117,   210,
2151 >     214,   214,    49,   159,   159,   159,   117,   117,   217,   117,
2152 >     135,   217,   183,   117,   117,   214,   214,   217,    65,   144,
2153 >     145,   217,   217,   148,   149,   165,   166,   167,   168,   169,
2154 >     217,   171,   172,    99,   174,   175,   176,   217,   217,   179,
2155 >     117,   181,   182,    90,   184,     1,   186,   117,   188,   189,
2156 >     217,    98,   192,   165,   166,   167,   168,   169,   198,   171,
2157 >     172,   117,   174,   175,   176,    21,    22,   179,   117,   181,
2158 >     182,    27,   184,   117,   186,   200,   188,   189,   117,   214,
2159 >     192,   165,   166,   167,   168,   169,   198,   171,   172,   136,
2160 >     174,   175,   176,   214,   217,   179,   117,   181,   182,   217,
2161 >     184,   214,   186,   217,   188,   189,   153,   214,   192,   214,
2162 >      66,    67,   214,   214,   198,   214,   214,    73,    74,    75,
2163 >     214,   214,   214,   214,   214,   214,   214,   214,   214,   214,
2164 >      99,   214,   214,    99,    99,    99,    99,    99,   117,    95,
2165 >      96,    99,    99,   214,    99,   117,   117,   159,   217,   117,
2166 >     117,    99,   108,   109,   214,   214,   117,   117,   117,   214,
2167 >     217,   214,   118,   117,   117,   117,   117,   117,   117,   214,
2168 >     126,   214,   214,   214,   214,   117,   214,   214,   214,   214,
2169 >     214,   214,   214,   214,   214,   214,   214,   214,   214,   214,
2170 >     214,   214,   214,   117,   214,   214,   214,   214,   214,   214,
2171 >     214,   214,    99,   214,   214,   214,   214,   214,   214,   214,
2172 >     214,   214,   214,   214,   214,   214,   214,   214,   214,   214,
2173 >     214,   214,   159,   117,   117,   217,   117,   214,   117,   217,
2174 >     117,   214,   217,   117,   117,    99,   214,   214,   214,   214,
2175 >     117,   159,   117,   217,   117,   117,   117,   217,   117,   117,
2176 >     117,   117,   117,   983,   117,    71,  1221,   230,   981,   946,
2177 >     122,  1194,   327,   499,  1192,   122,    99,   214,   214,   214,
2178 >     214,   214,  1182,   214,   214,   214,   214,   267,   214,   214,
2179 >     214,   214,   214,   214,   214,   214,   214,   214,   214,   214,
2180 >     117,  1079,   214,   475,   217,   214,   217,   214,   214,   214,
2181 >     214,   214,   214,   214,   214,   214,   214,   214,   214,   214,
2182 >     214,   214,   214,   214,   214,   214,   214,   163,   214,   214,
2183 >     450,  1178,   214,   513,   214,  1196,   214,   556,   214,   214,
2184 >    1198,  1172,   214,   214,   214,   214,   214,  1180,   214,   465,
2185 >     214,   112,  1174,   166,   214,  1045,  1047,    91,    -1,    -1,
2186 >      -1,   548,    -1,   214,   214,   214,   214,    -1,   214,   214,
2187 >     214,    -1,   214,    -1,    -1,   218,   217,   217,   217,   214,
2188 >     214,   214,   214,   214,   214,   214,   214,   214,   214,   214,
2189 >     214,    -1,   214,   214,   214,   214,   214,    -1,   374,    -1,
2190 >      -1,    -1,    -1,    -1,    -1,   386,   222,    -1,    -1,    -1,
2191        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2192 +      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   243,    -1,
2193        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2194 <      -1,    -1,    -1,   293
2194 >      -1,    -1,    -1,    -1,    -1,    -1,   356,    -1,    -1,    -1,
2195 >     288
2196   };
2197  
2198   /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
2199     symbol of state STATE-NUM.  */
2200   static const yytype_uint16 yystos[] =
2201   {
2202 <       0,   268,     0,     1,     5,    22,    26,    29,    36,    52,
2203 <      65,    66,    68,    75,    92,   102,   104,   121,   138,   173,
2204 <     182,   183,   187,   188,   269,   274,   279,   297,   303,   318,
2205 <     355,   374,   388,   414,   421,   431,   440,   471,   481,   487,
2206 <     491,   501,   566,   582,   603,   262,   263,   264,   264,   356,
2207 <     441,   482,   264,   492,   264,   567,   389,   472,   375,   264,
2208 <     264,   319,   415,   264,   264,   422,   432,     1,    37,    48,
2209 <     122,   298,   299,   300,   301,   302,     1,    13,    34,    35,
2210 <      40,    42,    98,    99,   107,   108,   128,   129,   145,   146,
2211 <     156,   165,   252,   253,   254,   583,   584,   585,   586,   587,
2212 <     588,   589,   590,   591,   592,   593,   594,   595,   596,   597,
2213 <     598,   599,   600,   601,   602,   155,   357,   361,   155,   442,
2214 <     446,   264,     1,    91,   488,   489,   490,   264,     1,     8,
2215 <       9,    12,    19,    28,    32,    33,    39,    43,    44,    45,
2216 <      47,    53,    72,    73,    77,    84,    88,    89,    90,    93,
2217 <      96,    97,   106,   112,   113,   115,   116,   117,   118,   119,
2218 <     130,   139,   141,   142,   144,   147,   148,   151,   162,   184,
2219 <     186,   190,   194,   195,   196,   197,   198,   202,   203,   211,
2220 <     243,   245,   251,   256,   261,   502,   503,   504,   505,   506,
2221 <     507,   508,   509,   510,   511,   512,   513,   514,   515,   516,
2222 <     517,   518,   519,   520,   521,   522,   523,   524,   525,   526,
2223 <     527,   528,   529,   530,   531,   532,   533,   534,   535,   536,
2224 <     537,   538,   539,   540,   541,   542,   543,   544,   545,   546,
2225 <     547,   548,   549,   550,   551,   552,   553,   557,   561,   562,
2226 <     563,   564,   565,   264,   264,   264,   264,     1,    57,    58,
2227 <      59,    60,    61,    62,    63,    64,   105,   140,   221,   255,
2228 <     304,   305,   306,   307,   308,   309,   310,   311,   312,   313,
2229 <     314,   315,   316,   317,     1,   120,   150,   275,   276,   277,
2230 <     278,   155,   320,   324,   264,     1,    41,    56,    78,    80,
2231 <      82,    83,   101,   604,   605,   606,   607,   608,   609,   610,
2232 <     611,   612,     1,    37,    86,   122,   124,   125,   167,   169,
2233 <     170,   185,   229,   257,   258,   280,   281,   282,   286,   287,
2234 <     288,   289,   290,   291,   292,   293,   294,   295,   296,   264,
2235 <     264,   262,   265,   265,   265,   263,   299,   265,   265,   265,
2236 <     265,   265,   265,   265,   265,   265,   265,   265,   265,   265,
2237 <     265,   265,   265,   265,   265,   263,   584,   264,   264,     1,
2238 <      91,   157,   483,   484,   485,   486,   265,   263,   489,     1,
2239 <     122,   157,   189,   493,   497,   498,   499,   500,   265,   265,
2240 <     265,   265,   265,   265,   265,   265,   265,   265,   265,   265,
2241 <     265,   265,   265,   265,   265,   265,   265,   265,   265,   265,
2242 <     265,   265,   265,   265,   265,   265,   265,   265,   265,   265,
2243 <     265,   558,   265,   554,   265,   265,   265,   265,   265,   265,
2244 <     265,   265,   265,   265,   265,   265,   265,   265,   265,   265,
2245 <     265,   265,   265,   265,   263,   503,     1,     4,    46,    49,
2246 <     104,   122,   250,   568,   569,   570,   571,   572,   576,   577,
2247 <     578,     1,    20,    26,    50,    51,    55,    69,    76,    95,
2248 <     123,   131,   149,   158,   159,   192,   193,   250,   390,   391,
2249 <     392,   393,   394,   395,   396,   397,   404,   405,   406,   407,
2250 <     408,   409,   410,   411,   412,   413,     1,   157,   189,   250,
2251 <     473,   477,   478,   479,   480,     1,    55,    85,    91,   154,
2252 <     376,   380,   381,   382,   386,   387,   262,   265,   265,   265,
2253 <     265,   265,   265,   265,   265,   265,   265,   265,   265,   263,
2254 <     305,   262,   265,   265,   263,   276,   264,     1,    22,   126,
2255 <     157,   416,   417,   418,   419,   420,   265,   265,   265,   265,
2256 <     265,   265,   265,   263,   605,   262,   265,   265,   265,   265,
2257 <     265,   265,   265,   283,   265,   265,   265,   265,   263,   281,
2258 <       1,   122,   189,   250,   423,   424,   425,   426,   427,     1,
2259 <     122,   189,   433,   434,   435,   436,   155,   155,   155,   262,
2260 <     199,   133,   133,   199,   199,   133,   271,   271,   133,   133,
2261 <     199,   199,   133,   271,   199,   199,   199,   199,   199,   262,
2262 <       1,    23,    24,    30,   109,   110,   111,   114,   122,   135,
2263 <     136,   152,   153,   180,   358,   359,   360,   362,   363,   364,
2264 <     365,   366,   367,   368,   369,   370,   371,   372,   373,     1,
2265 <       3,     6,    10,    25,    26,    27,    31,    50,    54,    55,
2266 <      85,    87,   100,   122,   154,   168,   181,   244,   257,   443,
2267 <     444,   445,   447,   448,   449,   450,   451,   452,   453,   454,
2268 <     461,   462,   463,   464,   465,   466,   467,   468,   469,   470,
2269 <     265,   265,   263,   484,   155,   262,   265,   265,   494,   263,
2270 <     498,   199,   271,   199,   271,   133,   155,   133,   199,   199,
2271 <     199,   133,   155,   199,   133,   133,   133,   199,   271,   199,
2272 <     199,   133,   155,   199,   133,   133,   271,   133,   133,   155,
2273 <     133,   133,   199,   199,   265,   199,   265,   271,   271,   199,
2274 <     271,   155,   199,   199,   199,   199,   200,   199,   200,   199,
2275 <     199,   271,   271,   133,   273,   271,   199,   199,   199,   199,
2276 <     262,   579,   265,   265,   573,   265,   265,   263,   569,   262,
2277 <     265,   265,   265,   265,   398,   265,   265,   265,   265,   265,
2278 <     265,   265,   265,   265,   265,   265,   263,   391,   265,   474,
2279 <     265,   263,   478,   262,   377,   265,   265,   265,   263,   381,
2280 <     155,   155,   155,   155,   155,   155,   155,   155,   222,   223,
2281 <     224,   225,   226,   227,   228,   155,   155,   199,   262,   155,
2282 <     155,   262,     1,     5,    26,    38,    50,    55,    67,    74,
2283 <      79,    81,    94,   122,   127,   149,   161,   163,   164,   168,
2284 <     231,   238,   249,   250,   259,   321,   322,   323,   325,   326,
2285 <     327,   328,   329,   330,   334,   335,   336,   337,   338,   339,
2286 <     340,   341,   342,   343,   344,   345,   346,   347,   348,   262,
2287 <     265,   265,   265,   263,   417,   199,   199,   199,   155,   199,
2288 <     199,   271,   262,   155,   199,   155,   155,   155,   155,   155,
2289 <     265,   155,   133,   155,   155,   262,   262,   265,   428,   265,
2290 <     263,   424,   262,   265,   437,   263,   434,   262,   262,   262,
2291 <     262,   262,   262,   262,   262,   175,   176,   177,   178,   179,
2292 <     270,   271,   262,   262,   262,   262,   262,   262,   262,   262,
2293 <     262,   262,   262,   262,   262,   262,   265,   265,   265,   265,
2294 <     265,   265,   265,   265,   265,   265,   265,   265,   265,   263,
2295 <     359,   262,   265,   265,   265,   265,   265,   265,   265,   265,
2296 <     265,   455,   265,   265,   265,   265,   265,   265,   265,   265,
2297 <     265,   263,   444,   155,   155,   262,   262,   155,   155,   265,
2298 <     262,   262,   262,   262,   262,   262,   262,   262,   262,   262,
2299 <     262,   262,   262,   262,   262,   262,   262,   262,   262,   262,
2300 <     262,   262,   262,   262,   262,   262,   262,   262,   262,   262,
2301 <     262,   262,   262,   262,   206,   207,   208,   209,   210,   212,
2302 <     213,   215,   216,   217,   220,   230,   231,   232,   234,   235,
2303 <     236,   239,   242,   559,   560,   262,   206,   207,   208,   209,
2304 <     210,   212,   213,   215,   216,   217,   220,   230,   231,   232,
2305 <     234,   235,   236,   239,   242,   555,   556,   262,   262,   262,
2306 <     262,   262,   262,   262,   262,   262,   262,   262,   262,   262,
2307 <     262,   262,   262,    14,    15,    16,   272,   273,   262,   262,
2308 <     262,   262,   262,   262,   265,   271,   199,   265,   155,   155,
2309 <     262,   199,   155,   199,   199,   265,   199,   199,   199,   199,
2310 <     199,   155,   133,   155,   155,   199,   155,   262,   155,   265,
2311 <     155,   262,   265,   155,   155,   133,   384,   385,   262,   262,
2312 <     262,   262,   262,   262,   262,   262,   262,   262,   262,   262,
2313 <     262,   262,   262,   262,   262,   262,   262,   262,   262,   262,
2314 <     265,   265,   265,   265,   349,   265,   265,   265,   265,   265,
2315 <     265,   265,   265,   265,   265,   265,   265,   265,   331,   265,
2316 <     265,   265,   263,   322,   155,   155,   155,   262,   262,   262,
2317 <     262,   262,   262,   262,   262,   262,   262,   262,   262,   262,
2318 <     262,   262,   171,   172,   284,   285,   262,   262,   262,   262,
2319 <     155,   265,   155,   262,   155,   265,   262,   270,   270,   270,
2320 <     270,   270,   133,   133,   271,   133,   133,   133,   133,   155,
2321 <     133,   133,   271,   271,   273,   262,   155,   218,   219,   199,
2322 <     155,   155,   199,   199,   199,   155,   265,   155,   155,   155,
2323 <     155,   133,   155,   155,   199,   155,   262,   262,   262,   262,
2324 <     262,   160,   495,   496,   262,   266,   262,   266,   272,   272,
2625 <     272,    11,   201,   580,   581,   262,   262,    11,   201,   574,
2626 <     575,   262,   262,   262,   262,   262,   262,   132,   399,   400,
2627 <     402,   262,   262,   262,   262,   262,   262,   262,   262,   262,
2628 <     262,   262,   262,   160,   475,   476,   262,    78,   233,   237,
2629 <     378,   379,   262,   262,   204,   266,   383,   199,   155,   199,
2630 <     199,   265,   199,   199,   199,   199,   199,   155,   199,   155,
2631 <     199,   199,   199,   155,   199,   265,   199,   155,   199,   262,
2632 <     262,   262,   262,   262,   266,   262,    94,   173,   205,   220,
2633 <     240,   241,   246,   247,   248,   249,   259,   429,   430,   262,
2634 <     262,    94,   173,   205,   220,   240,   241,   246,   247,   248,
2635 <     249,   259,   438,   439,   262,   262,   262,   262,   262,   262,
2636 <     262,   262,   262,   262,   262,   262,   262,   262,   262,   262,
2637 <     262,   262,   262,   262,   262,   262,   262,   132,   456,   457,
2638 <     459,   262,   262,   262,   262,   262,   262,   262,   262,   262,
2639 <     262,   266,   560,   556,   262,   266,   262,   266,   401,   262,
2640 <     266,    20,    21,    51,    69,    76,    95,   123,   131,   174,
2641 <     193,   403,   262,   266,   262,   266,   133,   385,   262,   262,
2642 <     262,   262,   262,   132,   350,   351,   353,   262,   262,   262,
2643 <     262,   262,   262,   262,   262,   262,   262,   262,   262,   262,
2644 <     206,   207,   208,   209,   210,   212,   213,   215,   216,   217,
2645 <     220,   230,   231,   232,   234,   235,   236,   239,   242,   332,
2646 <     333,   262,   262,   262,   285,   262,   266,   262,   266,   458,
2647 <     262,   266,    10,    12,    27,    31,   244,   460,   496,   581,
2648 <     575,   403,   400,   476,   379,   352,   262,   266,     5,    38,
2649 <      50,    67,    74,    79,    81,    94,   127,   143,   161,   163,
2650 <     164,   231,   249,   259,   354,   262,   266,   430,   439,   460,
2651 <     457,   354,   351,   333
2202 >       0,   220,     0,     1,     4,    14,    17,    18,    23,    34,
2203 >      38,    39,    48,    62,    70,    71,    88,   102,   135,   144,
2204 >     145,   148,   149,   200,   221,   226,   231,   253,   259,   273,
2205 >     291,   308,   322,   337,   344,   348,   358,   367,   387,   397,
2206 >     403,   407,   417,   475,   492,   214,   215,   216,   216,   292,
2207 >     368,   398,   216,   408,   216,   323,   388,   309,   216,   216,
2208 >     274,   338,   216,   216,   349,   359,   216,     1,    24,    31,
2209 >      89,   254,   255,   256,   257,   258,     1,    21,    22,    27,
2210 >      66,    67,    73,    74,    75,    95,    96,   108,   109,   118,
2211 >     126,   476,   477,   478,   479,   480,   481,   482,   483,   484,
2212 >     485,   486,   487,   488,   489,   490,   491,   216,   216,   216,
2213 >       1,    61,   404,   405,   406,   216,     1,     6,     7,    12,
2214 >      20,    26,    28,    29,    30,    35,    41,    42,    44,    45,
2215 >      46,    50,    55,    59,    60,    63,    72,    79,    80,    82,
2216 >      83,    84,    85,    86,    97,   103,   104,   105,   107,   110,
2217 >     111,   114,   147,   151,   154,   155,   156,   157,   158,   161,
2218 >     162,   201,   202,   203,   206,   211,   418,   419,   420,   421,
2219 >     422,   423,   424,   425,   426,   427,   428,   429,   430,   431,
2220 >     432,   433,   434,   435,   436,   437,   438,   439,   440,   441,
2221 >     442,   443,   444,   445,   446,   447,   448,   449,   450,   451,
2222 >     452,   453,   454,   455,   456,   457,   458,   459,   460,   461,
2223 >     462,   463,   464,   468,   472,   473,   474,   216,   216,   216,
2224 >       1,   207,   260,   261,   262,   263,   264,     1,    87,   113,
2225 >     227,   228,   229,   230,   216,   216,     1,    37,    51,    52,
2226 >      53,    54,    69,   493,   494,   495,   496,   497,   498,   499,
2227 >     500,     1,    24,    57,    89,    91,    92,   127,   129,   130,
2228 >     131,   132,   146,   170,   180,   208,   209,   232,   233,   234,
2229 >     235,   240,   241,   242,   243,   244,   245,   246,   247,   248,
2230 >     249,   250,   251,   252,   216,   216,     1,    89,   345,   346,
2231 >     347,   214,   217,   217,   217,   215,   255,   217,   217,   217,
2232 >     217,   217,   217,   217,   217,   217,   217,   217,   217,   217,
2233 >     217,   215,   477,     1,    15,    16,    19,    76,    77,    78,
2234 >      81,    89,   100,   101,   115,   142,   183,   293,   294,   295,
2235 >     296,   297,   298,   299,   300,   301,   302,   303,   304,   305,
2236 >     306,   307,     1,     3,     5,    17,    32,    36,    56,    58,
2237 >      68,    89,   116,   143,   170,   208,   369,   370,   371,   372,
2238 >     373,   374,   375,   376,   377,   378,   382,   383,   384,   385,
2239 >     386,     1,    61,   119,   399,   400,   401,   402,   217,   215,
2240 >     405,     1,    89,   119,   150,   409,   413,   414,   415,   416,
2241 >     217,   217,   217,   217,   217,   217,   217,   217,   217,   217,
2242 >     217,   217,   217,   217,   217,   217,   217,   217,   217,   217,
2243 >     217,   217,   217,   217,   217,   217,   217,   217,   217,   469,
2244 >     217,   465,   217,   217,   217,   217,   217,   217,   217,   217,
2245 >     217,   217,   217,   217,   217,   217,   217,   217,   217,   215,
2246 >     419,     1,    17,    32,    36,   112,   120,   121,   152,   205,
2247 >     324,   325,   326,   327,   328,   329,   330,   334,   335,   336,
2248 >       1,   119,   150,   205,   389,   393,   394,   395,   396,     1,
2249 >      36,    56,    61,   116,   310,   314,   315,   316,   320,   321,
2250 >     214,   217,   215,   261,   213,   214,   217,   217,   215,   228,
2251 >       1,    17,    32,    36,    89,   112,   128,   191,   205,   275,
2252 >     276,   277,   278,   279,   280,   281,   282,   283,   287,     1,
2253 >      14,    93,   119,   339,   340,   341,   342,   343,   217,   217,
2254 >     217,   217,   217,   217,   215,   494,   214,   217,   217,   217,
2255 >     217,   217,   217,   217,   217,   217,   217,   217,   217,   217,
2256 >     217,   217,   215,   233,     1,    89,   150,   205,   350,   351,
2257 >     352,   353,   354,     1,    89,   150,   360,   361,   362,   363,
2258 >     217,   215,   346,   117,   117,   117,   214,    99,    99,   159,
2259 >      99,   223,   223,    99,    99,    99,   159,   159,    99,   223,
2260 >     159,   159,   214,   214,   217,   217,   217,   217,   217,   217,
2261 >     217,   217,   217,   217,   217,   217,   217,   215,   294,   214,
2262 >     217,   217,   217,   217,   379,   217,   217,   217,   217,   217,
2263 >     217,   217,   217,   215,   370,   217,   217,   215,   400,   117,
2264 >     214,   217,   217,   410,   215,   414,   159,   223,   223,    99,
2265 >     159,   159,    99,   117,   159,   223,   159,   223,    99,    99,
2266 >      99,   159,   159,   159,   223,    99,    99,   223,    99,    99,
2267 >     117,    99,    99,   159,   159,   217,   159,   217,   223,   223,
2268 >     159,   159,   159,   159,   159,   160,   159,   160,   159,   159,
2269 >     223,   223,   117,   223,   159,   159,   159,   214,   214,   217,
2270 >     217,   331,   217,   217,   217,   217,   217,   215,   325,   217,
2271 >     390,   217,   215,   394,   214,   311,   217,   217,   217,   215,
2272 >     315,   159,   214,   216,   117,   117,   214,   214,   217,   217,
2273 >     288,   217,   217,   217,   284,   217,   215,   276,   214,   217,
2274 >     217,   217,   215,   340,   159,   159,   117,   159,   159,   223,
2275 >     214,   117,   159,   117,   117,   117,   117,   117,   117,   133,
2276 >     134,   236,   237,   133,   134,   238,   239,   117,   117,    99,
2277 >     117,   117,   214,   214,   217,   355,   217,   215,   351,   214,
2278 >     217,   364,   215,   361,   117,   214,   214,   214,   214,   214,
2279 >     214,   214,   137,   138,   139,   140,   141,   222,   223,   214,
2280 >     214,   214,   214,   214,   214,   214,   214,   214,   214,   214,
2281 >      99,    99,   223,    99,    99,    99,    99,   117,    99,    99,
2282 >     223,    99,   225,   225,   214,   117,   177,   178,   117,   159,
2283 >     217,   117,   117,   117,   117,    99,   117,   117,   117,   214,
2284 >     117,   117,   214,   214,   117,   117,   217,   214,   214,   214,
2285 >     214,   214,   214,   214,   214,   214,   214,   214,   214,   214,
2286 >     214,   214,   214,   214,   214,   214,   214,   214,   214,   214,
2287 >     214,   214,   214,   214,   214,   214,   214,    51,   165,   166,
2288 >     167,   168,   169,   171,   172,   174,   175,   176,   179,   181,
2289 >     182,   184,   186,   188,   189,   192,   198,   470,   471,   214,
2290 >      51,   165,   166,   167,   168,   169,   171,   172,   174,   175,
2291 >     176,   179,   181,   182,   184,   186,   188,   189,   192,   198,
2292 >     466,   467,   214,   214,   214,   214,   214,   214,   214,   214,
2293 >     214,   214,   214,   214,   214,   214,   214,   214,   214,   214,
2294 >     214,   117,   159,   217,   117,    99,   117,   117,   117,   214,
2295 >     117,   217,   117,   214,   217,   117,   117,    99,   318,   319,
2296 >     214,   214,     1,    89,   150,   212,   265,   266,   267,   268,
2297 >     269,   214,   214,   117,   159,   217,   117,   117,   117,   217,
2298 >     117,   214,   117,   117,   117,   214,   214,   214,   214,   214,
2299 >     214,   214,   214,   214,   214,   214,   214,   214,   214,   214,
2300 >     214,   218,   214,   218,   214,   214,   214,   214,   214,   117,
2301 >     217,   117,   214,   117,   217,   214,   214,   222,   222,   222,
2302 >     222,   222,   214,   214,   214,   214,   214,   214,   214,   214,
2303 >     214,   214,   214,     9,    10,    11,   224,   225,   214,   214,
2304 >     214,   214,   214,   214,   214,     8,   190,   380,   381,   214,
2305 >     214,   214,   214,   214,   214,   214,   214,   214,   214,   214,
2306 >     214,   122,   411,   412,   214,   218,   214,   218,   214,   214,
2307 >      13,    33,    43,    49,    65,    90,    98,   136,   153,   332,
2308 >     333,   214,   214,   214,   214,   214,   214,   122,   391,   392,
2309 >     214,    51,   185,   190,   312,   313,   214,   214,   163,   218,
2310 >     317,   214,   217,   270,   217,   215,   266,   214,   214,     4,
2311 >      25,    40,    47,    64,    87,    94,   106,   123,   124,   125,
2312 >     173,   182,   187,   193,   197,   199,   204,   210,   289,   290,
2313 >     214,   214,   214,    51,   165,   166,   167,   168,   169,   171,
2314 >     172,   174,   175,   176,   179,   181,   182,   184,   186,   188,
2315 >     189,   192,   198,   285,   286,   214,   214,   214,   214,   237,
2316 >     239,   214,    64,   135,   164,   173,   179,   193,   195,   196,
2317 >     204,   210,   356,   357,   214,   214,    64,   135,   164,   173,
2318 >     179,   193,   195,   196,   204,   210,   365,   366,   224,   224,
2319 >     224,   214,   218,   214,   218,   471,   467,   214,   218,   214,
2320 >     218,   214,   218,    99,   319,   214,   117,   217,   194,   225,
2321 >     214,   214,   218,   214,   218,   214,   218,   214,   218,   381,
2322 >     412,   333,   392,   313,   214,    40,    62,    64,   102,   172,
2323 >     173,   205,   271,   272,   214,   214,   290,   286,   357,   366,
2324 >     214,   218,   272
2325   };
2326  
2327   #define yyerrok         (yyerrstatus = 0)
# Line 2663 | Line 2336 | static const yytype_uint16 yystos[] =
2336  
2337   /* Like YYERROR except do call yyerror.  This remains here temporarily
2338     to ease the transition to the new meaning of YYERROR, for GCC.
2339 <   Once GCC version 2 has supplanted version 1, this can go.  */
2339 >   Once GCC version 2 has supplanted version 1, this can go.  However,
2340 >   YYFAIL appears to be in use.  Nevertheless, it is formally deprecated
2341 >   in Bison 2.4.2's NEWS entry, where a plan to phase it out is
2342 >   discussed.  */
2343  
2344   #define YYFAIL          goto yyerrlab
2345 + #if defined YYFAIL
2346 +  /* This is here to suppress warnings from the GCC cpp's
2347 +     -Wunused-macros.  Normally we don't worry about that warning, but
2348 +     some users do, and we want to make it easy for users to remove
2349 +     YYFAIL uses, which will produce warnings from Bison 2.5.  */
2350 + #endif
2351  
2352   #define YYRECOVERING()  (!!yyerrstatus)
2353  
2354 < #define YYBACKUP(Token, Value)                                  \
2355 < do                                                              \
2356 <  if (yychar == YYEMPTY && yylen == 1)                          \
2357 <    {                                                           \
2358 <      yychar = (Token);                                         \
2359 <      yylval = (Value);                                         \
2360 <      yytoken = YYTRANSLATE (yychar);                           \
2361 <      YYPOPSTACK (1);                                           \
2362 <      goto yybackup;                                            \
2363 <    }                                                           \
2364 <  else                                                          \
2365 <    {                                                           \
2354 > #define YYBACKUP(Token, Value)                                  \
2355 > do                                                              \
2356 >  if (yychar == YYEMPTY)                                        \
2357 >    {                                                           \
2358 >      yychar = (Token);                                         \
2359 >      yylval = (Value);                                         \
2360 >      YYPOPSTACK (yylen);                                       \
2361 >      yystate = *yyssp;                                         \
2362 >      goto yybackup;                                            \
2363 >    }                                                           \
2364 >  else                                                          \
2365 >    {                                                           \
2366        yyerror (YY_("syntax error: cannot back up")); \
2367        YYERROR;                                                  \
2368      }                                                           \
2369   while (YYID (0))
2370  
2371 <
2371 > /* Error token number */
2372   #define YYTERROR        1
2373   #define YYERRCODE       256
2374  
2375  
2376 < /* YYLLOC_DEFAULT -- Set CURRENT to span from RHS[1] to RHS[N].
2695 <   If N is 0, then set CURRENT to the empty location which ends
2696 <   the previous symbol: RHS[0] (always defined).  */
2697 <
2698 < #define YYRHSLOC(Rhs, K) ((Rhs)[K])
2699 < #ifndef YYLLOC_DEFAULT
2700 < # define YYLLOC_DEFAULT(Current, Rhs, N)                                \
2701 <    do                                                                  \
2702 <      if (YYID (N))                                                    \
2703 <        {                                                               \
2704 <          (Current).first_line   = YYRHSLOC (Rhs, 1).first_line;        \
2705 <          (Current).first_column = YYRHSLOC (Rhs, 1).first_column;      \
2706 <          (Current).last_line    = YYRHSLOC (Rhs, N).last_line;         \
2707 <          (Current).last_column  = YYRHSLOC (Rhs, N).last_column;       \
2708 <        }                                                               \
2709 <      else                                                              \
2710 <        {                                                               \
2711 <          (Current).first_line   = (Current).last_line   =              \
2712 <            YYRHSLOC (Rhs, 0).last_line;                                \
2713 <          (Current).first_column = (Current).last_column =              \
2714 <            YYRHSLOC (Rhs, 0).last_column;                              \
2715 <        }                                                               \
2716 <    while (YYID (0))
2717 < #endif
2718 <
2719 <
2720 < /* YY_LOCATION_PRINT -- Print the location on the stream.
2721 <   This macro was not mandated originally: define only if we know
2722 <   we won't break user code: when these are the locations we know.  */
2723 <
2376 > /* This macro is provided for backward compatibility. */
2377   #ifndef YY_LOCATION_PRINT
2378 < # if YYLTYPE_IS_TRIVIAL
2726 < #  define YY_LOCATION_PRINT(File, Loc)                  \
2727 <     fprintf (File, "%d.%d-%d.%d",                      \
2728 <              (Loc).first_line, (Loc).first_column,     \
2729 <              (Loc).last_line,  (Loc).last_column)
2730 < # else
2731 < #  define YY_LOCATION_PRINT(File, Loc) ((void) 0)
2732 < # endif
2378 > # define YY_LOCATION_PRINT(File, Loc) ((void) 0)
2379   #endif
2380  
2381  
2382   /* YYLEX -- calling `yylex' with the right arguments.  */
2737
2383   #ifdef YYLEX_PARAM
2384   # define YYLEX yylex (YYLEX_PARAM)
2385   #else
# Line 2784 | Line 2429 | yy_symbol_value_print (yyoutput, yytype,
2429      YYSTYPE const * const yyvaluep;
2430   #endif
2431   {
2432 +  FILE *yyo = yyoutput;
2433 +  YYUSE (yyo);
2434    if (!yyvaluep)
2435      return;
2436   # ifdef YYPRINT
# Line 2921 | Line 2568 | int yydebug;
2568   # define YYMAXDEPTH 10000
2569   #endif
2570  
2924
2571  
2572   #if YYERROR_VERBOSE
2573  
# Line 3024 | Line 2670 | yytnamerr (char *yyres, const char *yyst
2670   }
2671   # endif
2672  
2673 < /* Copy into YYRESULT an error message about the unexpected token
2674 <   YYCHAR while in state YYSTATE.  Return the number of bytes copied,
2675 <   including the terminating null byte.  If YYRESULT is null, do not
2676 <   copy anything; just return the number of bytes that would be
2677 <   copied.  As a special case, return 0 if an ordinary "syntax error"
2678 <   message will do.  Return YYSIZE_MAXIMUM if overflow occurs during
2679 <   size calculation.  */
2680 < static YYSIZE_T
2681 < yysyntax_error (char *yyresult, int yystate, int yychar)
2673 > /* Copy into *YYMSG, which is of size *YYMSG_ALLOC, an error message
2674 >   about the unexpected token YYTOKEN for the state stack whose top is
2675 >   YYSSP.
2676 >
2677 >   Return 0 if *YYMSG was successfully written.  Return 1 if *YYMSG is
2678 >   not large enough to hold the message.  In that case, also set
2679 >   *YYMSG_ALLOC to the required number of bytes.  Return 2 if the
2680 >   required number of bytes is too large to store.  */
2681 > static int
2682 > yysyntax_error (YYSIZE_T *yymsg_alloc, char **yymsg,
2683 >                yytype_int16 *yyssp, int yytoken)
2684   {
2685 <  int yyn = yypact[yystate];
2685 >  YYSIZE_T yysize0 = yytnamerr (YY_NULL, yytname[yytoken]);
2686 >  YYSIZE_T yysize = yysize0;
2687 >  YYSIZE_T yysize1;
2688 >  enum { YYERROR_VERBOSE_ARGS_MAXIMUM = 5 };
2689 >  /* Internationalized format string. */
2690 >  const char *yyformat = YY_NULL;
2691 >  /* Arguments of yyformat. */
2692 >  char const *yyarg[YYERROR_VERBOSE_ARGS_MAXIMUM];
2693 >  /* Number of reported tokens (one for the "unexpected", one per
2694 >     "expected"). */
2695 >  int yycount = 0;
2696 >
2697 >  /* There are many possibilities here to consider:
2698 >     - Assume YYFAIL is not used.  It's too flawed to consider.  See
2699 >       <http://lists.gnu.org/archive/html/bison-patches/2009-12/msg00024.html>
2700 >       for details.  YYERROR is fine as it does not invoke this
2701 >       function.
2702 >     - If this state is a consistent state with a default action, then
2703 >       the only way this function was invoked is if the default action
2704 >       is an error action.  In that case, don't check for expected
2705 >       tokens because there are none.
2706 >     - The only way there can be no lookahead present (in yychar) is if
2707 >       this state is a consistent state with a default action.  Thus,
2708 >       detecting the absence of a lookahead is sufficient to determine
2709 >       that there is no unexpected or expected token to report.  In that
2710 >       case, just report a simple "syntax error".
2711 >     - Don't assume there isn't a lookahead just because this state is a
2712 >       consistent state with a default action.  There might have been a
2713 >       previous inconsistent state, consistent state with a non-default
2714 >       action, or user semantic action that manipulated yychar.
2715 >     - Of course, the expected token list depends on states to have
2716 >       correct lookahead information, and it depends on the parser not
2717 >       to perform extra reductions after fetching a lookahead from the
2718 >       scanner and before detecting a syntax error.  Thus, state merging
2719 >       (from LALR or IELR) and default reductions corrupt the expected
2720 >       token list.  However, the list is correct for canonical LR with
2721 >       one exception: it will still contain any token that will not be
2722 >       accepted due to an error action in a later state.
2723 >  */
2724 >  if (yytoken != YYEMPTY)
2725 >    {
2726 >      int yyn = yypact[*yyssp];
2727 >      yyarg[yycount++] = yytname[yytoken];
2728 >      if (!yypact_value_is_default (yyn))
2729 >        {
2730 >          /* Start YYX at -YYN if negative to avoid negative indexes in
2731 >             YYCHECK.  In other words, skip the first -YYN actions for
2732 >             this state because they are default actions.  */
2733 >          int yyxbegin = yyn < 0 ? -yyn : 0;
2734 >          /* Stay within bounds of both yycheck and yytname.  */
2735 >          int yychecklim = YYLAST - yyn + 1;
2736 >          int yyxend = yychecklim < YYNTOKENS ? yychecklim : YYNTOKENS;
2737 >          int yyx;
2738 >
2739 >          for (yyx = yyxbegin; yyx < yyxend; ++yyx)
2740 >            if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR
2741 >                && !yytable_value_is_error (yytable[yyx + yyn]))
2742 >              {
2743 >                if (yycount == YYERROR_VERBOSE_ARGS_MAXIMUM)
2744 >                  {
2745 >                    yycount = 1;
2746 >                    yysize = yysize0;
2747 >                    break;
2748 >                  }
2749 >                yyarg[yycount++] = yytname[yyx];
2750 >                yysize1 = yysize + yytnamerr (YY_NULL, yytname[yyx]);
2751 >                if (! (yysize <= yysize1
2752 >                       && yysize1 <= YYSTACK_ALLOC_MAXIMUM))
2753 >                  return 2;
2754 >                yysize = yysize1;
2755 >              }
2756 >        }
2757 >    }
2758  
2759 <  if (! (YYPACT_NINF < yyn && yyn <= YYLAST))
3040 <    return 0;
3041 <  else
2759 >  switch (yycount)
2760      {
2761 <      int yytype = YYTRANSLATE (yychar);
2762 <      YYSIZE_T yysize0 = yytnamerr (0, yytname[yytype]);
2763 <      YYSIZE_T yysize = yysize0;
2764 <      YYSIZE_T yysize1;
2765 <      int yysize_overflow = 0;
2766 <      enum { YYERROR_VERBOSE_ARGS_MAXIMUM = 5 };
2767 <      char const *yyarg[YYERROR_VERBOSE_ARGS_MAXIMUM];
2768 <      int yyx;
2769 <
2770 < # if 0
2771 <      /* This is so xgettext sees the translatable formats that are
2772 <         constructed on the fly.  */
2773 <      YY_("syntax error, unexpected %s");
2774 <      YY_("syntax error, unexpected %s, expecting %s");
2775 <      YY_("syntax error, unexpected %s, expecting %s or %s");
2776 <      YY_("syntax error, unexpected %s, expecting %s or %s or %s");
2777 <      YY_("syntax error, unexpected %s, expecting %s or %s or %s or %s");
2778 < # endif
2779 <      char *yyfmt;
2780 <      char const *yyf;
2781 <      static char const yyunexpected[] = "syntax error, unexpected %s";
2782 <      static char const yyexpecting[] = ", expecting %s";
2783 <      static char const yyor[] = " or %s";
2784 <      char yyformat[sizeof yyunexpected
2785 <                    + sizeof yyexpecting - 1
2786 <                    + ((YYERROR_VERBOSE_ARGS_MAXIMUM - 2)
2787 <                       * (sizeof yyor - 1))];
2788 <      char const *yyprefix = yyexpecting;
2789 <
2790 <      /* Start YYX at -YYN if negative to avoid negative indexes in
2791 <         YYCHECK.  */
2792 <      int yyxbegin = yyn < 0 ? -yyn : 0;
2793 <
2794 <      /* Stay within bounds of both yycheck and yytname.  */
2795 <      int yychecklim = YYLAST - yyn + 1;
2796 <      int yyxend = yychecklim < YYNTOKENS ? yychecklim : YYNTOKENS;
2797 <      int yycount = 1;
2798 <
2799 <      yyarg[0] = yytname[yytype];
2800 <      yyfmt = yystpcpy (yyformat, yyunexpected);
2801 <
2802 <      for (yyx = yyxbegin; yyx < yyxend; ++yyx)
2803 <        if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR)
2804 <          {
2805 <            if (yycount == YYERROR_VERBOSE_ARGS_MAXIMUM)
2806 <              {
3089 <                yycount = 1;
3090 <                yysize = yysize0;
3091 <                yyformat[sizeof yyunexpected - 1] = '\0';
3092 <                break;
3093 <              }
3094 <            yyarg[yycount++] = yytname[yyx];
3095 <            yysize1 = yysize + yytnamerr (0, yytname[yyx]);
3096 <            yysize_overflow |= (yysize1 < yysize);
3097 <            yysize = yysize1;
3098 <            yyfmt = yystpcpy (yyfmt, yyprefix);
3099 <            yyprefix = yyor;
3100 <          }
3101 <
3102 <      yyf = YY_(yyformat);
3103 <      yysize1 = yysize + yystrlen (yyf);
3104 <      yysize_overflow |= (yysize1 < yysize);
3105 <      yysize = yysize1;
3106 <
3107 <      if (yysize_overflow)
3108 <        return YYSIZE_MAXIMUM;
3109 <
3110 <      if (yyresult)
3111 <        {
3112 <          /* Avoid sprintf, as that infringes on the user's name space.
3113 <             Don't have undefined behavior even if the translation
3114 <             produced a string with the wrong number of "%s"s.  */
3115 <          char *yyp = yyresult;
3116 <          int yyi = 0;
3117 <          while ((*yyp = *yyf) != '\0')
3118 <            {
3119 <              if (*yyp == '%' && yyf[1] == 's' && yyi < yycount)
3120 <                {
3121 <                  yyp += yytnamerr (yyp, yyarg[yyi++]);
3122 <                  yyf += 2;
3123 <                }
3124 <              else
3125 <                {
3126 <                  yyp++;
3127 <                  yyf++;
3128 <                }
3129 <            }
3130 <        }
3131 <      return yysize;
3132 <    }
2761 > # define YYCASE_(N, S)                      \
2762 >      case N:                               \
2763 >        yyformat = S;                       \
2764 >      break
2765 >      YYCASE_(0, YY_("syntax error"));
2766 >      YYCASE_(1, YY_("syntax error, unexpected %s"));
2767 >      YYCASE_(2, YY_("syntax error, unexpected %s, expecting %s"));
2768 >      YYCASE_(3, YY_("syntax error, unexpected %s, expecting %s or %s"));
2769 >      YYCASE_(4, YY_("syntax error, unexpected %s, expecting %s or %s or %s"));
2770 >      YYCASE_(5, YY_("syntax error, unexpected %s, expecting %s or %s or %s or %s"));
2771 > # undef YYCASE_
2772 >    }
2773 >
2774 >  yysize1 = yysize + yystrlen (yyformat);
2775 >  if (! (yysize <= yysize1 && yysize1 <= YYSTACK_ALLOC_MAXIMUM))
2776 >    return 2;
2777 >  yysize = yysize1;
2778 >
2779 >  if (*yymsg_alloc < yysize)
2780 >    {
2781 >      *yymsg_alloc = 2 * yysize;
2782 >      if (! (yysize <= *yymsg_alloc
2783 >             && *yymsg_alloc <= YYSTACK_ALLOC_MAXIMUM))
2784 >        *yymsg_alloc = YYSTACK_ALLOC_MAXIMUM;
2785 >      return 1;
2786 >    }
2787 >
2788 >  /* Avoid sprintf, as that infringes on the user's name space.
2789 >     Don't have undefined behavior even if the translation
2790 >     produced a string with the wrong number of "%s"s.  */
2791 >  {
2792 >    char *yyp = *yymsg;
2793 >    int yyi = 0;
2794 >    while ((*yyp = *yyformat) != '\0')
2795 >      if (*yyp == '%' && yyformat[1] == 's' && yyi < yycount)
2796 >        {
2797 >          yyp += yytnamerr (yyp, yyarg[yyi++]);
2798 >          yyformat += 2;
2799 >        }
2800 >      else
2801 >        {
2802 >          yyp++;
2803 >          yyformat++;
2804 >        }
2805 >  }
2806 >  return 0;
2807   }
2808   #endif /* YYERROR_VERBOSE */
3135
2809  
2810   /*-----------------------------------------------.
2811   | Release the memory associated to this symbol.  |
# Line 3165 | Line 2838 | yydestruct (yymsg, yytype, yyvaluep)
2838      }
2839   }
2840  
2841 < /* Prevent warnings from -Wmissing-prototypes.  */
3169 < #ifdef YYPARSE_PARAM
3170 < #if defined __STDC__ || defined __cplusplus
3171 < int yyparse (void *YYPARSE_PARAM);
3172 < #else
3173 < int yyparse ();
3174 < #endif
3175 < #else /* ! YYPARSE_PARAM */
3176 < #if defined __STDC__ || defined __cplusplus
3177 < int yyparse (void);
3178 < #else
3179 < int yyparse ();
3180 < #endif
3181 < #endif /* ! YYPARSE_PARAM */
2841 >
2842  
2843  
2844   /* The lookahead symbol.  */
2845   int yychar;
2846  
2847 +
2848 + #ifndef YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
2849 + # define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
2850 + # define YY_IGNORE_MAYBE_UNINITIALIZED_END
2851 + #endif
2852 + #ifndef YY_INITIAL_VALUE
2853 + # define YY_INITIAL_VALUE(Value) /* Nothing. */
2854 + #endif
2855 +
2856   /* The semantic value of the lookahead symbol.  */
2857 < YYSTYPE yylval;
2857 > YYSTYPE yylval YY_INITIAL_VALUE(yyval_default);
2858  
2859   /* Number of syntax errors so far.  */
2860   int yynerrs;
2861  
2862  
2863 <
2864 < /*-------------------------.
2865 < | yyparse or yypush_parse.  |
3197 < `-------------------------*/
2863 > /*----------.
2864 > | yyparse.  |
2865 > `----------*/
2866  
2867   #ifdef YYPARSE_PARAM
2868   #if (defined __STDC__ || defined __C99__FUNC__ \
# Line 3218 | Line 2886 | yyparse ()
2886   #endif
2887   #endif
2888   {
3221
3222
2889      int yystate;
2890      /* Number of tokens to shift before error messages enabled.  */
2891      int yyerrstatus;
# Line 3228 | Line 2894 | yyparse ()
2894         `yyss': related to states.
2895         `yyvs': related to semantic values.
2896  
2897 <       Refer to the stacks thru separate pointers, to allow yyoverflow
2897 >       Refer to the stacks through separate pointers, to allow yyoverflow
2898         to reallocate them elsewhere.  */
2899  
2900      /* The state stack.  */
# Line 3246 | Line 2912 | yyparse ()
2912    int yyn;
2913    int yyresult;
2914    /* Lookahead token as an internal (translated) token number.  */
2915 <  int yytoken;
2915 >  int yytoken = 0;
2916    /* The variables used to return semantic value and location from the
2917       action routines.  */
2918    YYSTYPE yyval;
# Line 3264 | Line 2930 | yyparse ()
2930       Keep to zero when no symbol should be popped.  */
2931    int yylen = 0;
2932  
2933 <  yytoken = 0;
2934 <  yyss = yyssa;
3269 <  yyvs = yyvsa;
2933 >  yyssp = yyss = yyssa;
2934 >  yyvsp = yyvs = yyvsa;
2935    yystacksize = YYINITDEPTH;
2936  
2937    YYDPRINTF ((stderr, "Starting parse\n"));
# Line 3275 | Line 2940 | yyparse ()
2940    yyerrstatus = 0;
2941    yynerrs = 0;
2942    yychar = YYEMPTY; /* Cause a token to be read.  */
3278
3279  /* Initialize stack pointers.
3280     Waste one element of value and location stack
3281     so that they stay on the same level as the state stack.
3282     The wasted elements are never initialized.  */
3283  yyssp = yyss;
3284  yyvsp = yyvs;
3285
2943    goto yysetstate;
2944  
2945   /*------------------------------------------------------------.
# Line 3374 | Line 3031 | yybackup:
3031  
3032    /* First try to decide what to do without reference to lookahead token.  */
3033    yyn = yypact[yystate];
3034 <  if (yyn == YYPACT_NINF)
3034 >  if (yypact_value_is_default (yyn))
3035      goto yydefault;
3036  
3037    /* Not known => get a lookahead token if don't already have one.  */
# Line 3405 | Line 3062 | yybackup:
3062    yyn = yytable[yyn];
3063    if (yyn <= 0)
3064      {
3065 <      if (yyn == 0 || yyn == YYTABLE_NINF)
3066 <        goto yyerrlab;
3065 >      if (yytable_value_is_error (yyn))
3066 >        goto yyerrlab;
3067        yyn = -yyn;
3068        goto yyreduce;
3069      }
# Line 3423 | Line 3080 | yybackup:
3080    yychar = YYEMPTY;
3081  
3082    yystate = yyn;
3083 +  YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
3084    *++yyvsp = yylval;
3085 +  YY_IGNORE_MAYBE_UNINITIALIZED_END
3086  
3087    goto yynewstate;
3088  
# Line 3460 | Line 3119 | yyreduce:
3119    switch (yyn)
3120      {
3121          case 26:
3122 <
3123 < /* Line 1455 of yacc.c  */
3465 < #line 426 "ircd_parser.y"
3122 > /* Line 1778 of yacc.c  */
3123 > #line 383 "conf_parser.y"
3124      { (yyval.number) = 0; }
3125      break;
3126  
3127    case 28:
3128 <
3129 < /* Line 1455 of yacc.c  */
3472 < #line 428 "ircd_parser.y"
3128 > /* Line 1778 of yacc.c  */
3129 > #line 385 "conf_parser.y"
3130      {
3131                          (yyval.number) = (yyvsp[(1) - (2)].number) + (yyvsp[(2) - (2)].number);
3132                  }
3133      break;
3134  
3135    case 29:
3136 <
3137 < /* Line 1455 of yacc.c  */
3481 < #line 432 "ircd_parser.y"
3136 > /* Line 1778 of yacc.c  */
3137 > #line 389 "conf_parser.y"
3138      {
3139                          (yyval.number) = (yyvsp[(1) - (3)].number) + (yyvsp[(3) - (3)].number);
3140                  }
3141      break;
3142  
3143    case 30:
3144 <
3145 < /* Line 1455 of yacc.c  */
3490 < #line 436 "ircd_parser.y"
3144 > /* Line 1778 of yacc.c  */
3145 > #line 393 "conf_parser.y"
3146      {
3147                          (yyval.number) = (yyvsp[(1) - (3)].number) * 60 + (yyvsp[(3) - (3)].number);
3148                  }
3149      break;
3150  
3151    case 31:
3152 <
3153 < /* Line 1455 of yacc.c  */
3499 < #line 440 "ircd_parser.y"
3152 > /* Line 1778 of yacc.c  */
3153 > #line 397 "conf_parser.y"
3154      {
3155                          (yyval.number) = (yyvsp[(1) - (3)].number) * 60 * 60 + (yyvsp[(3) - (3)].number);
3156                  }
3157      break;
3158  
3159    case 32:
3160 <
3161 < /* Line 1455 of yacc.c  */
3508 < #line 444 "ircd_parser.y"
3160 > /* Line 1778 of yacc.c  */
3161 > #line 401 "conf_parser.y"
3162      {
3163                          (yyval.number) = (yyvsp[(1) - (3)].number) * 60 * 60 * 24 + (yyvsp[(3) - (3)].number);
3164                  }
3165      break;
3166  
3167    case 33:
3168 <
3169 < /* Line 1455 of yacc.c  */
3517 < #line 448 "ircd_parser.y"
3168 > /* Line 1778 of yacc.c  */
3169 > #line 405 "conf_parser.y"
3170      {
3171                          (yyval.number) = (yyvsp[(1) - (3)].number) * 60 * 60 * 24 * 7 + (yyvsp[(3) - (3)].number);
3172                  }
3173      break;
3174  
3175    case 34:
3176 <
3177 < /* Line 1455 of yacc.c  */
3526 < #line 453 "ircd_parser.y"
3176 > /* Line 1778 of yacc.c  */
3177 > #line 410 "conf_parser.y"
3178      { (yyval.number) = 0; }
3179      break;
3180  
3181    case 36:
3182 <
3183 < /* Line 1455 of yacc.c  */
3533 < #line 454 "ircd_parser.y"
3182 > /* Line 1778 of yacc.c  */
3183 > #line 411 "conf_parser.y"
3184      { (yyval.number) = (yyvsp[(1) - (2)].number) + (yyvsp[(2) - (2)].number); }
3185      break;
3186  
3187    case 37:
3188 <
3189 < /* Line 1455 of yacc.c  */
3540 < #line 455 "ircd_parser.y"
3188 > /* Line 1778 of yacc.c  */
3189 > #line 412 "conf_parser.y"
3190      { (yyval.number) = (yyvsp[(1) - (3)].number) + (yyvsp[(3) - (3)].number); }
3191      break;
3192  
3193    case 38:
3194 <
3195 < /* Line 1455 of yacc.c  */
3547 < #line 456 "ircd_parser.y"
3194 > /* Line 1778 of yacc.c  */
3195 > #line 413 "conf_parser.y"
3196      { (yyval.number) = (yyvsp[(1) - (3)].number) * 1024 + (yyvsp[(3) - (3)].number); }
3197      break;
3198  
3199    case 39:
3200 <
3201 < /* Line 1455 of yacc.c  */
3554 < #line 457 "ircd_parser.y"
3200 > /* Line 1778 of yacc.c  */
3201 > #line 414 "conf_parser.y"
3202      { (yyval.number) = (yyvsp[(1) - (3)].number) * 1024 * 1024 + (yyvsp[(3) - (3)].number); }
3203      break;
3204  
3205    case 46:
3206 <
3207 < /* Line 1455 of yacc.c  */
3561 < #line 471 "ircd_parser.y"
3206 > /* Line 1778 of yacc.c  */
3207 > #line 428 "conf_parser.y"
3208      {
3563 #ifndef STATIC_MODULES /* NOOP in the static case */
3209    if (conf_parser_ctx.pass == 2)
3210      add_conf_module(libio_basename(yylval.string));
3566 #endif
3211   }
3212      break;
3213  
3214    case 47:
3215 <
3216 < /* Line 1455 of yacc.c  */
3573 < #line 479 "ircd_parser.y"
3215 > /* Line 1778 of yacc.c  */
3216 > #line 434 "conf_parser.y"
3217      {
3575 #ifndef STATIC_MODULES
3218    if (conf_parser_ctx.pass == 2)
3219      mod_add_path(yylval.string);
3578 #endif
3220   }
3221      break;
3222  
3223 <  case 64:
3224 <
3225 < /* Line 1455 of yacc.c  */
3585 < #line 501 "ircd_parser.y"
3223 >  case 71:
3224 > /* Line 1778 of yacc.c  */
3225 > #line 459 "conf_parser.y"
3226      {
3227 <  if (conf_parser_ctx.boot && conf_parser_ctx.pass == 2)
3228 <    ServerInfo.tls_version = 0;
3227 > #ifdef HAVE_LIBCRYPTO
3228 >  if (conf_parser_ctx.pass == 2 && ServerInfo.client_ctx)
3229 >    SSL_CTX_clear_options(ServerInfo.client_ctx, SSL_OP_NO_SSLv3);
3230 > #endif
3231   }
3232      break;
3233  
3234 <  case 65:
3235 <
3236 < /* Line 1455 of yacc.c  */
3595 < #line 505 "ircd_parser.y"
3234 >  case 72:
3235 > /* Line 1778 of yacc.c  */
3236 > #line 465 "conf_parser.y"
3237      {
3238 <  if (conf_parser_ctx.boot && conf_parser_ctx.pass == 2)
3239 <  {
3240 <    if (!(ServerInfo.tls_version & CONF_SERVER_INFO_TLS_VERSION_SSLV3))
3241 <      SSL_CTX_set_options(ServerInfo.server_ctx, SSL_OP_NO_SSLv3);
3601 <    if (!(ServerInfo.tls_version & CONF_SERVER_INFO_TLS_VERSION_TLSV1))
3602 <      SSL_CTX_set_options(ServerInfo.server_ctx, SSL_OP_NO_TLSv1);
3603 <  }
3238 > #ifdef HAVE_LIBCRYPTO
3239 >  if (conf_parser_ctx.pass == 2 && ServerInfo.client_ctx)
3240 >    SSL_CTX_clear_options(ServerInfo.client_ctx, SSL_OP_NO_TLSv1);
3241 > #endif
3242   }
3243      break;
3244  
3245 <  case 68:
3246 <
3247 < /* Line 1455 of yacc.c  */
3610 < #line 517 "ircd_parser.y"
3245 >  case 75:
3246 > /* Line 1778 of yacc.c  */
3247 > #line 474 "conf_parser.y"
3248      {
3249 <  if (conf_parser_ctx.boot && conf_parser_ctx.pass == 2)
3250 <    ServerInfo.tls_version |= CONF_SERVER_INFO_TLS_VERSION_SSLV3;
3249 > #ifdef HAVE_LIBCRYPTO
3250 >  if (conf_parser_ctx.pass == 2 && ServerInfo.server_ctx)
3251 >    SSL_CTX_clear_options(ServerInfo.server_ctx, SSL_OP_NO_SSLv3);
3252 > #endif
3253   }
3254      break;
3255  
3256 <  case 69:
3257 <
3258 < /* Line 1455 of yacc.c  */
3620 < #line 521 "ircd_parser.y"
3256 >  case 76:
3257 > /* Line 1778 of yacc.c  */
3258 > #line 480 "conf_parser.y"
3259      {
3260 <  if (conf_parser_ctx.boot && conf_parser_ctx.pass == 2)
3261 <    ServerInfo.tls_version |= CONF_SERVER_INFO_TLS_VERSION_TLSV1;
3260 > #ifdef HAVE_LIBCRYPTO
3261 >  if (conf_parser_ctx.pass == 2 && ServerInfo.server_ctx)
3262 >    SSL_CTX_clear_options(ServerInfo.server_ctx, SSL_OP_NO_TLSv1);
3263 > #endif
3264   }
3265      break;
3266  
3267 <  case 70:
3268 <
3269 < /* Line 1455 of yacc.c  */
3630 < #line 527 "ircd_parser.y"
3267 >  case 77:
3268 > /* Line 1778 of yacc.c  */
3269 > #line 488 "conf_parser.y"
3270      {
3271   #ifdef HAVE_LIBCRYPTO
3272    if (conf_parser_ctx.pass == 2 && ServerInfo.server_ctx)
# Line 3639 | Line 3278 | yyreduce:
3278      }
3279  
3280      if (SSL_CTX_use_certificate_file(ServerInfo.server_ctx, yylval.string,
3281 +                                     SSL_FILETYPE_PEM) <= 0 ||
3282 +        SSL_CTX_use_certificate_file(ServerInfo.client_ctx, yylval.string,
3283                                       SSL_FILETYPE_PEM) <= 0)
3284      {
3285        yyerror(ERR_lib_error_string(ERR_get_error()));
# Line 3646 | Line 3287 | yyreduce:
3287      }
3288  
3289      if (SSL_CTX_use_PrivateKey_file(ServerInfo.server_ctx, ServerInfo.rsa_private_key_file,
3290 +                                    SSL_FILETYPE_PEM) <= 0 ||
3291 +        SSL_CTX_use_PrivateKey_file(ServerInfo.client_ctx, ServerInfo.rsa_private_key_file,
3292                                      SSL_FILETYPE_PEM) <= 0)
3293      {
3294        yyerror(ERR_lib_error_string(ERR_get_error()));
3295        break;
3296      }
3297  
3298 <    if (!SSL_CTX_check_private_key(ServerInfo.server_ctx))
3298 >    if (!SSL_CTX_check_private_key(ServerInfo.server_ctx) ||
3299 >        !SSL_CTX_check_private_key(ServerInfo.client_ctx))
3300      {
3301        yyerror(ERR_lib_error_string(ERR_get_error()));
3302        break;
# Line 3662 | Line 3306 | yyreduce:
3306   }
3307      break;
3308  
3309 <  case 71:
3310 <
3311 < /* Line 1455 of yacc.c  */
3668 < #line 561 "ircd_parser.y"
3309 >  case 78:
3310 > /* Line 1778 of yacc.c  */
3311 > #line 527 "conf_parser.y"
3312      {
3313   #ifdef HAVE_LIBCRYPTO
3314    if (conf_parser_ctx.pass == 1)
# Line 3684 | Line 3327 | yyreduce:
3327        ServerInfo.rsa_private_key_file = NULL;
3328      }
3329  
3330 <    DupString(ServerInfo.rsa_private_key_file, yylval.string);
3330 >    ServerInfo.rsa_private_key_file = xstrdup(yylval.string);
3331  
3332      if ((file = BIO_new_file(yylval.string, "r")) == NULL)
3333      {
# Line 3692 | Line 3335 | yyreduce:
3335        break;
3336      }
3337  
3338 <    ServerInfo.rsa_private_key = (RSA *)PEM_read_bio_RSAPrivateKey(file, NULL,
3696 <      0, NULL);
3338 >    ServerInfo.rsa_private_key = PEM_read_bio_RSAPrivateKey(file, NULL, 0, NULL);
3339  
3340      BIO_set_close(file, BIO_CLOSE);
3341      BIO_free(file);
# Line 3726 | Line 3368 | yyreduce:
3368   }
3369      break;
3370  
3371 <  case 72:
3371 >  case 79:
3372 > /* Line 1778 of yacc.c  */
3373 > #line 586 "conf_parser.y"
3374 >    {
3375 > /* TBD - XXX: error reporting */
3376 > #ifdef HAVE_LIBCRYPTO
3377 >  if (conf_parser_ctx.pass == 2 && ServerInfo.server_ctx)
3378 >  {
3379 >    BIO *file = BIO_new_file(yylval.string, "r");
3380  
3381 < /* Line 1455 of yacc.c  */
3382 < #line 621 "ircd_parser.y"
3381 >    if (file)
3382 >    {
3383 >      DH *dh = PEM_read_bio_DHparams(file, NULL, NULL, NULL);
3384 >
3385 >      BIO_free(file);
3386 >
3387 >      if (dh)
3388 >      {
3389 >        if (DH_size(dh) < 128)
3390 >          ilog(LOG_TYPE_IRCD, "Ignoring serverinfo::ssl_dh_param_file -- need at least a 1024 bit DH prime size");
3391 >        else
3392 >          SSL_CTX_set_tmp_dh(ServerInfo.server_ctx, dh);
3393 >
3394 >        DH_free(dh);
3395 >      }
3396 >    }
3397 >  }
3398 > #endif
3399 > }
3400 >    break;
3401 >
3402 >  case 80:
3403 > /* Line 1778 of yacc.c  */
3404 > #line 614 "conf_parser.y"
3405 >    {
3406 > #ifdef HAVE_LIBCRYPTO
3407 >  if (conf_parser_ctx.pass == 2 && ServerInfo.server_ctx)
3408 >    SSL_CTX_set_cipher_list(ServerInfo.server_ctx, yylval.string);
3409 > #endif
3410 > }
3411 >    break;
3412 >
3413 >  case 81:
3414 > /* Line 1778 of yacc.c  */
3415 > #line 622 "conf_parser.y"
3416      {
3417    /* this isn't rehashable */
3418 <  if (conf_parser_ctx.pass == 2)
3418 >  if (conf_parser_ctx.pass == 2 && !ServerInfo.name)
3419    {
3420 <    if (ServerInfo.name == NULL)
3420 >    if (valid_servname(yylval.string))
3421 >      ServerInfo.name = xstrdup(yylval.string);
3422 >    else
3423      {
3424 <      /* the ircd will exit() in main() if we dont set one */
3425 <      if (strlen(yylval.string) <= HOSTLEN)
3741 <        DupString(ServerInfo.name, yylval.string);
3424 >      ilog(LOG_TYPE_IRCD, "Ignoring serverinfo::name -- invalid name. Aborting.");
3425 >      exit(0);
3426      }
3427    }
3428   }
3429      break;
3430  
3431 <  case 73:
3432 <
3433 < /* Line 1455 of yacc.c  */
3750 < #line 635 "ircd_parser.y"
3431 >  case 82:
3432 > /* Line 1778 of yacc.c  */
3433 > #line 637 "conf_parser.y"
3434      {
3435    /* this isn't rehashable */
3436    if (conf_parser_ctx.pass == 2 && !ServerInfo.sid)
3437    {
3438      if (valid_sid(yylval.string))
3439 <      DupString(ServerInfo.sid, yylval.string);
3439 >      ServerInfo.sid = xstrdup(yylval.string);
3440      else
3441      {
3442 <      ilog(L_ERROR, "Ignoring config file entry SID -- invalid SID. Aborting.");
3442 >      ilog(LOG_TYPE_IRCD, "Ignoring serverinfo::sid -- invalid SID. Aborting.");
3443        exit(0);
3444      }
3445    }
3446   }
3447      break;
3448  
3449 <  case 74:
3450 <
3451 < /* Line 1455 of yacc.c  */
3769 < #line 650 "ircd_parser.y"
3449 >  case 83:
3450 > /* Line 1778 of yacc.c  */
3451 > #line 652 "conf_parser.y"
3452      {
3453    if (conf_parser_ctx.pass == 2)
3454    {
3455      MyFree(ServerInfo.description);
3456 <    DupString(ServerInfo.description,yylval.string);
3456 >    ServerInfo.description = xstrdup(yylval.string);
3457    }
3458   }
3459      break;
3460  
3461 <  case 75:
3462 <
3463 < /* Line 1455 of yacc.c  */
3782 < #line 659 "ircd_parser.y"
3461 >  case 84:
3462 > /* Line 1778 of yacc.c  */
3463 > #line 661 "conf_parser.y"
3464      {
3465    if (conf_parser_ctx.pass == 2)
3466    {
# Line 3789 | Line 3470 | yyreduce:
3470        p = '\0';
3471  
3472      MyFree(ServerInfo.network_name);
3473 <    DupString(ServerInfo.network_name, yylval.string);
3473 >    ServerInfo.network_name = xstrdup(yylval.string);
3474    }
3475   }
3476      break;
3477  
3478 <  case 76:
3479 <
3480 < /* Line 1455 of yacc.c  */
3800 < #line 673 "ircd_parser.y"
3478 >  case 85:
3479 > /* Line 1778 of yacc.c  */
3480 > #line 675 "conf_parser.y"
3481      {
3482    if (conf_parser_ctx.pass == 2)
3483    {
3484      MyFree(ServerInfo.network_desc);
3485 <    DupString(ServerInfo.network_desc, yylval.string);
3485 >    ServerInfo.network_desc = xstrdup(yylval.string);
3486    }
3487   }
3488      break;
3489  
3490 <  case 77:
3491 <
3492 < /* Line 1455 of yacc.c  */
3813 < #line 682 "ircd_parser.y"
3490 >  case 86:
3491 > /* Line 1778 of yacc.c  */
3492 > #line 684 "conf_parser.y"
3493      {
3494    if (conf_parser_ctx.pass == 2 && *yylval.string != '*')
3495    {
# Line 3822 | Line 3501 | yyreduce:
3501      hints.ai_socktype = SOCK_STREAM;
3502      hints.ai_flags    = AI_PASSIVE | AI_NUMERICHOST;
3503  
3504 <    if (irc_getaddrinfo(yylval.string, NULL, &hints, &res))
3505 <      ilog(L_ERROR, "Invalid netmask for server vhost(%s)", yylval.string);
3504 >    if (getaddrinfo(yylval.string, NULL, &hints, &res))
3505 >      ilog(LOG_TYPE_IRCD, "Invalid netmask for server vhost(%s)", yylval.string);
3506      else
3507      {
3508        assert(res != NULL);
# Line 3831 | Line 3510 | yyreduce:
3510        memcpy(&ServerInfo.ip, res->ai_addr, res->ai_addrlen);
3511        ServerInfo.ip.ss.ss_family = res->ai_family;
3512        ServerInfo.ip.ss_len = res->ai_addrlen;
3513 <      irc_freeaddrinfo(res);
3513 >      freeaddrinfo(res);
3514  
3515        ServerInfo.specific_ipv4_vhost = 1;
3516      }
# Line 3839 | Line 3518 | yyreduce:
3518   }
3519      break;
3520  
3521 <  case 78:
3522 <
3523 < /* Line 1455 of yacc.c  */
3845 < #line 710 "ircd_parser.y"
3521 >  case 87:
3522 > /* Line 1778 of yacc.c  */
3523 > #line 712 "conf_parser.y"
3524      {
3525   #ifdef IPV6
3526    if (conf_parser_ctx.pass == 2 && *yylval.string != '*')
# Line 3855 | Line 3533 | yyreduce:
3533      hints.ai_socktype = SOCK_STREAM;
3534      hints.ai_flags    = AI_PASSIVE | AI_NUMERICHOST;
3535  
3536 <    if (irc_getaddrinfo(yylval.string, NULL, &hints, &res))
3537 <      ilog(L_ERROR, "Invalid netmask for server vhost6(%s)", yylval.string);
3536 >    if (getaddrinfo(yylval.string, NULL, &hints, &res))
3537 >      ilog(LOG_TYPE_IRCD, "Invalid netmask for server vhost6(%s)", yylval.string);
3538      else
3539      {
3540        assert(res != NULL);
# Line 3864 | Line 3542 | yyreduce:
3542        memcpy(&ServerInfo.ip6, res->ai_addr, res->ai_addrlen);
3543        ServerInfo.ip6.ss.ss_family = res->ai_family;
3544        ServerInfo.ip6.ss_len = res->ai_addrlen;
3545 <      irc_freeaddrinfo(res);
3545 >      freeaddrinfo(res);
3546  
3547        ServerInfo.specific_ipv6_vhost = 1;
3548      }
# Line 3873 | Line 3551 | yyreduce:
3551   }
3552      break;
3553  
3554 <  case 79:
3555 <
3556 < /* Line 1455 of yacc.c  */
3879 < #line 740 "ircd_parser.y"
3554 >  case 88:
3555 > /* Line 1778 of yacc.c  */
3556 > #line 742 "conf_parser.y"
3557      {
3558    if (conf_parser_ctx.pass == 2)
3559    {
# Line 3900 | Line 3577 | yyreduce:
3577   }
3578      break;
3579  
3580 <  case 80:
3581 <
3582 < /* Line 1455 of yacc.c  */
3906 < #line 763 "ircd_parser.y"
3580 >  case 89:
3581 > /* Line 1778 of yacc.c  */
3582 > #line 765 "conf_parser.y"
3583      {
3584    if (conf_parser_ctx.pass == 2)
3585 <  {
3910 <    if (yylval.number)
3911 <    {
3912 <      ServerInfo.hub = 1;
3913 <      delete_capability("HUB");
3914 <      add_capability("HUB", CAP_HUB, 1);
3915 <    }
3916 <    else if (ServerInfo.hub)
3917 <    {
3918 <
3919 <      ServerInfo.hub = 0;
3920 <      delete_capability("HUB");
3921 <    }
3922 <  }
3585 >    ServerInfo.hub = yylval.number;
3586   }
3587      break;
3588  
3589 <  case 88:
3590 <
3591 < /* Line 1455 of yacc.c  */
3929 < #line 791 "ircd_parser.y"
3589 >  case 97:
3590 > /* Line 1778 of yacc.c  */
3591 > #line 780 "conf_parser.y"
3592      {
3593    if (conf_parser_ctx.pass == 2)
3594    {
3595      MyFree(AdminInfo.name);
3596 <    DupString(AdminInfo.name, yylval.string);
3596 >    AdminInfo.name = xstrdup(yylval.string);
3597    }
3598   }
3599      break;
3600  
3601 <  case 89:
3602 <
3603 < /* Line 1455 of yacc.c  */
3942 < #line 800 "ircd_parser.y"
3601 >  case 98:
3602 > /* Line 1778 of yacc.c  */
3603 > #line 789 "conf_parser.y"
3604      {
3605    if (conf_parser_ctx.pass == 2)
3606    {
3607      MyFree(AdminInfo.email);
3608 <    DupString(AdminInfo.email, yylval.string);
3608 >    AdminInfo.email = xstrdup(yylval.string);
3609    }
3610   }
3611      break;
3612  
3613 <  case 90:
3614 <
3615 < /* Line 1455 of yacc.c  */
3955 < #line 809 "ircd_parser.y"
3613 >  case 99:
3614 > /* Line 1778 of yacc.c  */
3615 > #line 798 "conf_parser.y"
3616      {
3617    if (conf_parser_ctx.pass == 2)
3618    {
3619      MyFree(AdminInfo.description);
3620 <    DupString(AdminInfo.description, yylval.string);
3620 >    AdminInfo.description = xstrdup(yylval.string);
3621    }
3622   }
3623      break;
3624  
3625 <  case 107:
3626 <
3627 < /* Line 1455 of yacc.c  */
3968 < #line 836 "ircd_parser.y"
3969 <    {
3970 <                        }
3971 <    break;
3972 <
3973 <  case 108:
3974 <
3975 < /* Line 1455 of yacc.c  */
3976 < #line 840 "ircd_parser.y"
3977 <    {
3978 <                        }
3979 <    break;
3980 <
3981 <  case 109:
3982 <
3983 < /* Line 1455 of yacc.c  */
3984 < #line 844 "ircd_parser.y"
3625 >  case 106:
3626 > /* Line 1778 of yacc.c  */
3627 > #line 816 "conf_parser.y"
3628      {
3629    if (conf_parser_ctx.pass == 2)
3630 <    strlcpy(ConfigLoggingEntry.userlog, yylval.string,
3988 <            sizeof(ConfigLoggingEntry.userlog));
3989 < }
3990 <    break;
3991 <
3992 <  case 110:
3993 <
3994 < /* Line 1455 of yacc.c  */
3995 < #line 851 "ircd_parser.y"
3996 <    {
3997 <  if (conf_parser_ctx.pass == 2)
3998 <    strlcpy(ConfigLoggingEntry.failed_operlog, yylval.string,
3999 <            sizeof(ConfigLoggingEntry.failed_operlog));
3630 >    ConfigLoggingEntry.use_logging = yylval.number;
3631   }
3632      break;
3633  
3634 <  case 111:
3635 <
3636 < /* Line 1455 of yacc.c  */
4006 < #line 858 "ircd_parser.y"
3634 >  case 107:
3635 > /* Line 1778 of yacc.c  */
3636 > #line 822 "conf_parser.y"
3637      {
3638    if (conf_parser_ctx.pass == 2)
3639 <    strlcpy(ConfigLoggingEntry.operlog, yylval.string,
4010 <            sizeof(ConfigLoggingEntry.operlog));
3639 >    reset_block_state();
3640   }
3641      break;
3642  
3643 <  case 112:
3644 <
3645 < /* Line 1455 of yacc.c  */
4017 < #line 865 "ircd_parser.y"
3643 >  case 108:
3644 > /* Line 1778 of yacc.c  */
3645 > #line 826 "conf_parser.y"
3646      {
3647 <  if (conf_parser_ctx.pass == 2)
4020 <    strlcpy(ConfigLoggingEntry.operspylog, yylval.string,
4021 <            sizeof(ConfigLoggingEntry.operspylog));
4022 < }
3647 >  if (conf_parser_ctx.pass != 2)
3648      break;
3649  
3650 <  case 113:
3651 <
3652 < /* Line 1455 of yacc.c  */
4028 < #line 872 "ircd_parser.y"
4029 <    {
4030 <  if (conf_parser_ctx.pass == 2)
4031 <    strlcpy(ConfigLoggingEntry.glinelog, yylval.string,
4032 <            sizeof(ConfigLoggingEntry.glinelog));
3650 >  if (block_state.type.value && block_state.file.buf[0])
3651 >    log_add_file(block_state.type.value, block_state.size.value,
3652 >                 block_state.file.buf);
3653   }
3654      break;
3655  
3656 <  case 114:
3657 <
3658 < /* Line 1455 of yacc.c  */
4039 < #line 879 "ircd_parser.y"
3656 >  case 115:
3657 > /* Line 1778 of yacc.c  */
3658 > #line 842 "conf_parser.y"
3659      {
3660 <  if (conf_parser_ctx.pass == 2)
4042 <    strlcpy(ConfigLoggingEntry.klinelog, yylval.string,
4043 <            sizeof(ConfigLoggingEntry.klinelog));
4044 < }
3660 >  if (conf_parser_ctx.pass != 2)
3661      break;
3662  
3663 <  case 115:
4048 <
4049 < /* Line 1455 of yacc.c  */
4050 < #line 886 "ircd_parser.y"
4051 <    {
4052 <  if (conf_parser_ctx.pass == 2)
4053 <    strlcpy(ConfigLoggingEntry.ioerrlog, yylval.string,
4054 <            sizeof(ConfigLoggingEntry.ioerrlog));
3663 >  strlcpy(block_state.file.buf, yylval.string, sizeof(block_state.file.buf));
3664   }
3665      break;
3666  
3667    case 116:
3668 <
3669 < /* Line 1455 of yacc.c  */
4061 < #line 893 "ircd_parser.y"
3668 > /* Line 1778 of yacc.c  */
3669 > #line 850 "conf_parser.y"
3670      {
3671 <  if (conf_parser_ctx.pass == 2)
4064 <    strlcpy(ConfigLoggingEntry.killlog, yylval.string,
4065 <            sizeof(ConfigLoggingEntry.killlog));
3671 >  block_state.size.value = (yyvsp[(3) - (4)].number);
3672   }
3673      break;
3674  
3675    case 117:
3676 <
3677 < /* Line 1455 of yacc.c  */
3678 < #line 900 "ircd_parser.y"
3679 <    {
4074 <  if (conf_parser_ctx.pass == 2)
4075 <    set_log_level(L_CRIT);
3676 > /* Line 1778 of yacc.c  */
3677 > #line 853 "conf_parser.y"
3678 >    {
3679 >  block_state.size.value = 0;
3680   }
3681      break;
3682  
3683    case 118:
3684 <
3685 < /* Line 1455 of yacc.c  */
4082 < #line 904 "ircd_parser.y"
3684 > /* Line 1778 of yacc.c  */
3685 > #line 858 "conf_parser.y"
3686      {
3687    if (conf_parser_ctx.pass == 2)
3688 <    set_log_level(L_ERROR);
3688 >    block_state.type.value = 0;
3689   }
3690      break;
3691  
3692 <  case 119:
3693 <
3694 < /* Line 1455 of yacc.c  */
4092 < #line 908 "ircd_parser.y"
3692 >  case 122:
3693 > /* Line 1778 of yacc.c  */
3694 > #line 865 "conf_parser.y"
3695      {
3696    if (conf_parser_ctx.pass == 2)
3697 <    set_log_level(L_WARN);
3697 >    block_state.type.value = LOG_TYPE_USER;
3698   }
3699      break;
3700  
3701 <  case 120:
3702 <
3703 < /* Line 1455 of yacc.c  */
4102 < #line 912 "ircd_parser.y"
3701 >  case 123:
3702 > /* Line 1778 of yacc.c  */
3703 > #line 869 "conf_parser.y"
3704      {
3705    if (conf_parser_ctx.pass == 2)
3706 <    set_log_level(L_NOTICE);
3706 >    block_state.type.value = LOG_TYPE_OPER;
3707   }
3708      break;
3709  
3710 <  case 121:
3711 <
3712 < /* Line 1455 of yacc.c  */
4112 < #line 916 "ircd_parser.y"
3710 >  case 124:
3711 > /* Line 1778 of yacc.c  */
3712 > #line 873 "conf_parser.y"
3713      {
3714    if (conf_parser_ctx.pass == 2)
3715 <    set_log_level(L_TRACE);
3715 >    block_state.type.value = LOG_TYPE_GLINE;
3716   }
3717      break;
3718  
3719 <  case 122:
3720 <
3721 < /* Line 1455 of yacc.c  */
4122 < #line 920 "ircd_parser.y"
3719 >  case 125:
3720 > /* Line 1778 of yacc.c  */
3721 > #line 877 "conf_parser.y"
3722      {
3723    if (conf_parser_ctx.pass == 2)
3724 <    set_log_level(L_INFO);
3724 >    block_state.type.value = LOG_TYPE_DLINE;
3725   }
3726      break;
3727  
3728 <  case 123:
3729 <
3730 < /* Line 1455 of yacc.c  */
4132 < #line 924 "ircd_parser.y"
3728 >  case 126:
3729 > /* Line 1778 of yacc.c  */
3730 > #line 881 "conf_parser.y"
3731      {
3732    if (conf_parser_ctx.pass == 2)
3733 <    set_log_level(L_DEBUG);
3733 >    block_state.type.value = LOG_TYPE_KLINE;
3734   }
3735      break;
3736  
3737 <  case 124:
3738 <
3739 < /* Line 1455 of yacc.c  */
4142 < #line 930 "ircd_parser.y"
3737 >  case 127:
3738 > /* Line 1778 of yacc.c  */
3739 > #line 885 "conf_parser.y"
3740      {
3741    if (conf_parser_ctx.pass == 2)
3742 <    ConfigLoggingEntry.use_logging = yylval.number;
3742 >    block_state.type.value = LOG_TYPE_KILL;
3743   }
3744      break;
3745  
3746 <  case 125:
3747 <
3748 < /* Line 1455 of yacc.c  */
4152 < #line 939 "ircd_parser.y"
3746 >  case 128:
3747 > /* Line 1778 of yacc.c  */
3748 > #line 889 "conf_parser.y"
3749      {
3750    if (conf_parser_ctx.pass == 2)
3751 <  {
4156 <    yy_conf = make_conf_item(OPER_TYPE);
4157 <    yy_aconf = map_to_conf(yy_conf);
4158 <    SetConfEncrypted(yy_aconf); /* Yes, the default is encrypted */
4159 <  }
4160 <  else
4161 <  {
4162 <    MyFree(class_name);
4163 <    class_name = NULL;
4164 <  }
3751 >    block_state.type.value = LOG_TYPE_DEBUG;
3752   }
3753      break;
3754  
3755 <  case 126:
3756 <
3757 < /* Line 1455 of yacc.c  */
4171 < #line 952 "ircd_parser.y"
3755 >  case 129:
3756 > /* Line 1778 of yacc.c  */
3757 > #line 899 "conf_parser.y"
3758      {
3759 <  if (conf_parser_ctx.pass == 2)
4174 <  {
4175 <    struct CollectItem *yy_tmp;
4176 <    dlink_node *ptr;
4177 <    dlink_node *next_ptr;
4178 <
4179 <    conf_add_class_to_conf(yy_conf, class_name);
4180 <
4181 <    /* Now, make sure there is a copy of the "base" given oper
4182 <     * block in each of the collected copies
4183 <     */
4184 <
4185 <    DLINK_FOREACH_SAFE(ptr, next_ptr, col_conf_list.head)
4186 <    {
4187 <      struct AccessItem *new_aconf;
4188 <      struct ConfItem *new_conf;
4189 <      yy_tmp = ptr->data;
4190 <
4191 <      new_conf = make_conf_item(OPER_TYPE);
4192 <      new_aconf = (struct AccessItem *)map_to_conf(new_conf);
4193 <
4194 <      new_aconf->flags = yy_aconf->flags;
4195 <
4196 <      if (yy_conf->name != NULL)
4197 <        DupString(new_conf->name, yy_conf->name);
4198 <      if (yy_tmp->user != NULL)
4199 <        DupString(new_aconf->user, yy_tmp->user);
4200 <      else
4201 <        DupString(new_aconf->user, "*");
4202 <      if (yy_tmp->host != NULL)
4203 <        DupString(new_aconf->host, yy_tmp->host);
4204 <      else
4205 <        DupString(new_aconf->host, "*");
4206 <      conf_add_class_to_conf(new_conf, class_name);
4207 <      if (yy_aconf->passwd != NULL)
4208 <        DupString(new_aconf->passwd, yy_aconf->passwd);
4209 <
4210 <      new_aconf->port = yy_aconf->port;
4211 < #ifdef HAVE_LIBCRYPTO
4212 <      if (yy_aconf->rsa_public_key_file != NULL)
4213 <      {
4214 <        BIO *file;
4215 <
4216 <        DupString(new_aconf->rsa_public_key_file,
4217 <                  yy_aconf->rsa_public_key_file);
4218 <
4219 <        file = BIO_new_file(yy_aconf->rsa_public_key_file, "r");
4220 <        new_aconf->rsa_public_key = (RSA *)PEM_read_bio_RSA_PUBKEY(file,
4221 <                                                           NULL, 0, NULL);
4222 <        BIO_set_close(file, BIO_CLOSE);
4223 <        BIO_free(file);
4224 <      }
4225 < #endif
4226 <
4227 < #ifdef HAVE_LIBCRYPTO
4228 <      if (yy_tmp->name && (yy_tmp->passwd || yy_aconf->rsa_public_key)
4229 <          && yy_tmp->host)
4230 < #else
4231 <      if (yy_tmp->name && yy_tmp->passwd && yy_tmp->host)
4232 < #endif
4233 <      {
4234 <        conf_add_class_to_conf(new_conf, class_name);
4235 <        if (yy_tmp->name != NULL)
4236 <          DupString(new_conf->name, yy_tmp->name);
4237 <      }
4238 <
4239 <      dlinkDelete(&yy_tmp->node, &col_conf_list);
4240 <      free_collect_item(yy_tmp);
4241 <    }
4242 <
4243 <    yy_conf = NULL;
4244 <    yy_aconf = NULL;
4245 <
4246 <
4247 <    MyFree(class_name);
4248 <    class_name = NULL;
4249 <  }
4250 < }
3759 >  if (conf_parser_ctx.pass != 2)
3760      break;
3761  
3762 <  case 154:
3763 <
4255 < /* Line 1455 of yacc.c  */
4256 < #line 1044 "ircd_parser.y"
4257 <    {
4258 <  if (conf_parser_ctx.pass == 2)
4259 <  {
4260 <    if (strlen(yylval.string) > OPERNICKLEN)
4261 <      yylval.string[OPERNICKLEN] = '\0';
4262 <
4263 <    MyFree(yy_conf->name);
4264 <    DupString(yy_conf->name, yylval.string);
4265 <  }
3762 >  reset_block_state();
3763 >  block_state.flags.value |= CONF_FLAGS_ENCRYPTED;
3764   }
3765      break;
3766  
3767 <  case 155:
3768 <
3769 < /* Line 1455 of yacc.c  */
4272 < #line 1056 "ircd_parser.y"
3767 >  case 130:
3768 > /* Line 1778 of yacc.c  */
3769 > #line 906 "conf_parser.y"
3770      {
3771 <  if (conf_parser_ctx.pass == 2)
4275 <  {
4276 <    if (strlen(yylval.string) > OPERNICKLEN)
4277 <      yylval.string[OPERNICKLEN] = '\0';
3771 >  dlink_node *ptr = NULL;
3772  
3773 <    MyFree(yy_conf->name);
4280 <    DupString(yy_conf->name, yylval.string);
4281 <  }
4282 < }
3773 >  if (conf_parser_ctx.pass != 2)
3774      break;
3775  
3776 <  case 156:
3776 >  if (!block_state.name.buf[0])
3777 >    break;
3778 > #ifdef HAVE_LIBCRYPTO
3779 >  if (!(block_state.file.buf[0] ||
3780 >        block_state.rpass.buf[0]))
3781 >    break;
3782 > #else
3783 >  if (!block_state.rpass.buf[0])
3784 >    break;
3785 > #endif
3786  
3787 < /* Line 1455 of yacc.c  */
4288 < #line 1068 "ircd_parser.y"
4289 <    {
4290 <  if (conf_parser_ctx.pass == 2)
3787 >  DLINK_FOREACH(ptr, block_state.mask.list.head)
3788    {
3789 +    struct MaskItem *conf = NULL;
3790      struct split_nuh_item nuh;
3791  
3792 <    nuh.nuhmask  = yylval.string;
3792 >    nuh.nuhmask  = ptr->data;
3793      nuh.nickptr  = NULL;
3794 <    nuh.userptr  = userbuf;
3795 <    nuh.hostptr  = hostbuf;
4298 <
3794 >    nuh.userptr  = block_state.user.buf;
3795 >    nuh.hostptr  = block_state.host.buf;
3796      nuh.nicksize = 0;
3797 <    nuh.usersize = sizeof(userbuf);
3798 <    nuh.hostsize = sizeof(hostbuf);
4302 <
3797 >    nuh.usersize = sizeof(block_state.user.buf);
3798 >    nuh.hostsize = sizeof(block_state.host.buf);
3799      split_nuh(&nuh);
3800  
3801 <    if (yy_aconf->user == NULL)
3802 <    {
3803 <      DupString(yy_aconf->user, userbuf);
3804 <      DupString(yy_aconf->host, hostbuf);
3805 <    }
3806 <    else
3807 <    {
3808 <      struct CollectItem *yy_tmp = MyMalloc(sizeof(struct CollectItem));
3801 >    conf        = conf_make(CONF_OPER);
3802 >    conf->name  = xstrdup(block_state.name.buf);
3803 >    conf->user  = xstrdup(block_state.user.buf);
3804 >    conf->host  = xstrdup(block_state.host.buf);
3805 >
3806 >    if (block_state.rpass.buf[0])
3807 >      conf->passwd = xstrdup(block_state.rpass.buf);
3808 >
3809 >    conf->flags = block_state.flags.value;
3810 >    conf->modes = block_state.modes.value;
3811 >    conf->port  = block_state.port.value;
3812 >    conf->htype = parse_netmask(conf->host, &conf->addr, &conf->bits);
3813  
3814 <      DupString(yy_tmp->user, userbuf);
4315 <      DupString(yy_tmp->host, hostbuf);
3814 >    conf_add_class_to_conf(conf, block_state.class.buf);
3815  
4317      dlinkAdd(yy_tmp, &yy_tmp->node, &col_conf_list);
4318    }
4319  }
4320 }
4321    break;
4322
4323  case 157:
4324
4325 /* Line 1455 of yacc.c  */
4326 #line 1102 "ircd_parser.y"
4327    {
4328  if (conf_parser_ctx.pass == 2)
4329  {
4330    if (yy_aconf->passwd != NULL)
4331      memset(yy_aconf->passwd, 0, strlen(yy_aconf->passwd));
4332
4333    MyFree(yy_aconf->passwd);
4334    DupString(yy_aconf->passwd, yylval.string);
4335  }
4336 }
4337    break;
4338
4339  case 158:
4340
4341 /* Line 1455 of yacc.c  */
4342 #line 1114 "ircd_parser.y"
4343    {
4344  if (conf_parser_ctx.pass == 2)
4345  {
4346    if (yylval.number)
4347      SetConfEncrypted(yy_aconf);
4348    else
4349      ClearConfEncrypted(yy_aconf);
4350  }
4351 }
4352    break;
4353
4354  case 159:
4355
4356 /* Line 1455 of yacc.c  */
4357 #line 1125 "ircd_parser.y"
4358    {
3816   #ifdef HAVE_LIBCRYPTO
3817 <  if (conf_parser_ctx.pass == 2)
4361 <  {
4362 <    BIO *file;
4363 <
4364 <    if (yy_aconf->rsa_public_key != NULL)
4365 <    {
4366 <      RSA_free(yy_aconf->rsa_public_key);
4367 <      yy_aconf->rsa_public_key = NULL;
4368 <    }
4369 <
4370 <    if (yy_aconf->rsa_public_key_file != NULL)
3817 >    if (block_state.file.buf[0])
3818      {
3819 <      MyFree(yy_aconf->rsa_public_key_file);
3820 <      yy_aconf->rsa_public_key_file = NULL;
4374 <    }
4375 <
4376 <    DupString(yy_aconf->rsa_public_key_file, yylval.string);
4377 <    file = BIO_new_file(yylval.string, "r");
3819 >      BIO *file = NULL;
3820 >      RSA *pkey = NULL;
3821  
3822 <    if (file == NULL)
3823 <    {
3824 <      yyerror("Ignoring rsa_public_key_file -- file doesn't exist");
3825 <      break;
3826 <    }
3822 >      if ((file = BIO_new_file(block_state.file.buf, "r")) == NULL)
3823 >      {
3824 >        yyerror("Ignoring rsa_public_key_file -- file doesn't exist");
3825 >        break;
3826 >      }
3827  
3828 <    yy_aconf->rsa_public_key = (RSA *)PEM_read_bio_RSA_PUBKEY(file, NULL, 0, NULL);
3828 >      if ((pkey = PEM_read_bio_RSA_PUBKEY(file, NULL, 0, NULL)) == NULL)
3829 >      {
3830 >        yyerror("Ignoring rsa_public_key_file -- Key invalid; check key syntax.");
3831 >        break;
3832 >      }
3833  
3834 <    if (yy_aconf->rsa_public_key == NULL)
3835 <    {
3836 <      yyerror("Ignoring rsa_public_key_file -- Key invalid; check key syntax.");
4390 <      break;
3834 >      conf->rsa_public_key = pkey;
3835 >      BIO_set_close(file, BIO_CLOSE);
3836 >      BIO_free(file);
3837      }
4392
4393    BIO_set_close(file, BIO_CLOSE);
4394    BIO_free(file);
4395  }
3838   #endif /* HAVE_LIBCRYPTO */
4397 }
4398    break;
4399
4400  case 160:
4401
4402 /* Line 1455 of yacc.c  */
4403 #line 1167 "ircd_parser.y"
4404    {
4405  if (conf_parser_ctx.pass == 2)
4406  {
4407    MyFree(class_name);
4408    DupString(class_name, yylval.string);
3839    }
3840   }
3841      break;
3842  
3843 <  case 161:
3844 <
3845 < /* Line 1455 of yacc.c  */
4416 < #line 1176 "ircd_parser.y"
3843 >  case 142:
3844 > /* Line 1778 of yacc.c  */
3845 > #line 984 "conf_parser.y"
3846      {
3847    if (conf_parser_ctx.pass == 2)
3848 <    yy_aconf->modes = 0;
3848 >    strlcpy(block_state.name.buf, yylval.string, sizeof(block_state.name.buf));
3849   }
3850      break;
3851  
3852 <  case 165:
3853 <
3854 < /* Line 1455 of yacc.c  */
4426 < #line 1183 "ircd_parser.y"
3852 >  case 143:
3853 > /* Line 1778 of yacc.c  */
3854 > #line 990 "conf_parser.y"
3855      {
3856    if (conf_parser_ctx.pass == 2)
3857 <    yy_aconf->modes |= UMODE_BOTS;
3857 >    dlinkAdd(xstrdup(yylval.string), make_dlink_node(), &block_state.mask.list);
3858   }
3859      break;
3860  
3861 <  case 166:
3862 <
3863 < /* Line 1455 of yacc.c  */
4436 < #line 1187 "ircd_parser.y"
3861 >  case 144:
3862 > /* Line 1778 of yacc.c  */
3863 > #line 996 "conf_parser.y"
3864      {
3865    if (conf_parser_ctx.pass == 2)
3866 <    yy_aconf->modes |= UMODE_CCONN;
3866 >    strlcpy(block_state.rpass.buf, yylval.string, sizeof(block_state.rpass.buf));
3867   }
3868      break;
3869  
3870 <  case 167:
3871 <
3872 < /* Line 1455 of yacc.c  */
4446 < #line 1191 "ircd_parser.y"
3870 >  case 145:
3871 > /* Line 1778 of yacc.c  */
3872 > #line 1002 "conf_parser.y"
3873      {
3874    if (conf_parser_ctx.pass == 2)
3875 <    yy_aconf->modes |= UMODE_CCONN_FULL;
3875 >  {
3876 >    if (yylval.number)
3877 >      block_state.flags.value |= CONF_FLAGS_ENCRYPTED;
3878 >    else
3879 >      block_state.flags.value &= ~CONF_FLAGS_ENCRYPTED;
3880 >  }
3881   }
3882      break;
3883  
3884 <  case 168:
3885 <
3886 < /* Line 1455 of yacc.c  */
4456 < #line 1195 "ircd_parser.y"
3884 >  case 146:
3885 > /* Line 1778 of yacc.c  */
3886 > #line 1013 "conf_parser.y"
3887      {
3888    if (conf_parser_ctx.pass == 2)
3889 <    yy_aconf->modes |= UMODE_DEAF;
3889 >    strlcpy(block_state.file.buf, yylval.string, sizeof(block_state.file.buf));
3890   }
3891      break;
3892  
3893 <  case 169:
3894 <
3895 < /* Line 1455 of yacc.c  */
4466 < #line 1199 "ircd_parser.y"
3893 >  case 147:
3894 > /* Line 1778 of yacc.c  */
3895 > #line 1019 "conf_parser.y"
3896      {
3897    if (conf_parser_ctx.pass == 2)
3898 <    yy_aconf->modes |= UMODE_DEBUG;
3898 >    strlcpy(block_state.class.buf, yylval.string, sizeof(block_state.class.buf));
3899   }
3900      break;
3901  
3902 <  case 170:
3903 <
3904 < /* Line 1455 of yacc.c  */
4476 < #line 1203 "ircd_parser.y"
3902 >  case 148:
3903 > /* Line 1778 of yacc.c  */
3904 > #line 1025 "conf_parser.y"
3905      {
3906    if (conf_parser_ctx.pass == 2)
3907 <    yy_aconf->modes |= UMODE_FULL;
3907 >    block_state.modes.value = 0;
3908   }
3909      break;
3910  
3911 <  case 171:
3912 <
3913 < /* Line 1455 of yacc.c  */
4486 < #line 1207 "ircd_parser.y"
3911 >  case 152:
3912 > /* Line 1778 of yacc.c  */
3913 > #line 1032 "conf_parser.y"
3914      {
3915    if (conf_parser_ctx.pass == 2)
3916 <    yy_aconf->modes |= UMODE_SKILL;
3916 >    block_state.modes.value |= UMODE_BOTS;
3917   }
3918      break;
3919  
3920 <  case 172:
3921 <
3922 < /* Line 1455 of yacc.c  */
4496 < #line 1211 "ircd_parser.y"
3920 >  case 153:
3921 > /* Line 1778 of yacc.c  */
3922 > #line 1036 "conf_parser.y"
3923      {
3924    if (conf_parser_ctx.pass == 2)
3925 <    yy_aconf->modes |= UMODE_NCHANGE;
3925 >    block_state.modes.value |= UMODE_CCONN;
3926   }
3927      break;
3928  
3929 <  case 173:
3930 <
3931 < /* Line 1455 of yacc.c  */
4506 < #line 1215 "ircd_parser.y"
4507 <    {
4508 <  if (conf_parser_ctx.pass == 2)
4509 <    yy_aconf->modes |= UMODE_REJ;
4510 < }
4511 <    break;
4512 <
4513 <  case 174:
4514 <
4515 < /* Line 1455 of yacc.c  */
4516 < #line 1219 "ircd_parser.y"
3929 >  case 154:
3930 > /* Line 1778 of yacc.c  */
3931 > #line 1040 "conf_parser.y"
3932      {
3933    if (conf_parser_ctx.pass == 2)
3934 <    yy_aconf->modes |= UMODE_UNAUTH;
3934 >    block_state.modes.value |= UMODE_CCONN_FULL;
3935   }
3936      break;
3937  
3938 <  case 175:
3939 <
3940 < /* Line 1455 of yacc.c  */
4526 < #line 1223 "ircd_parser.y"
3938 >  case 155:
3939 > /* Line 1778 of yacc.c  */
3940 > #line 1044 "conf_parser.y"
3941      {
3942    if (conf_parser_ctx.pass == 2)
3943 <    yy_aconf->modes |= UMODE_SPY;
3943 >    block_state.modes.value |= UMODE_DEAF;
3944   }
3945      break;
3946  
3947 <  case 176:
3948 <
3949 < /* Line 1455 of yacc.c  */
4536 < #line 1227 "ircd_parser.y"
3947 >  case 156:
3948 > /* Line 1778 of yacc.c  */
3949 > #line 1048 "conf_parser.y"
3950      {
3951    if (conf_parser_ctx.pass == 2)
3952 <    yy_aconf->modes |= UMODE_EXTERNAL;
3952 >    block_state.modes.value |= UMODE_DEBUG;
3953   }
3954      break;
3955  
3956 <  case 177:
3957 <
3958 < /* Line 1455 of yacc.c  */
4546 < #line 1231 "ircd_parser.y"
3956 >  case 157:
3957 > /* Line 1778 of yacc.c  */
3958 > #line 1052 "conf_parser.y"
3959      {
3960    if (conf_parser_ctx.pass == 2)
3961 <    yy_aconf->modes |= UMODE_OPERWALL;
3961 >    block_state.modes.value |= UMODE_FULL;
3962   }
3963      break;
3964  
3965 <  case 178:
3966 <
3967 < /* Line 1455 of yacc.c  */
4556 < #line 1235 "ircd_parser.y"
3965 >  case 158:
3966 > /* Line 1778 of yacc.c  */
3967 > #line 1056 "conf_parser.y"
3968      {
3969    if (conf_parser_ctx.pass == 2)
3970 <    yy_aconf->modes |= UMODE_SERVNOTICE;
3970 >    block_state.modes.value |= UMODE_HIDDEN;
3971   }
3972      break;
3973  
3974 <  case 179:
3975 <
3976 < /* Line 1455 of yacc.c  */
4566 < #line 1239 "ircd_parser.y"
3974 >  case 159:
3975 > /* Line 1778 of yacc.c  */
3976 > #line 1060 "conf_parser.y"
3977      {
3978    if (conf_parser_ctx.pass == 2)
3979 <    yy_aconf->modes |= UMODE_INVISIBLE;
3979 >    block_state.modes.value |= UMODE_SKILL;
3980   }
3981      break;
3982  
3983 <  case 180:
3984 <
3985 < /* Line 1455 of yacc.c  */
4576 < #line 1243 "ircd_parser.y"
3983 >  case 160:
3984 > /* Line 1778 of yacc.c  */
3985 > #line 1064 "conf_parser.y"
3986      {
3987    if (conf_parser_ctx.pass == 2)
3988 <    yy_aconf->modes |= UMODE_WALLOP;
3988 >    block_state.modes.value |= UMODE_NCHANGE;
3989   }
3990      break;
3991  
3992 <  case 181:
3993 <
3994 < /* Line 1455 of yacc.c  */
4586 < #line 1247 "ircd_parser.y"
3992 >  case 161:
3993 > /* Line 1778 of yacc.c  */
3994 > #line 1068 "conf_parser.y"
3995      {
3996    if (conf_parser_ctx.pass == 2)
3997 <    yy_aconf->modes |= UMODE_SOFTCALLERID;
3997 >    block_state.modes.value |= UMODE_REJ;
3998   }
3999      break;
4000  
4001 <  case 182:
4002 <
4003 < /* Line 1455 of yacc.c  */
4596 < #line 1251 "ircd_parser.y"
4001 >  case 162:
4002 > /* Line 1778 of yacc.c  */
4003 > #line 1072 "conf_parser.y"
4004      {
4005    if (conf_parser_ctx.pass == 2)
4006 <    yy_aconf->modes |= UMODE_CALLERID;
4006 >    block_state.modes.value |= UMODE_UNAUTH;
4007   }
4008      break;
4009  
4010 <  case 183:
4011 <
4012 < /* Line 1455 of yacc.c  */
4606 < #line 1255 "ircd_parser.y"
4010 >  case 163:
4011 > /* Line 1778 of yacc.c  */
4012 > #line 1076 "conf_parser.y"
4013      {
4014    if (conf_parser_ctx.pass == 2)
4015 <    yy_aconf->modes |= UMODE_LOCOPS;
4015 >    block_state.modes.value |= UMODE_SPY;
4016   }
4017      break;
4018  
4019 <  case 184:
4020 <
4021 < /* Line 1455 of yacc.c  */
4616 < #line 1261 "ircd_parser.y"
4019 >  case 164:
4020 > /* Line 1778 of yacc.c  */
4021 > #line 1080 "conf_parser.y"
4022      {
4023    if (conf_parser_ctx.pass == 2)
4024 <  {
4620 <    if (yylval.number)
4621 <      yy_aconf->port |= OPER_FLAG_GLOBAL_KILL;
4622 <    else
4623 <      yy_aconf->port &= ~OPER_FLAG_GLOBAL_KILL;
4624 <  }
4024 >    block_state.modes.value |= UMODE_EXTERNAL;
4025   }
4026      break;
4027  
4028 <  case 185:
4029 <
4030 < /* Line 1455 of yacc.c  */
4631 < #line 1272 "ircd_parser.y"
4028 >  case 165:
4029 > /* Line 1778 of yacc.c  */
4030 > #line 1084 "conf_parser.y"
4031      {
4032    if (conf_parser_ctx.pass == 2)
4033 <  {
4635 <    if (yylval.number)
4636 <      yy_aconf->port |= OPER_FLAG_REMOTE;
4637 <    else
4638 <      yy_aconf->port &= ~OPER_FLAG_REMOTE;
4639 <  }
4033 >    block_state.modes.value |= UMODE_OPERWALL;
4034   }
4035      break;
4036  
4037 <  case 186:
4038 <
4039 < /* Line 1455 of yacc.c  */
4646 < #line 1283 "ircd_parser.y"
4037 >  case 166:
4038 > /* Line 1778 of yacc.c  */
4039 > #line 1088 "conf_parser.y"
4040      {
4041    if (conf_parser_ctx.pass == 2)
4042 <  {
4650 <    if (yylval.number)
4651 <      yy_aconf->port |= OPER_FLAG_REMOTEBAN;
4652 <    else
4653 <      yy_aconf->port &= ~OPER_FLAG_REMOTEBAN;
4654 <  }
4042 >    block_state.modes.value |= UMODE_SERVNOTICE;
4043   }
4044      break;
4045  
4046 <  case 187:
4047 <
4048 < /* Line 1455 of yacc.c  */
4661 < #line 1294 "ircd_parser.y"
4046 >  case 167:
4047 > /* Line 1778 of yacc.c  */
4048 > #line 1092 "conf_parser.y"
4049      {
4050    if (conf_parser_ctx.pass == 2)
4051 <  {
4665 <    if (yylval.number)
4666 <      yy_aconf->port |= OPER_FLAG_K;
4667 <    else
4668 <      yy_aconf->port &= ~OPER_FLAG_K;
4669 <  }
4051 >    block_state.modes.value |= UMODE_INVISIBLE;
4052   }
4053      break;
4054  
4055 <  case 188:
4056 <
4057 < /* Line 1455 of yacc.c  */
4676 < #line 1305 "ircd_parser.y"
4055 >  case 168:
4056 > /* Line 1778 of yacc.c  */
4057 > #line 1096 "conf_parser.y"
4058      {
4059    if (conf_parser_ctx.pass == 2)
4060 <  {
4680 <    if (yylval.number)
4681 <      yy_aconf->port |= OPER_FLAG_X;
4682 <    else
4683 <      yy_aconf->port &= ~OPER_FLAG_X;
4684 <  }
4060 >    block_state.modes.value |= UMODE_WALLOP;
4061   }
4062      break;
4063  
4064 <  case 189:
4065 <
4066 < /* Line 1455 of yacc.c  */
4691 < #line 1316 "ircd_parser.y"
4064 >  case 169:
4065 > /* Line 1778 of yacc.c  */
4066 > #line 1100 "conf_parser.y"
4067      {
4068    if (conf_parser_ctx.pass == 2)
4069 <  {
4695 <    if (yylval.number)
4696 <      yy_aconf->port |= OPER_FLAG_UNKLINE;
4697 <    else
4698 <      yy_aconf->port &= ~OPER_FLAG_UNKLINE;
4699 <  }
4069 >    block_state.modes.value |= UMODE_SOFTCALLERID;
4070   }
4071      break;
4072  
4073 <  case 190:
4074 <
4075 < /* Line 1455 of yacc.c  */
4706 < #line 1327 "ircd_parser.y"
4073 >  case 170:
4074 > /* Line 1778 of yacc.c  */
4075 > #line 1104 "conf_parser.y"
4076      {
4077    if (conf_parser_ctx.pass == 2)
4078 <  {
4710 <    if (yylval.number)
4711 <      yy_aconf->port |= OPER_FLAG_GLINE;
4712 <    else
4713 <      yy_aconf->port &= ~OPER_FLAG_GLINE;
4714 <  }
4078 >    block_state.modes.value |= UMODE_CALLERID;
4079   }
4080      break;
4081  
4082 <  case 191:
4083 <
4084 < /* Line 1455 of yacc.c  */
4721 < #line 1338 "ircd_parser.y"
4082 >  case 171:
4083 > /* Line 1778 of yacc.c  */
4084 > #line 1108 "conf_parser.y"
4085      {
4086    if (conf_parser_ctx.pass == 2)
4087 <  {
4725 <    if (yylval.number)
4726 <      yy_aconf->port |= OPER_FLAG_N;
4727 <    else
4728 <      yy_aconf->port &= ~OPER_FLAG_N;
4729 <  }
4087 >    block_state.modes.value |= UMODE_LOCOPS;
4088   }
4089      break;
4090  
4091 <  case 192:
4092 <
4093 < /* Line 1455 of yacc.c  */
4736 < #line 1349 "ircd_parser.y"
4091 >  case 172:
4092 > /* Line 1778 of yacc.c  */
4093 > #line 1114 "conf_parser.y"
4094      {
4095    if (conf_parser_ctx.pass == 2)
4096 <  {
4740 <    if (yylval.number)
4741 <      yy_aconf->port |= OPER_FLAG_DIE;
4742 <    else
4743 <      yy_aconf->port &= ~OPER_FLAG_DIE;
4744 <  }
4096 >    block_state.port.value = 0;
4097   }
4098      break;
4099  
4100 <  case 193:
4101 <
4102 < /* Line 1455 of yacc.c  */
4751 < #line 1360 "ircd_parser.y"
4100 >  case 176:
4101 > /* Line 1778 of yacc.c  */
4102 > #line 1121 "conf_parser.y"
4103      {
4104    if (conf_parser_ctx.pass == 2)
4105 <  {
4755 <    if (yylval.number)
4756 <      yy_aconf->port |= OPER_FLAG_REHASH;
4757 <    else
4758 <      yy_aconf->port &= ~OPER_FLAG_REHASH;
4759 <  }
4105 >    block_state.port.value |= OPER_FLAG_GLOBAL_KILL;
4106   }
4107      break;
4108  
4109 <  case 194:
4110 <
4111 < /* Line 1455 of yacc.c  */
4766 < #line 1371 "ircd_parser.y"
4109 >  case 177:
4110 > /* Line 1778 of yacc.c  */
4111 > #line 1125 "conf_parser.y"
4112      {
4113    if (conf_parser_ctx.pass == 2)
4114 <  {
4770 <    if (yylval.number)
4771 <      yy_aconf->port |= OPER_FLAG_ADMIN;
4772 <    else
4773 <      yy_aconf->port &= ~OPER_FLAG_ADMIN;
4774 <  }
4114 >    block_state.port.value |= OPER_FLAG_REMOTE;
4115   }
4116      break;
4117  
4118 <  case 195:
4119 <
4120 < /* Line 1455 of yacc.c  */
4781 < #line 1382 "ircd_parser.y"
4118 >  case 178:
4119 > /* Line 1778 of yacc.c  */
4120 > #line 1129 "conf_parser.y"
4121      {
4122    if (conf_parser_ctx.pass == 2)
4123 <  {
4785 <    if (yylval.number)
4786 <      yy_aconf->port |= OPER_FLAG_HIDDEN_ADMIN;
4787 <    else
4788 <      yy_aconf->port &= ~OPER_FLAG_HIDDEN_ADMIN;
4789 <  }
4123 >    block_state.port.value |= OPER_FLAG_K;
4124   }
4125      break;
4126  
4127 <  case 196:
4128 <
4129 < /* Line 1455 of yacc.c  */
4796 < #line 1393 "ircd_parser.y"
4127 >  case 179:
4128 > /* Line 1778 of yacc.c  */
4129 > #line 1133 "conf_parser.y"
4130      {
4131    if (conf_parser_ctx.pass == 2)
4132 <  {
4800 <    if (yylval.number)
4801 <      yy_aconf->port |= OPER_FLAG_HIDDEN_OPER;
4802 <    else
4803 <      yy_aconf->port &= ~OPER_FLAG_HIDDEN_OPER;
4804 <  }
4132 >    block_state.port.value |= OPER_FLAG_UNKLINE;
4133   }
4134      break;
4135  
4136 <  case 197:
4137 <
4138 < /* Line 1455 of yacc.c  */
4811 < #line 1404 "ircd_parser.y"
4136 >  case 180:
4137 > /* Line 1778 of yacc.c  */
4138 > #line 1137 "conf_parser.y"
4139      {
4140    if (conf_parser_ctx.pass == 2)
4141 <  {
4815 <    if (yylval.number)
4816 <      yy_aconf->port |= OPER_FLAG_OPERWALL;
4817 <    else
4818 <      yy_aconf->port &= ~OPER_FLAG_OPERWALL;
4819 <  }
4820 < }
4821 <    break;
4822 <
4823 <  case 198:
4824 <
4825 < /* Line 1455 of yacc.c  */
4826 < #line 1415 "ircd_parser.y"
4827 <    {
4141 >    block_state.port.value |= OPER_FLAG_DLINE;
4142   }
4143      break;
4144  
4145 <  case 202:
4146 <
4147 < /* Line 1455 of yacc.c  */
4834 < #line 1419 "ircd_parser.y"
4835 <    { not_atom = 1; }
4836 <    break;
4837 <
4838 <  case 204:
4839 <
4840 < /* Line 1455 of yacc.c  */
4841 < #line 1420 "ircd_parser.y"
4842 <    { not_atom = 0; }
4843 <    break;
4844 <
4845 <  case 206:
4846 <
4847 < /* Line 1455 of yacc.c  */
4848 < #line 1423 "ircd_parser.y"
4145 >  case 181:
4146 > /* Line 1778 of yacc.c  */
4147 > #line 1141 "conf_parser.y"
4148      {
4149    if (conf_parser_ctx.pass == 2)
4150 <  {
4852 <    if (not_atom)yy_aconf->port &= ~OPER_FLAG_GLOBAL_KILL;
4853 <    else yy_aconf->port |= OPER_FLAG_GLOBAL_KILL;
4854 <  }
4150 >    block_state.port.value |= OPER_FLAG_UNDLINE;
4151   }
4152      break;
4153  
4154 <  case 207:
4155 <
4156 < /* Line 1455 of yacc.c  */
4861 < #line 1430 "ircd_parser.y"
4154 >  case 182:
4155 > /* Line 1778 of yacc.c  */
4156 > #line 1145 "conf_parser.y"
4157      {
4158    if (conf_parser_ctx.pass == 2)
4159 <  {
4865 <    if (not_atom) yy_aconf->port &= ~OPER_FLAG_REMOTE;
4866 <    else yy_aconf->port |= OPER_FLAG_REMOTE;
4867 <  }
4159 >    block_state.port.value |= OPER_FLAG_X;
4160   }
4161      break;
4162  
4163 <  case 208:
4164 <
4165 < /* Line 1455 of yacc.c  */
4874 < #line 1437 "ircd_parser.y"
4163 >  case 183:
4164 > /* Line 1778 of yacc.c  */
4165 > #line 1149 "conf_parser.y"
4166      {
4167    if (conf_parser_ctx.pass == 2)
4168 <  {
4878 <    if (not_atom) yy_aconf->port &= ~OPER_FLAG_K;
4879 <    else yy_aconf->port |= OPER_FLAG_K;
4880 <  }
4168 >    block_state.port.value |= OPER_FLAG_GLINE;
4169   }
4170      break;
4171  
4172 <  case 209:
4173 <
4174 < /* Line 1455 of yacc.c  */
4887 < #line 1444 "ircd_parser.y"
4172 >  case 184:
4173 > /* Line 1778 of yacc.c  */
4174 > #line 1153 "conf_parser.y"
4175      {
4176    if (conf_parser_ctx.pass == 2)
4177 <  {
4891 <    if (not_atom) yy_aconf->port &= ~OPER_FLAG_UNKLINE;
4892 <    else yy_aconf->port |= OPER_FLAG_UNKLINE;
4893 <  }
4177 >    block_state.port.value |= OPER_FLAG_DIE;
4178   }
4179      break;
4180  
4181 <  case 210:
4182 <
4183 < /* Line 1455 of yacc.c  */
4900 < #line 1451 "ircd_parser.y"
4181 >  case 185:
4182 > /* Line 1778 of yacc.c  */
4183 > #line 1157 "conf_parser.y"
4184      {
4185    if (conf_parser_ctx.pass == 2)
4186 <  {
4904 <    if (not_atom) yy_aconf->port &= ~OPER_FLAG_X;
4905 <    else yy_aconf->port |= OPER_FLAG_X;
4906 <  }
4186 >    block_state.port.value |= OPER_FLAG_RESTART;
4187   }
4188      break;
4189  
4190 <  case 211:
4191 <
4192 < /* Line 1455 of yacc.c  */
4913 < #line 1458 "ircd_parser.y"
4190 >  case 186:
4191 > /* Line 1778 of yacc.c  */
4192 > #line 1161 "conf_parser.y"
4193      {
4194    if (conf_parser_ctx.pass == 2)
4195 <  {
4917 <    if (not_atom) yy_aconf->port &= ~OPER_FLAG_GLINE;
4918 <    else yy_aconf->port |= OPER_FLAG_GLINE;
4919 <  }
4195 >    block_state.port.value |= OPER_FLAG_REHASH;
4196   }
4197      break;
4198  
4199 <  case 212:
4200 <
4201 < /* Line 1455 of yacc.c  */
4926 < #line 1465 "ircd_parser.y"
4199 >  case 187:
4200 > /* Line 1778 of yacc.c  */
4201 > #line 1165 "conf_parser.y"
4202      {
4203    if (conf_parser_ctx.pass == 2)
4204 <  {
4930 <    if (not_atom) yy_aconf->port &= ~OPER_FLAG_DIE;
4931 <    else yy_aconf->port |= OPER_FLAG_DIE;
4932 <  }
4204 >    block_state.port.value |= OPER_FLAG_ADMIN;
4205   }
4206      break;
4207  
4208 <  case 213:
4209 <
4210 < /* Line 1455 of yacc.c  */
4939 < #line 1472 "ircd_parser.y"
4208 >  case 188:
4209 > /* Line 1778 of yacc.c  */
4210 > #line 1169 "conf_parser.y"
4211      {
4212    if (conf_parser_ctx.pass == 2)
4213 <  {
4943 <    if (not_atom) yy_aconf->port &= ~OPER_FLAG_REHASH;
4944 <    else yy_aconf->port |= OPER_FLAG_REHASH;
4945 <  }
4213 >    block_state.port.value |= OPER_FLAG_N;
4214   }
4215      break;
4216  
4217 <  case 214:
4218 <
4219 < /* Line 1455 of yacc.c  */
4952 < #line 1479 "ircd_parser.y"
4217 >  case 189:
4218 > /* Line 1778 of yacc.c  */
4219 > #line 1173 "conf_parser.y"
4220      {
4221    if (conf_parser_ctx.pass == 2)
4222 <  {
4956 <    if (not_atom) yy_aconf->port &= ~OPER_FLAG_ADMIN;
4957 <    else yy_aconf->port |= OPER_FLAG_ADMIN;
4958 <  }
4222 >    block_state.port.value |= OPER_FLAG_OPERWALL;
4223   }
4224      break;
4225  
4226 <  case 215:
4227 <
4228 < /* Line 1455 of yacc.c  */
4965 < #line 1486 "ircd_parser.y"
4226 >  case 190:
4227 > /* Line 1778 of yacc.c  */
4228 > #line 1177 "conf_parser.y"
4229      {
4230    if (conf_parser_ctx.pass == 2)
4231 <  {
4969 <    if (not_atom) yy_aconf->port &= ~OPER_FLAG_HIDDEN_ADMIN;
4970 <    else yy_aconf->port |= OPER_FLAG_HIDDEN_ADMIN;
4971 <  }
4231 >    block_state.port.value |= OPER_FLAG_GLOBOPS;
4232   }
4233      break;
4234  
4235 <  case 216:
4236 <
4237 < /* Line 1455 of yacc.c  */
4978 < #line 1493 "ircd_parser.y"
4235 >  case 191:
4236 > /* Line 1778 of yacc.c  */
4237 > #line 1181 "conf_parser.y"
4238      {
4239    if (conf_parser_ctx.pass == 2)
4240 <  {
4982 <    if (not_atom) yy_aconf->port &= ~OPER_FLAG_N;
4983 <    else yy_aconf->port |= OPER_FLAG_N;
4984 <  }
4240 >    block_state.port.value |= OPER_FLAG_OPER_SPY;
4241   }
4242      break;
4243  
4244 <  case 217:
4245 <
4246 < /* Line 1455 of yacc.c  */
4991 < #line 1500 "ircd_parser.y"
4244 >  case 192:
4245 > /* Line 1778 of yacc.c  */
4246 > #line 1185 "conf_parser.y"
4247      {
4248    if (conf_parser_ctx.pass == 2)
4249 <  {
4995 <    if (not_atom) yy_aconf->port &= ~OPER_FLAG_OPERWALL;
4996 <    else yy_aconf->port |= OPER_FLAG_OPERWALL;
4997 <  }
4249 >    block_state.port.value |= OPER_FLAG_REMOTEBAN;
4250   }
4251      break;
4252  
4253 <  case 218:
4254 <
4255 < /* Line 1455 of yacc.c  */
5004 < #line 1507 "ircd_parser.y"
4253 >  case 193:
4254 > /* Line 1778 of yacc.c  */
4255 > #line 1189 "conf_parser.y"
4256      {
4257    if (conf_parser_ctx.pass == 2)
4258 <  {
5008 <    if (not_atom) yy_aconf->port &= ~OPER_FLAG_OPER_SPY;
5009 <    else yy_aconf->port |= OPER_FLAG_OPER_SPY;
5010 <  }
4258 >    block_state.port.value |= OPER_FLAG_SET;
4259   }
4260      break;
4261  
4262 <  case 219:
4263 <
4264 < /* Line 1455 of yacc.c  */
5017 < #line 1514 "ircd_parser.y"
4262 >  case 194:
4263 > /* Line 1778 of yacc.c  */
4264 > #line 1193 "conf_parser.y"
4265      {
4266    if (conf_parser_ctx.pass == 2)
4267 <  {
5021 <    if (not_atom) yy_aconf->port &= ~OPER_FLAG_HIDDEN_OPER;
5022 <    else yy_aconf->port |= OPER_FLAG_HIDDEN_OPER;
5023 <  }
4267 >    block_state.port.value |= OPER_FLAG_MODULE;
4268   }
4269      break;
4270  
4271 <  case 220:
4272 <
4273 < /* Line 1455 of yacc.c  */
5030 < #line 1521 "ircd_parser.y"
4271 >  case 195:
4272 > /* Line 1778 of yacc.c  */
4273 > #line 1203 "conf_parser.y"
4274      {
4275 <  if (conf_parser_ctx.pass == 2)
5033 <  {
5034 <    if (not_atom) yy_aconf->port &= ~OPER_FLAG_REMOTEBAN;
5035 <    else yy_aconf->port |= OPER_FLAG_REMOTEBAN;
5036 <  }
5037 < }
4275 >  if (conf_parser_ctx.pass != 1)
4276      break;
4277  
4278 <  case 221:
5041 <
5042 < /* Line 1455 of yacc.c  */
5043 < #line 1528 "ircd_parser.y"
5044 <    {
5045 <  if (conf_parser_ctx.pass == 2)
5046 <  {
5047 <    if (not_atom) ClearConfEncrypted(yy_aconf);
5048 <    else SetConfEncrypted(yy_aconf);
5049 <  }
5050 < }
5051 <    break;
4278 >  reset_block_state();
4279  
4280 <  case 222:
4280 >  block_state.ping_freq.value = DEFAULT_PINGFREQUENCY;
4281 >  block_state.con_freq.value  = DEFAULT_CONNECTFREQUENCY;
4282 >  block_state.max_total.value = MAXIMUM_LINKS_DEFAULT;
4283 >  block_state.max_sendq.value = DEFAULT_SENDQ;
4284 >  block_state.max_recvq.value = DEFAULT_RECVQ;
4285  
5055 /* Line 1455 of yacc.c  */
5056 #line 1541 "ircd_parser.y"
5057    {
5058  if (conf_parser_ctx.pass == 1)
5059  {
5060    yy_conf = make_conf_item(CLASS_TYPE);
5061    yy_class = map_to_conf(yy_conf);
5062  }
4286   }
4287      break;
4288  
4289 <  case 223:
4290 <
4291 < /* Line 1455 of yacc.c  */
5069 < #line 1548 "ircd_parser.y"
5070 <    {
5071 <  if (conf_parser_ctx.pass == 1)
5072 <  {
5073 <    struct ConfItem *cconf = NULL;
5074 <    struct ClassItem *class = NULL;
5075 <
5076 <    if (yy_class_name == NULL)
5077 <      delete_conf_item(yy_conf);
5078 <    else
4289 >  case 196:
4290 > /* Line 1778 of yacc.c  */
4291 > #line 1216 "conf_parser.y"
4292      {
4293 <      cconf = find_exact_name_conf(CLASS_TYPE, yy_class_name, NULL, NULL);
5081 <
5082 <      if (cconf != NULL)                /* The class existed already */
5083 <      {
5084 <        int user_count = 0;
5085 <
5086 <        rebuild_cidr_class(cconf, yy_class);
4293 >  struct ClassItem *class = NULL;
4294  
4295 <        class = map_to_conf(cconf);
5089 <
5090 <        user_count = class->curr_user_count;
5091 <        memcpy(class, yy_class, sizeof(*class));
5092 <        class->curr_user_count = user_count;
5093 <        class->active = 1;
5094 <
5095 <        delete_conf_item(yy_conf);
5096 <
5097 <        MyFree(cconf->name);            /* Allows case change of class name */
5098 <        cconf->name = yy_class_name;
5099 <      }
5100 <      else      /* Brand new class */
5101 <      {
5102 <        MyFree(yy_conf->name);          /* just in case it was allocated */
5103 <        yy_conf->name = yy_class_name;
5104 <        yy_class->active = 1;
5105 <      }
5106 <    }
5107 <
5108 <    yy_class_name = NULL;
5109 <  }
5110 < }
4295 >  if (conf_parser_ctx.pass != 1)
4296      break;
4297  
4298 <  case 242:
4299 <
4300 < /* Line 1455 of yacc.c  */
4301 < #line 1608 "ircd_parser.y"
4302 <    {
4303 <  if (conf_parser_ctx.pass == 1)
4304 <  {
4305 <    MyFree(yy_class_name);
4306 <    DupString(yy_class_name, yylval.string);
4307 <  }
4298 >  if (!block_state.class.buf[0])
4299 >    break;
4300 >
4301 >  if (!(class = class_find(block_state.class.buf, 0)))
4302 >    class = class_make();
4303 >
4304 >  class->active = 1;
4305 >  MyFree(class->name);
4306 >  class->name = xstrdup(block_state.class.buf);
4307 >  class->ping_freq = block_state.ping_freq.value;
4308 >  class->max_perip = block_state.max_perip.value;
4309 >  class->con_freq = block_state.con_freq.value;
4310 >  class->max_total = block_state.max_total.value;
4311 >  class->max_global = block_state.max_global.value;
4312 >  class->max_local = block_state.max_local.value;
4313 >  class->max_ident = block_state.max_ident.value;
4314 >  class->max_sendq = block_state.max_sendq.value;
4315 >  class->max_recvq = block_state.max_recvq.value;
4316 >
4317 >  if (class->number_per_cidr && block_state.number_per_cidr.value)
4318 >    if ((class->cidr_bitlen_ipv4 && block_state.cidr_bitlen_ipv4.value) ||
4319 >        (class->cidr_bitlen_ipv6 && block_state.cidr_bitlen_ipv6.value))
4320 >      if ((class->cidr_bitlen_ipv4 != block_state.cidr_bitlen_ipv4.value) ||
4321 >          (class->cidr_bitlen_ipv6 != block_state.cidr_bitlen_ipv6.value))
4322 >        rebuild_cidr_list(class);
4323 >
4324 >  class->cidr_bitlen_ipv4 = block_state.cidr_bitlen_ipv4.value;
4325 >  class->cidr_bitlen_ipv6 = block_state.cidr_bitlen_ipv6.value;
4326 >  class->number_per_cidr = block_state.number_per_cidr.value;
4327   }
4328      break;
4329  
4330 <  case 243:
4331 <
4332 < /* Line 1455 of yacc.c  */
5129 < #line 1617 "ircd_parser.y"
4330 >  case 213:
4331 > /* Line 1778 of yacc.c  */
4332 > #line 1268 "conf_parser.y"
4333      {
4334    if (conf_parser_ctx.pass == 1)
4335 <  {
5133 <    MyFree(yy_class_name);
5134 <    DupString(yy_class_name, yylval.string);
5135 <  }
4335 >    strlcpy(block_state.class.buf, yylval.string, sizeof(block_state.class.buf));
4336   }
4337      break;
4338  
4339 <  case 244:
4340 <
4341 < /* Line 1455 of yacc.c  */
5142 < #line 1626 "ircd_parser.y"
4339 >  case 214:
4340 > /* Line 1778 of yacc.c  */
4341 > #line 1274 "conf_parser.y"
4342      {
4343    if (conf_parser_ctx.pass == 1)
4344 <    PingFreq(yy_class) = (yyvsp[(3) - (4)].number);
4344 >    block_state.ping_freq.value = (yyvsp[(3) - (4)].number);
4345   }
4346      break;
4347  
4348 <  case 245:
4349 <
4350 < /* Line 1455 of yacc.c  */
5152 < #line 1632 "ircd_parser.y"
4348 >  case 215:
4349 > /* Line 1778 of yacc.c  */
4350 > #line 1280 "conf_parser.y"
4351      {
4352    if (conf_parser_ctx.pass == 1)
4353 <    PingWarning(yy_class) = (yyvsp[(3) - (4)].number);
4353 >    block_state.max_perip.value = (yyvsp[(3) - (4)].number);
4354   }
4355      break;
4356  
4357 <  case 246:
4358 <
4359 < /* Line 1455 of yacc.c  */
5162 < #line 1638 "ircd_parser.y"
4357 >  case 216:
4358 > /* Line 1778 of yacc.c  */
4359 > #line 1286 "conf_parser.y"
4360      {
4361    if (conf_parser_ctx.pass == 1)
4362 <    MaxPerIp(yy_class) = (yyvsp[(3) - (4)].number);
4362 >    block_state.con_freq.value = (yyvsp[(3) - (4)].number);
4363   }
4364      break;
4365  
4366 <  case 247:
4367 <
4368 < /* Line 1455 of yacc.c  */
5172 < #line 1644 "ircd_parser.y"
4366 >  case 217:
4367 > /* Line 1778 of yacc.c  */
4368 > #line 1292 "conf_parser.y"
4369      {
4370    if (conf_parser_ctx.pass == 1)
4371 <    ConFreq(yy_class) = (yyvsp[(3) - (4)].number);
4371 >    block_state.max_total.value = (yyvsp[(3) - (4)].number);
4372   }
4373      break;
4374  
4375 <  case 248:
4376 <
4377 < /* Line 1455 of yacc.c  */
5182 < #line 1650 "ircd_parser.y"
4375 >  case 218:
4376 > /* Line 1778 of yacc.c  */
4377 > #line 1298 "conf_parser.y"
4378      {
4379    if (conf_parser_ctx.pass == 1)
4380 <    MaxTotal(yy_class) = (yyvsp[(3) - (4)].number);
4380 >    block_state.max_global.value = (yyvsp[(3) - (4)].number);
4381   }
4382      break;
4383  
4384 <  case 249:
4385 <
4386 < /* Line 1455 of yacc.c  */
5192 < #line 1656 "ircd_parser.y"
4384 >  case 219:
4385 > /* Line 1778 of yacc.c  */
4386 > #line 1304 "conf_parser.y"
4387      {
4388    if (conf_parser_ctx.pass == 1)
4389 <    MaxGlobal(yy_class) = (yyvsp[(3) - (4)].number);
4389 >    block_state.max_local.value = (yyvsp[(3) - (4)].number);
4390   }
4391      break;
4392  
4393 <  case 250:
4394 <
4395 < /* Line 1455 of yacc.c  */
5202 < #line 1662 "ircd_parser.y"
4393 >  case 220:
4394 > /* Line 1778 of yacc.c  */
4395 > #line 1310 "conf_parser.y"
4396      {
4397    if (conf_parser_ctx.pass == 1)
4398 <    MaxLocal(yy_class) = (yyvsp[(3) - (4)].number);
4398 >    block_state.max_ident.value = (yyvsp[(3) - (4)].number);
4399   }
4400      break;
4401  
4402 <  case 251:
4403 <
4404 < /* Line 1455 of yacc.c  */
5212 < #line 1668 "ircd_parser.y"
4402 >  case 221:
4403 > /* Line 1778 of yacc.c  */
4404 > #line 1316 "conf_parser.y"
4405      {
4406    if (conf_parser_ctx.pass == 1)
4407 <    MaxIdent(yy_class) = (yyvsp[(3) - (4)].number);
4407 >    block_state.max_sendq.value = (yyvsp[(3) - (4)].number);
4408   }
4409      break;
4410  
4411 <  case 252:
4412 <
4413 < /* Line 1455 of yacc.c  */
5222 < #line 1674 "ircd_parser.y"
4411 >  case 222:
4412 > /* Line 1778 of yacc.c  */
4413 > #line 1322 "conf_parser.y"
4414      {
4415    if (conf_parser_ctx.pass == 1)
4416 <    MaxSendq(yy_class) = (yyvsp[(3) - (4)].number);
4416 >    if ((yyvsp[(3) - (4)].number) >= CLIENT_FLOOD_MIN && (yyvsp[(3) - (4)].number) <= CLIENT_FLOOD_MAX)
4417 >      block_state.max_recvq.value = (yyvsp[(3) - (4)].number);
4418   }
4419      break;
4420  
4421 <  case 253:
4422 <
4423 < /* Line 1455 of yacc.c  */
5232 < #line 1680 "ircd_parser.y"
4421 >  case 223:
4422 > /* Line 1778 of yacc.c  */
4423 > #line 1329 "conf_parser.y"
4424      {
4425    if (conf_parser_ctx.pass == 1)
4426 <    CidrBitlenIPV4(yy_class) = (yyvsp[(3) - (4)].number);
4426 >    block_state.cidr_bitlen_ipv4.value = (yyvsp[(3) - (4)].number) > 32 ? 32 : (yyvsp[(3) - (4)].number);
4427   }
4428      break;
4429  
4430 <  case 254:
4431 <
4432 < /* Line 1455 of yacc.c  */
5242 < #line 1686 "ircd_parser.y"
4430 >  case 224:
4431 > /* Line 1778 of yacc.c  */
4432 > #line 1335 "conf_parser.y"
4433      {
4434    if (conf_parser_ctx.pass == 1)
4435 <    CidrBitlenIPV6(yy_class) = (yyvsp[(3) - (4)].number);
4435 >    block_state.cidr_bitlen_ipv6.value = (yyvsp[(3) - (4)].number) > 128 ? 128 : (yyvsp[(3) - (4)].number);
4436   }
4437      break;
4438  
4439 <  case 255:
4440 <
4441 < /* Line 1455 of yacc.c  */
5252 < #line 1692 "ircd_parser.y"
4439 >  case 225:
4440 > /* Line 1778 of yacc.c  */
4441 > #line 1341 "conf_parser.y"
4442      {
4443    if (conf_parser_ctx.pass == 1)
4444 <    NumberPerCidr(yy_class) = (yyvsp[(3) - (4)].number);
5256 < }
5257 <    break;
5258 <
5259 <  case 256:
5260 <
5261 < /* Line 1455 of yacc.c  */
5262 < #line 1701 "ircd_parser.y"
5263 <    {
5264 <  if (conf_parser_ctx.pass == 2)
5265 <  {
5266 <    listener_address = NULL;
5267 <    listener_flags = 0;
5268 <  }
4444 >    block_state.number_per_cidr.value = (yyvsp[(3) - (4)].number);
4445   }
4446      break;
4447  
4448 <  case 257:
4449 <
4450 < /* Line 1455 of yacc.c  */
5275 < #line 1708 "ircd_parser.y"
4448 >  case 226:
4449 > /* Line 1778 of yacc.c  */
4450 > #line 1350 "conf_parser.y"
4451      {
4452    if (conf_parser_ctx.pass == 2)
4453 <  {
5279 <    MyFree(listener_address);
5280 <    listener_address = NULL;
5281 <  }
4453 >    reset_block_state();
4454   }
4455      break;
4456  
4457 <  case 258:
4458 <
4459 < /* Line 1455 of yacc.c  */
5288 < #line 1717 "ircd_parser.y"
4457 >  case 228:
4458 > /* Line 1778 of yacc.c  */
4459 > #line 1356 "conf_parser.y"
4460      {
4461 <  listener_flags = 0;
4461 >  block_state.flags.value = 0;
4462   }
4463      break;
4464  
4465 <  case 262:
4466 <
4467 < /* Line 1455 of yacc.c  */
5297 < #line 1723 "ircd_parser.y"
4465 >  case 232:
4466 > /* Line 1778 of yacc.c  */
4467 > #line 1362 "conf_parser.y"
4468      {
4469    if (conf_parser_ctx.pass == 2)
4470 <    listener_flags |= LISTENER_SSL;
4470 >    block_state.flags.value |= LISTENER_SSL;
4471   }
4472      break;
4473  
4474 <  case 263:
4475 <
4476 < /* Line 1455 of yacc.c  */
5307 < #line 1727 "ircd_parser.y"
4474 >  case 233:
4475 > /* Line 1778 of yacc.c  */
4476 > #line 1366 "conf_parser.y"
4477      {
4478    if (conf_parser_ctx.pass == 2)
4479 <    listener_flags |= LISTENER_HIDDEN;
4479 >    block_state.flags.value |= LISTENER_HIDDEN;
4480   }
4481      break;
4482  
4483 <  case 264:
4484 <
4485 < /* Line 1455 of yacc.c  */
5317 < #line 1731 "ircd_parser.y"
4483 >  case 234:
4484 > /* Line 1778 of yacc.c  */
4485 > #line 1370 "conf_parser.y"
4486      {
4487    if (conf_parser_ctx.pass == 2)
4488 <    listener_flags |= LISTENER_SERVER;
4488 >   block_state.flags.value |= LISTENER_SERVER;
4489   }
4490      break;
4491  
4492 <  case 272:
4493 <
4494 < /* Line 1455 of yacc.c  */
4495 < #line 1741 "ircd_parser.y"
5328 <    { listener_flags = 0; }
4492 >  case 242:
4493 > /* Line 1778 of yacc.c  */
4494 > #line 1378 "conf_parser.y"
4495 >    { block_state.flags.value = 0; }
4496      break;
4497  
4498 <  case 276:
4499 <
4500 < /* Line 1455 of yacc.c  */
5334 < #line 1746 "ircd_parser.y"
4498 >  case 246:
4499 > /* Line 1778 of yacc.c  */
4500 > #line 1383 "conf_parser.y"
4501      {
4502    if (conf_parser_ctx.pass == 2)
4503    {
4504 <    if ((listener_flags & LISTENER_SSL))
4504 >    if (block_state.flags.value & LISTENER_SSL)
4505   #ifdef HAVE_LIBCRYPTO
4506        if (!ServerInfo.server_ctx)
4507   #endif
# Line 5343 | Line 4509 | yyreduce:
4509          yyerror("SSL not available - port closed");
4510          break;
4511        }
4512 <    add_listener((yyvsp[(1) - (1)].number), listener_address, listener_flags);
4512 >    add_listener((yyvsp[(1) - (1)].number), block_state.addr.buf, block_state.flags.value);
4513    }
4514   }
4515      break;
4516  
4517 <  case 277:
4518 <
4519 < /* Line 1455 of yacc.c  */
5354 < #line 1760 "ircd_parser.y"
4517 >  case 247:
4518 > /* Line 1778 of yacc.c  */
4519 > #line 1397 "conf_parser.y"
4520      {
4521    if (conf_parser_ctx.pass == 2)
4522    {
4523      int i;
4524  
4525 <    if ((listener_flags & LISTENER_SSL))
4525 >    if (block_state.flags.value & LISTENER_SSL)
4526   #ifdef HAVE_LIBCRYPTO
4527        if (!ServerInfo.server_ctx)
4528   #endif
# Line 5367 | Line 4532 | yyreduce:
4532        }
4533  
4534      for (i = (yyvsp[(1) - (3)].number); i <= (yyvsp[(3) - (3)].number); ++i)
4535 <      add_listener(i, listener_address, listener_flags);
4535 >      add_listener(i, block_state.addr.buf, block_state.flags.value);
4536    }
4537   }
4538      break;
4539  
4540 <  case 278:
4541 <
4542 < /* Line 1455 of yacc.c  */
5378 < #line 1780 "ircd_parser.y"
4540 >  case 248:
4541 > /* Line 1778 of yacc.c  */
4542 > #line 1417 "conf_parser.y"
4543      {
4544    if (conf_parser_ctx.pass == 2)
4545 <  {
5382 <    MyFree(listener_address);
5383 <    DupString(listener_address, yylval.string);
5384 <  }
4545 >    strlcpy(block_state.addr.buf, yylval.string, sizeof(block_state.addr.buf));
4546   }
4547      break;
4548  
4549 <  case 279:
4550 <
4551 < /* Line 1455 of yacc.c  */
5391 < #line 1789 "ircd_parser.y"
4549 >  case 249:
4550 > /* Line 1778 of yacc.c  */
4551 > #line 1423 "conf_parser.y"
4552      {
4553    if (conf_parser_ctx.pass == 2)
4554 <  {
5395 <    MyFree(listener_address);
5396 <    DupString(listener_address, yylval.string);
5397 <  }
4554 >    strlcpy(block_state.addr.buf, yylval.string, sizeof(block_state.addr.buf));
4555   }
4556      break;
4557  
4558 <  case 280:
4559 <
4560 < /* Line 1455 of yacc.c  */
5404 < #line 1801 "ircd_parser.y"
4558 >  case 250:
4559 > /* Line 1778 of yacc.c  */
4560 > #line 1432 "conf_parser.y"
4561      {
4562    if (conf_parser_ctx.pass == 2)
4563 <  {
5408 <    yy_conf = make_conf_item(CLIENT_TYPE);
5409 <    yy_aconf = map_to_conf(yy_conf);
5410 <  }
5411 <  else
5412 <  {
5413 <    MyFree(class_name);
5414 <    class_name = NULL;
5415 <  }
4563 >    reset_block_state();
4564   }
4565      break;
4566  
4567 <  case 281:
4568 <
4569 < /* Line 1455 of yacc.c  */
5422 < #line 1813 "ircd_parser.y"
5423 <    {
5424 <  if (conf_parser_ctx.pass == 2)
5425 <  {
5426 <    struct CollectItem *yy_tmp = NULL;
5427 <    dlink_node *ptr = NULL, *next_ptr = NULL;
5428 <
5429 <    if (yy_aconf->user && yy_aconf->host)
5430 <    {
5431 <      conf_add_class_to_conf(yy_conf, class_name);
5432 <      add_conf_by_address(CONF_CLIENT, yy_aconf);
5433 <    }
5434 <    else
5435 <      delete_conf_item(yy_conf);
5436 <
5437 <    /* copy over settings from first struct */
5438 <    DLINK_FOREACH_SAFE(ptr, next_ptr, col_conf_list.head)
4567 >  case 251:
4568 > /* Line 1778 of yacc.c  */
4569 > #line 1436 "conf_parser.y"
4570      {
4571 <      struct AccessItem *new_aconf;
5441 <      struct ConfItem *new_conf;
5442 <
5443 <      new_conf = make_conf_item(CLIENT_TYPE);
5444 <      new_aconf = map_to_conf(new_conf);
5445 <
5446 <      yy_tmp = ptr->data;
5447 <
5448 <      assert(yy_tmp->user && yy_tmp->host);
5449 <
5450 <      if (yy_aconf->passwd != NULL)
5451 <        DupString(new_aconf->passwd, yy_aconf->passwd);
5452 <      if (yy_conf->name != NULL)
5453 <        DupString(new_conf->name, yy_conf->name);
5454 <      if (yy_aconf->passwd != NULL)
5455 <        DupString(new_aconf->passwd, yy_aconf->passwd);
4571 >  dlink_node *ptr = NULL;
4572  
4573 <      new_aconf->flags = yy_aconf->flags;
5458 <      new_aconf->port  = yy_aconf->port;
5459 <
5460 <      DupString(new_aconf->user, yy_tmp->user);
5461 <      collapse(new_aconf->user);
5462 <
5463 <      DupString(new_aconf->host, yy_tmp->host);
5464 <      collapse(new_aconf->host);
5465 <
5466 <      conf_add_class_to_conf(new_conf, class_name);
5467 <      add_conf_by_address(CONF_CLIENT, new_aconf);
5468 <      dlinkDelete(&yy_tmp->node, &col_conf_list);
5469 <      free_collect_item(yy_tmp);
5470 <    }
5471 <
5472 <    MyFree(class_name);
5473 <    class_name = NULL;
5474 <    yy_conf = NULL;
5475 <    yy_aconf = NULL;
5476 <  }
5477 < }
4573 >  if (conf_parser_ctx.pass != 2)
4574      break;
4575  
4576 <  case 301:
5481 <
5482 < /* Line 1455 of yacc.c  */
5483 < #line 1878 "ircd_parser.y"
5484 <    {
5485 <  if (conf_parser_ctx.pass == 2)
4576 >  DLINK_FOREACH(ptr, block_state.mask.list.head)
4577    {
4578 <    struct CollectItem *yy_tmp = NULL;
4578 >    struct MaskItem *conf = NULL;
4579      struct split_nuh_item nuh;
4580  
4581 <    nuh.nuhmask  = yylval.string;
4581 >    nuh.nuhmask  = ptr->data;
4582      nuh.nickptr  = NULL;
4583 <    nuh.userptr  = userbuf;
4584 <    nuh.hostptr  = hostbuf;
5494 <
4583 >    nuh.userptr  = block_state.user.buf;
4584 >    nuh.hostptr  = block_state.host.buf;
4585      nuh.nicksize = 0;
4586 <    nuh.usersize = sizeof(userbuf);
4587 <    nuh.hostsize = sizeof(hostbuf);
5498 <
4586 >    nuh.usersize = sizeof(block_state.user.buf);
4587 >    nuh.hostsize = sizeof(block_state.host.buf);
4588      split_nuh(&nuh);
4589  
4590 <    if (yy_aconf->user == NULL)
4591 <    {
4592 <      DupString(yy_aconf->user, userbuf);
4593 <      DupString(yy_aconf->host, hostbuf);
4594 <    }
4595 <    else
4596 <    {
4597 <      yy_tmp = MyMalloc(sizeof(struct CollectItem));
4590 >    conf        = conf_make(CONF_CLIENT);
4591 >    conf->user  = xstrdup(collapse(block_state.user.buf));
4592 >    conf->host  = xstrdup(collapse(block_state.host.buf));
4593 >
4594 >    if (block_state.rpass.buf[0])
4595 >      conf->passwd = xstrdup(block_state.rpass.buf);
4596 >    if (block_state.name.buf[0])
4597 >      conf->passwd = xstrdup(block_state.name.buf);
4598  
4599 <      DupString(yy_tmp->user, userbuf);
4600 <      DupString(yy_tmp->host, hostbuf);
4599 >    conf->flags = block_state.flags.value;
4600 >    conf->port  = block_state.port.value;
4601  
4602 <      dlinkAdd(yy_tmp, &yy_tmp->node, &col_conf_list);
4603 <    }
4602 >    conf_add_class_to_conf(conf, block_state.class.buf);
4603 >    add_conf_by_address(CONF_CLIENT, conf);
4604    }
4605   }
4606      break;
4607  
4608 <  case 302:
4609 <
4610 < /* Line 1455 of yacc.c  */
5522 < #line 1915 "ircd_parser.y"
4608 >  case 263:
4609 > /* Line 1778 of yacc.c  */
4610 > #line 1479 "conf_parser.y"
4611      {
4612    if (conf_parser_ctx.pass == 2)
4613 <  {
5526 <    /* be paranoid */
5527 <    if (yy_aconf->passwd != NULL)
5528 <      memset(yy_aconf->passwd, 0, strlen(yy_aconf->passwd));
5529 <
5530 <    MyFree(yy_aconf->passwd);
5531 <    DupString(yy_aconf->passwd, yylval.string);
5532 <  }
4613 >    dlinkAdd(xstrdup(yylval.string), make_dlink_node(), &block_state.mask.list);
4614   }
4615      break;
4616  
4617 <  case 303:
4618 <
4619 < /* Line 1455 of yacc.c  */
5539 < #line 1928 "ircd_parser.y"
4617 >  case 264:
4618 > /* Line 1778 of yacc.c  */
4619 > #line 1485 "conf_parser.y"
4620      {
4621    if (conf_parser_ctx.pass == 2)
4622 <  {
5543 <    if (yylval.number)
5544 <      yy_aconf->flags |= CONF_FLAGS_SPOOF_NOTICE;
5545 <    else
5546 <      yy_aconf->flags &= ~CONF_FLAGS_SPOOF_NOTICE;
5547 <  }
4622 >    strlcpy(block_state.rpass.buf, yylval.string, sizeof(block_state.rpass.buf));
4623   }
4624      break;
4625  
4626 <  case 304:
4627 <
4628 < /* Line 1455 of yacc.c  */
5554 < #line 1939 "ircd_parser.y"
4626 >  case 265:
4627 > /* Line 1778 of yacc.c  */
4628 > #line 1491 "conf_parser.y"
4629      {
4630    if (conf_parser_ctx.pass == 2)
4631 <  {
5558 <    MyFree(class_name);
5559 <    DupString(class_name, yylval.string);
5560 <  }
4631 >    strlcpy(block_state.class.buf, yylval.string, sizeof(block_state.class.buf));
4632   }
4633      break;
4634  
4635 <  case 305:
4636 <
4637 < /* Line 1455 of yacc.c  */
5567 < #line 1948 "ircd_parser.y"
4635 >  case 266:
4636 > /* Line 1778 of yacc.c  */
4637 > #line 1497 "conf_parser.y"
4638      {
4639    if (conf_parser_ctx.pass == 2)
4640    {
4641      if (yylval.number)
4642 <      SetConfEncrypted(yy_aconf);
4642 >      block_state.flags.value |= CONF_FLAGS_ENCRYPTED;
4643      else
4644 <      ClearConfEncrypted(yy_aconf);
4644 >      block_state.flags.value &= ~CONF_FLAGS_ENCRYPTED;
4645    }
4646   }
4647      break;
4648  
4649 <  case 306:
4650 <
4651 < /* Line 1455 of yacc.c  */
5582 < #line 1959 "ircd_parser.y"
5583 <    {
5584 < }
5585 <    break;
5586 <
5587 <  case 310:
5588 <
5589 < /* Line 1455 of yacc.c  */
5590 < #line 1963 "ircd_parser.y"
5591 <    { not_atom = 1; }
5592 <    break;
5593 <
5594 <  case 312:
5595 <
5596 < /* Line 1455 of yacc.c  */
5597 < #line 1964 "ircd_parser.y"
5598 <    { not_atom = 0; }
5599 <    break;
5600 <
5601 <  case 314:
5602 <
5603 < /* Line 1455 of yacc.c  */
5604 < #line 1967 "ircd_parser.y"
5605 <    {
5606 <  if (conf_parser_ctx.pass == 2)
5607 <  {
5608 <    if (not_atom) yy_aconf->flags &= ~CONF_FLAGS_SPOOF_NOTICE;
5609 <    else yy_aconf->flags |= CONF_FLAGS_SPOOF_NOTICE;
5610 <  }
5611 <
5612 < }
5613 <    break;
5614 <
5615 <  case 315:
5616 <
5617 < /* Line 1455 of yacc.c  */
5618 < #line 1975 "ircd_parser.y"
4649 >  case 267:
4650 > /* Line 1778 of yacc.c  */
4651 > #line 1508 "conf_parser.y"
4652      {
4653    if (conf_parser_ctx.pass == 2)
4654 <  {
5622 <    if (not_atom) yy_aconf->flags &= ~CONF_FLAGS_NOLIMIT;
5623 <    else yy_aconf->flags |= CONF_FLAGS_NOLIMIT;
5624 <  }
4654 >    block_state.flags.value &= CONF_FLAGS_ENCRYPTED;
4655   }
4656      break;
4657  
4658 <  case 316:
4659 <
4660 < /* Line 1455 of yacc.c  */
5631 < #line 1982 "ircd_parser.y"
4658 >  case 271:
4659 > /* Line 1778 of yacc.c  */
4660 > #line 1515 "conf_parser.y"
4661      {
4662    if (conf_parser_ctx.pass == 2)
4663 <  {
5635 <    if (not_atom) yy_aconf->flags &= ~CONF_FLAGS_EXEMPTKLINE;
5636 <    else yy_aconf->flags |= CONF_FLAGS_EXEMPTKLINE;
5637 <  }
4663 >    block_state.flags.value |= CONF_FLAGS_SPOOF_NOTICE;
4664   }
4665      break;
4666  
4667 <  case 317:
4668 <
4669 < /* Line 1455 of yacc.c  */
5644 < #line 1989 "ircd_parser.y"
4667 >  case 272:
4668 > /* Line 1778 of yacc.c  */
4669 > #line 1519 "conf_parser.y"
4670      {
4671    if (conf_parser_ctx.pass == 2)
4672 <  {
5648 <    if (not_atom) yy_aconf->flags &= ~CONF_FLAGS_NEED_IDENTD;
5649 <    else yy_aconf->flags |= CONF_FLAGS_NEED_IDENTD;
5650 <  }
4672 >    block_state.flags.value |= CONF_FLAGS_NOLIMIT;
4673   }
4674      break;
4675  
4676 <  case 318:
4677 <
4678 < /* Line 1455 of yacc.c  */
5657 < #line 1996 "ircd_parser.y"
4676 >  case 273:
4677 > /* Line 1778 of yacc.c  */
4678 > #line 1523 "conf_parser.y"
4679      {
4680    if (conf_parser_ctx.pass == 2)
4681 <  {
5661 <    if (not_atom) yy_aconf->flags &= ~CONF_FLAGS_CAN_FLOOD;
5662 <    else yy_aconf->flags |= CONF_FLAGS_CAN_FLOOD;
5663 <  }
4681 >    block_state.flags.value |= CONF_FLAGS_EXEMPTKLINE;
4682   }
4683      break;
4684  
4685 <  case 319:
4686 <
4687 < /* Line 1455 of yacc.c  */
5670 < #line 2003 "ircd_parser.y"
4685 >  case 274:
4686 > /* Line 1778 of yacc.c  */
4687 > #line 1527 "conf_parser.y"
4688      {
4689    if (conf_parser_ctx.pass == 2)
4690 <  {
5674 <    if (not_atom) yy_aconf->flags &= ~CONF_FLAGS_IDLE_LINED;
5675 <    else yy_aconf->flags |= CONF_FLAGS_IDLE_LINED;
5676 <  }
4690 >    block_state.flags.value |= CONF_FLAGS_NEED_IDENTD;
4691   }
4692      break;
4693  
4694 <  case 320:
4695 <
4696 < /* Line 1455 of yacc.c  */
5683 < #line 2010 "ircd_parser.y"
4694 >  case 275:
4695 > /* Line 1778 of yacc.c  */
4696 > #line 1531 "conf_parser.y"
4697      {
4698    if (conf_parser_ctx.pass == 2)
4699 <  {
5687 <    if (not_atom) yy_aconf->flags &= ~CONF_FLAGS_NO_TILDE;
5688 <    else yy_aconf->flags |= CONF_FLAGS_NO_TILDE;
5689 <  }
4699 >    block_state.flags.value |= CONF_FLAGS_CAN_FLOOD;
4700   }
4701      break;
4702  
4703 <  case 321:
4704 <
4705 < /* Line 1455 of yacc.c  */
5696 < #line 2017 "ircd_parser.y"
4703 >  case 276:
4704 > /* Line 1778 of yacc.c  */
4705 > #line 1535 "conf_parser.y"
4706      {
4707    if (conf_parser_ctx.pass == 2)
4708 <  {
5700 <    if (not_atom) yy_aconf->flags &= ~CONF_FLAGS_EXEMPTGLINE;
5701 <    else yy_aconf->flags |= CONF_FLAGS_EXEMPTGLINE;
5702 <  }
4708 >    block_state.flags.value |= CONF_FLAGS_NO_TILDE;
4709   }
4710      break;
4711  
4712 <  case 322:
4713 <
4714 < /* Line 1455 of yacc.c  */
5709 < #line 2024 "ircd_parser.y"
4712 >  case 277:
4713 > /* Line 1778 of yacc.c  */
4714 > #line 1539 "conf_parser.y"
4715      {
4716    if (conf_parser_ctx.pass == 2)
4717 <  {
5713 <    if (not_atom) yy_aconf->flags &= ~CONF_FLAGS_EXEMPTRESV;
5714 <    else yy_aconf->flags |= CONF_FLAGS_EXEMPTRESV;
5715 <  }
4717 >    block_state.flags.value |= CONF_FLAGS_EXEMPTGLINE;
4718   }
4719      break;
4720  
4721 <  case 323:
4722 <
4723 < /* Line 1455 of yacc.c  */
5722 < #line 2031 "ircd_parser.y"
4721 >  case 278:
4722 > /* Line 1778 of yacc.c  */
4723 > #line 1543 "conf_parser.y"
4724      {
4725    if (conf_parser_ctx.pass == 2)
4726 <  {
5726 <    if (not_atom) yy_aconf->flags &= ~CONF_FLAGS_NEED_PASSWORD;
5727 <    else yy_aconf->flags |= CONF_FLAGS_NEED_PASSWORD;
5728 <  }
4726 >    block_state.flags.value |= CONF_FLAGS_EXEMPTRESV;
4727   }
4728      break;
4729  
4730 <  case 324:
4731 <
4732 < /* Line 1455 of yacc.c  */
5735 < #line 2040 "ircd_parser.y"
4730 >  case 279:
4731 > /* Line 1778 of yacc.c  */
4732 > #line 1547 "conf_parser.y"
4733      {
4734    if (conf_parser_ctx.pass == 2)
4735 <  {
5739 <    if (yylval.number)
5740 <      yy_aconf->flags |= CONF_FLAGS_EXEMPTKLINE;
5741 <    else
5742 <      yy_aconf->flags &= ~CONF_FLAGS_EXEMPTKLINE;
5743 <  }
4735 >    block_state.flags.value |= CONF_FLAGS_NEED_PASSWORD;
4736   }
4737      break;
4738  
4739 <  case 325:
4740 <
4741 < /* Line 1455 of yacc.c  */
5750 < #line 2051 "ircd_parser.y"
4739 >  case 280:
4740 > /* Line 1778 of yacc.c  */
4741 > #line 1553 "conf_parser.y"
4742      {
4743 <  if (conf_parser_ctx.pass == 2)
5753 <  {
5754 <    if (yylval.number)
5755 <      yy_aconf->flags |= CONF_FLAGS_NEED_IDENTD;
5756 <    else
5757 <      yy_aconf->flags &= ~CONF_FLAGS_NEED_IDENTD;
5758 <  }
5759 < }
4743 >  if (conf_parser_ctx.pass != 2)
4744      break;
4745  
4746 <  case 326:
5763 <
5764 < /* Line 1455 of yacc.c  */
5765 < #line 2062 "ircd_parser.y"
5766 <    {
5767 <  if (conf_parser_ctx.pass == 2)
4746 >  if (strlen(yylval.string) <= HOSTLEN && valid_hostname(yylval.string))
4747    {
4748 <    if (yylval.number)
4749 <      yy_aconf->flags |= CONF_FLAGS_NOLIMIT;
5771 <    else
5772 <      yy_aconf->flags &= ~CONF_FLAGS_NOLIMIT;
4748 >    strlcpy(block_state.name.buf, yylval.string, sizeof(block_state.name.buf));
4749 >    block_state.flags.value |= CONF_FLAGS_SPOOF_IP;
4750    }
4751 +  else
4752 +    ilog(LOG_TYPE_IRCD, "Spoof either is too long or contains invalid characters. Ignoring it.");
4753   }
4754      break;
4755  
4756 <  case 327:
4757 <
4758 < /* Line 1455 of yacc.c  */
5780 < #line 2073 "ircd_parser.y"
4756 >  case 281:
4757 > /* Line 1778 of yacc.c  */
4758 > #line 1567 "conf_parser.y"
4759      {
4760 <  if (conf_parser_ctx.pass == 2)
5783 <  {
5784 <    if (yylval.number)
5785 <      yy_aconf->flags |= CONF_FLAGS_CAN_FLOOD;
5786 <    else
5787 <      yy_aconf->flags &= ~CONF_FLAGS_CAN_FLOOD;
5788 <  }
5789 < }
4760 >  if (conf_parser_ctx.pass != 2)
4761      break;
4762  
4763 <  case 328:
4764 <
5794 < /* Line 1455 of yacc.c  */
5795 < #line 2084 "ircd_parser.y"
5796 <    {
5797 <  if (conf_parser_ctx.pass == 2)
5798 <  {
5799 <    if (yylval.number)
5800 <      yy_aconf->flags |= CONF_FLAGS_NO_TILDE;
5801 <    else
5802 <      yy_aconf->flags &= ~CONF_FLAGS_NO_TILDE;
5803 <  }
4763 >  strlcpy(block_state.name.buf, yylval.string, sizeof(block_state.name.buf));
4764 >  block_state.flags.value |= CONF_FLAGS_REDIR;
4765   }
4766      break;
4767  
4768 <  case 329:
4769 <
4770 < /* Line 1455 of yacc.c  */
5810 < #line 2095 "ircd_parser.y"
4768 >  case 282:
4769 > /* Line 1778 of yacc.c  */
4770 > #line 1576 "conf_parser.y"
4771      {
4772 <  if (conf_parser_ctx.pass == 2)
5813 <  {
5814 <    if (yylval.number)
5815 <      yy_aconf->flags |= CONF_FLAGS_EXEMPTGLINE;
5816 <    else
5817 <      yy_aconf->flags &= ~CONF_FLAGS_EXEMPTGLINE;
5818 <  }
5819 < }
4772 >  if (conf_parser_ctx.pass != 2)
4773      break;
4774  
4775 <  case 330:
4776 <
5824 < /* Line 1455 of yacc.c  */
5825 < #line 2107 "ircd_parser.y"
5826 <    {
5827 <  if (conf_parser_ctx.pass == 2)
5828 <  {
5829 <    MyFree(yy_conf->name);
5830 <
5831 <    if (strlen(yylval.string) < HOSTLEN)
5832 <    {    
5833 <      DupString(yy_conf->name, yylval.string);
5834 <      yy_aconf->flags |= CONF_FLAGS_SPOOF_IP;
5835 <    }
5836 <    else
5837 <    {
5838 <      ilog(L_ERROR, "Spoofs must be less than %d..ignoring it", HOSTLEN);
5839 <      yy_conf->name = NULL;
5840 <    }
5841 <  }
4775 >  block_state.flags.value |= CONF_FLAGS_REDIR;
4776 >  block_state.port.value = (yyvsp[(3) - (4)].number);
4777   }
4778      break;
4779  
4780 <  case 331:
4781 <
4782 < /* Line 1455 of yacc.c  */
5848 < #line 2126 "ircd_parser.y"
4780 >  case 283:
4781 > /* Line 1778 of yacc.c  */
4782 > #line 1589 "conf_parser.y"
4783      {
4784 <  if (conf_parser_ctx.pass == 2)
5851 <  {
5852 <    yy_aconf->flags |= CONF_FLAGS_REDIR;
5853 <    MyFree(yy_conf->name);
5854 <    DupString(yy_conf->name, yylval.string);
5855 <  }
5856 < }
4784 >  if (conf_parser_ctx.pass != 2)
4785      break;
4786  
4787 <  case 332:
4788 <
5861 < /* Line 1455 of yacc.c  */
5862 < #line 2136 "ircd_parser.y"
5863 <    {
5864 <  if (conf_parser_ctx.pass == 2)
5865 <  {
5866 <    yy_aconf->flags |= CONF_FLAGS_REDIR;
5867 <    yy_aconf->port = (yyvsp[(3) - (4)].number);
5868 <  }
4787 >  reset_block_state();
4788 >  strlcpy(block_state.rpass.buf, CONF_NOREASON, sizeof(block_state.rpass.buf));
4789   }
4790      break;
4791  
4792 <  case 333:
4793 <
4794 < /* Line 1455 of yacc.c  */
5875 < #line 2145 "ircd_parser.y"
4792 >  case 291:
4793 > /* Line 1778 of yacc.c  */
4794 > #line 1601 "conf_parser.y"
4795      {
4796    if (conf_parser_ctx.pass == 2)
4797 <  {
5879 <    if (yylval.number)
5880 <      yy_aconf->flags |= CONF_FLAGS_NEED_PASSWORD;
5881 <    else
5882 <      yy_aconf->flags &= ~CONF_FLAGS_NEED_PASSWORD;
5883 <  }
4797 >    strlcpy(block_state.rpass.buf, yylval.string, sizeof(block_state.rpass.buf));
4798   }
4799      break;
4800  
4801 <  case 334:
4802 <
4803 < /* Line 1455 of yacc.c  */
5890 < #line 2160 "ircd_parser.y"
4801 >  case 292:
4802 > /* Line 1778 of yacc.c  */
4803 > #line 1607 "conf_parser.y"
4804      {
4805 <  if (conf_parser_ctx.pass == 2)
5893 <  {
5894 <    MyFree(resv_reason);
5895 <    resv_reason = NULL;
5896 <  }
5897 < }
4805 >  if (conf_parser_ctx.pass != 2)
4806      break;
4807  
4808 <  case 335:
4809 <
5902 < /* Line 1455 of yacc.c  */
5903 < #line 2167 "ircd_parser.y"
5904 <    {
5905 <  if (conf_parser_ctx.pass == 2)
5906 <  {
5907 <    MyFree(resv_reason);
5908 <    resv_reason = NULL;
5909 <  }
4808 >  if (IsChanPrefix(*yylval.string))
4809 >    create_channel_resv(yylval.string, block_state.rpass.buf, 1);
4810   }
4811      break;
4812  
4813 <  case 342:
4814 <
4815 < /* Line 1455 of yacc.c  */
5916 < #line 2179 "ircd_parser.y"
4813 >  case 293:
4814 > /* Line 1778 of yacc.c  */
4815 > #line 1616 "conf_parser.y"
4816      {
4817    if (conf_parser_ctx.pass == 2)
4818 <  {
5920 <    MyFree(resv_reason);
5921 <    DupString(resv_reason, yylval.string);
5922 <  }
4818 >    create_nick_resv(yylval.string, block_state.rpass.buf, 1);
4819   }
4820      break;
4821  
4822 <  case 343:
4823 <
4824 < /* Line 1455 of yacc.c  */
5929 < #line 2188 "ircd_parser.y"
4822 >  case 299:
4823 > /* Line 1778 of yacc.c  */
4824 > #line 1630 "conf_parser.y"
4825      {
4826    if (conf_parser_ctx.pass == 2)
4827    {
4828 <    if (IsChanPrefix(*yylval.string))
4828 >    if (valid_servname(yylval.string))
4829      {
4830 <      char def_reason[] = "No reason";
4831 <
5937 <      create_channel_resv(yylval.string, resv_reason != NULL ? resv_reason : def_reason, 1);
4830 >      struct MaskItem *conf = conf_make(CONF_SERVICE);
4831 >      conf->name = xstrdup(yylval.string);
4832      }
4833    }
5940  /* ignore it for now.. but we really should make a warning if
5941   * its an erroneous name --fl_ */
4834   }
4835      break;
4836  
4837 <  case 344:
4838 <
4839 < /* Line 1455 of yacc.c  */
5948 < #line 2203 "ircd_parser.y"
4837 >  case 300:
4838 > /* Line 1778 of yacc.c  */
4839 > #line 1645 "conf_parser.y"
4840      {
4841 <  if (conf_parser_ctx.pass == 2)
5951 <  {
5952 <    char def_reason[] = "No reason";
5953 <
5954 <    create_nick_resv(yylval.string, resv_reason != NULL ? resv_reason : def_reason, 1);
5955 <  }
5956 < }
4841 >  if (conf_parser_ctx.pass != 2)
4842      break;
4843  
4844 <  case 345:
4844 >  reset_block_state();
4845  
4846 < /* Line 1455 of yacc.c  */
4847 < #line 2216 "ircd_parser.y"
4848 <    {
4849 <  if (conf_parser_ctx.pass == 2)
5965 <  {
5966 <    yy_conf = make_conf_item(ULINE_TYPE);
5967 <    yy_match_item = map_to_conf(yy_conf);
5968 <    yy_match_item->action = SHARED_ALL;
5969 <  }
4846 >  strlcpy(block_state.name.buf, "*", sizeof(block_state.name.buf));
4847 >  strlcpy(block_state.user.buf, "*", sizeof(block_state.user.buf));
4848 >  strlcpy(block_state.host.buf, "*", sizeof(block_state.host.buf));
4849 >  block_state.flags.value = SHARED_ALL;
4850   }
4851      break;
4852  
4853 <  case 346:
4854 <
4855 < /* Line 1455 of yacc.c  */
5976 < #line 2224 "ircd_parser.y"
4853 >  case 301:
4854 > /* Line 1778 of yacc.c  */
4855 > #line 1656 "conf_parser.y"
4856      {
4857 <  if (conf_parser_ctx.pass == 2)
4858 <  {
4859 <    yy_conf = NULL;
5981 <  }
5982 < }
4857 >  struct MaskItem *conf = NULL;
4858 >
4859 >  if (conf_parser_ctx.pass != 2)
4860      break;
4861  
4862 <  case 353:
4862 >  conf = conf_make(CONF_ULINE);
4863 >  conf->flags = block_state.flags.value;
4864 >  conf->name = xstrdup(block_state.name.buf);
4865 >  conf->user = xstrdup(block_state.user.buf);
4866 >  conf->user = xstrdup(block_state.host.buf);
4867 > }
4868 >    break;
4869  
4870 < /* Line 1455 of yacc.c  */
4871 < #line 2235 "ircd_parser.y"
4870 >  case 308:
4871 > /* Line 1778 of yacc.c  */
4872 > #line 1673 "conf_parser.y"
4873      {
4874    if (conf_parser_ctx.pass == 2)
4875 <  {
5992 <    MyFree(yy_conf->name);
5993 <    DupString(yy_conf->name, yylval.string);
5994 <  }
4875 >    strlcpy(block_state.name.buf, yylval.string, sizeof(block_state.name.buf));
4876   }
4877      break;
4878  
4879 <  case 354:
4880 <
4881 < /* Line 1455 of yacc.c  */
6001 < #line 2244 "ircd_parser.y"
4879 >  case 309:
4880 > /* Line 1778 of yacc.c  */
4881 > #line 1679 "conf_parser.y"
4882      {
4883    if (conf_parser_ctx.pass == 2)
4884    {
# Line 6006 | Line 4886 | yyreduce:
4886  
4887      nuh.nuhmask  = yylval.string;
4888      nuh.nickptr  = NULL;
4889 <    nuh.userptr  = userbuf;
4890 <    nuh.hostptr  = hostbuf;
4889 >    nuh.userptr  = block_state.user.buf;
4890 >    nuh.hostptr  = block_state.host.buf;
4891  
4892      nuh.nicksize = 0;
4893 <    nuh.usersize = sizeof(userbuf);
4894 <    nuh.hostsize = sizeof(hostbuf);
4893 >    nuh.usersize = sizeof(block_state.user.buf);
4894 >    nuh.hostsize = sizeof(block_state.host.buf);
4895  
4896      split_nuh(&nuh);
6017
6018    DupString(yy_match_item->user, userbuf);
6019    DupString(yy_match_item->host, hostbuf);
4897    }
4898   }
4899      break;
4900  
4901 <  case 355:
4902 <
4903 < /* Line 1455 of yacc.c  */
6027 < #line 2266 "ircd_parser.y"
4901 >  case 310:
4902 > /* Line 1778 of yacc.c  */
4903 > #line 1698 "conf_parser.y"
4904      {
4905    if (conf_parser_ctx.pass == 2)
4906 <    yy_match_item->action = 0;
4906 >    block_state.flags.value = 0;
4907   }
4908      break;
4909  
4910 <  case 359:
4911 <
4912 < /* Line 1455 of yacc.c  */
6037 < #line 2273 "ircd_parser.y"
4910 >  case 314:
4911 > /* Line 1778 of yacc.c  */
4912 > #line 1705 "conf_parser.y"
4913      {
4914    if (conf_parser_ctx.pass == 2)
4915 <    yy_match_item->action |= SHARED_KLINE;
4915 >    block_state.flags.value |= SHARED_KLINE;
4916   }
4917      break;
4918  
4919 <  case 360:
4920 <
4921 < /* Line 1455 of yacc.c  */
6047 < #line 2277 "ircd_parser.y"
4919 >  case 315:
4920 > /* Line 1778 of yacc.c  */
4921 > #line 1709 "conf_parser.y"
4922      {
4923    if (conf_parser_ctx.pass == 2)
4924 <    yy_match_item->action |= SHARED_TKLINE;
4924 >    block_state.flags.value |= SHARED_UNKLINE;
4925   }
4926      break;
4927  
4928 <  case 361:
4929 <
4930 < /* Line 1455 of yacc.c  */
6057 < #line 2281 "ircd_parser.y"
4928 >  case 316:
4929 > /* Line 1778 of yacc.c  */
4930 > #line 1713 "conf_parser.y"
4931      {
4932    if (conf_parser_ctx.pass == 2)
4933 <    yy_match_item->action |= SHARED_UNKLINE;
4933 >    block_state.flags.value |= SHARED_DLINE;
4934   }
4935      break;
4936  
4937 <  case 362:
4938 <
4939 < /* Line 1455 of yacc.c  */
6067 < #line 2285 "ircd_parser.y"
4937 >  case 317:
4938 > /* Line 1778 of yacc.c  */
4939 > #line 1717 "conf_parser.y"
4940      {
4941    if (conf_parser_ctx.pass == 2)
4942 <    yy_match_item->action |= SHARED_XLINE;
4942 >    block_state.flags.value |= SHARED_UNDLINE;
4943   }
4944      break;
4945  
4946 <  case 363:
4947 <
4948 < /* Line 1455 of yacc.c  */
6077 < #line 2289 "ircd_parser.y"
4946 >  case 318:
4947 > /* Line 1778 of yacc.c  */
4948 > #line 1721 "conf_parser.y"
4949      {
4950    if (conf_parser_ctx.pass == 2)
4951 <    yy_match_item->action |= SHARED_TXLINE;
4951 >    block_state.flags.value |= SHARED_XLINE;
4952   }
4953      break;
4954  
4955 <  case 364:
4956 <
4957 < /* Line 1455 of yacc.c  */
6087 < #line 2293 "ircd_parser.y"
4955 >  case 319:
4956 > /* Line 1778 of yacc.c  */
4957 > #line 1725 "conf_parser.y"
4958      {
4959    if (conf_parser_ctx.pass == 2)
4960 <    yy_match_item->action |= SHARED_UNXLINE;
4960 >    block_state.flags.value |= SHARED_UNXLINE;
4961   }
4962      break;
4963  
4964 <  case 365:
4965 <
4966 < /* Line 1455 of yacc.c  */
6097 < #line 2297 "ircd_parser.y"
4964 >  case 320:
4965 > /* Line 1778 of yacc.c  */
4966 > #line 1729 "conf_parser.y"
4967      {
4968    if (conf_parser_ctx.pass == 2)
4969 <    yy_match_item->action |= SHARED_RESV;
4969 >    block_state.flags.value |= SHARED_RESV;
4970   }
4971      break;
4972  
4973 <  case 366:
4974 <
4975 < /* Line 1455 of yacc.c  */
6107 < #line 2301 "ircd_parser.y"
4973 >  case 321:
4974 > /* Line 1778 of yacc.c  */
4975 > #line 1733 "conf_parser.y"
4976      {
4977    if (conf_parser_ctx.pass == 2)
4978 <    yy_match_item->action |= SHARED_TRESV;
4978 >    block_state.flags.value |= SHARED_UNRESV;
4979   }
4980      break;
4981  
4982 <  case 367:
4983 <
4984 < /* Line 1455 of yacc.c  */
6117 < #line 2305 "ircd_parser.y"
4982 >  case 322:
4983 > /* Line 1778 of yacc.c  */
4984 > #line 1737 "conf_parser.y"
4985      {
4986    if (conf_parser_ctx.pass == 2)
4987 <    yy_match_item->action |= SHARED_UNRESV;
4987 >    block_state.flags.value |= SHARED_LOCOPS;
4988   }
4989      break;
4990  
4991 <  case 368:
4992 <
4993 < /* Line 1455 of yacc.c  */
6127 < #line 2309 "ircd_parser.y"
4991 >  case 323:
4992 > /* Line 1778 of yacc.c  */
4993 > #line 1741 "conf_parser.y"
4994      {
4995    if (conf_parser_ctx.pass == 2)
4996 <    yy_match_item->action |= SHARED_LOCOPS;
4996 >    block_state.flags.value = SHARED_ALL;
4997   }
4998      break;
4999  
5000 <  case 369:
5001 <
5002 < /* Line 1455 of yacc.c  */
6137 < #line 2313 "ircd_parser.y"
5000 >  case 324:
5001 > /* Line 1778 of yacc.c  */
5002 > #line 1750 "conf_parser.y"
5003      {
5004 <  if (conf_parser_ctx.pass == 2)
6140 <    yy_match_item->action = SHARED_ALL;
6141 < }
5004 >  if (conf_parser_ctx.pass != 2)
5005      break;
5006  
5007 <  case 370:
5007 >  reset_block_state();
5008  
5009 < /* Line 1455 of yacc.c  */
5010 < #line 2322 "ircd_parser.y"
6148 <    {
6149 <  if (conf_parser_ctx.pass == 2)
6150 <  {
6151 <    yy_conf = make_conf_item(CLUSTER_TYPE);
6152 <    yy_conf->flags = SHARED_ALL;
6153 <  }
5009 >  strlcpy(block_state.name.buf, "*", sizeof(block_state.name.buf));
5010 >  block_state.flags.value = SHARED_ALL;
5011   }
5012      break;
5013  
5014 <  case 371:
5015 <
5016 < /* Line 1455 of yacc.c  */
6160 < #line 2329 "ircd_parser.y"
5014 >  case 325:
5015 > /* Line 1778 of yacc.c  */
5016 > #line 1759 "conf_parser.y"
5017      {
5018 <  if (conf_parser_ctx.pass == 2)
6163 <  {
6164 <    if (yy_conf->name == NULL)
6165 <      DupString(yy_conf->name, "*");
6166 <    yy_conf = NULL;
6167 <  }
6168 < }
6169 <    break;
6170 <
6171 <  case 377:
5018 >  struct MaskItem *conf = NULL;
5019  
5020 < /* Line 1455 of yacc.c  */
6174 < #line 2342 "ircd_parser.y"
6175 <    {
6176 <  if (conf_parser_ctx.pass == 2)
6177 <    DupString(yy_conf->name, yylval.string);
6178 < }
5020 >  if (conf_parser_ctx.pass != 2)
5021      break;
5022  
5023 <  case 378:
5024 <
5025 < /* Line 1455 of yacc.c  */
6184 < #line 2348 "ircd_parser.y"
6185 <    {
6186 <  if (conf_parser_ctx.pass == 2)
6187 <    yy_conf->flags = 0;
5023 >  conf = conf_make(CONF_CLUSTER);
5024 >  conf->flags = block_state.flags.value;
5025 >  conf->name = xstrdup(block_state.name.buf);
5026   }
5027      break;
5028  
5029 <  case 382:
5030 <
5031 < /* Line 1455 of yacc.c  */
6194 < #line 2355 "ircd_parser.y"
5029 >  case 331:
5030 > /* Line 1778 of yacc.c  */
5031 > #line 1774 "conf_parser.y"
5032      {
5033    if (conf_parser_ctx.pass == 2)
5034 <    yy_conf->flags |= SHARED_KLINE;
5034 >    strlcpy(block_state.name.buf, yylval.string, sizeof(block_state.name.buf));
5035   }
5036      break;
5037  
5038 <  case 383:
5039 <
5040 < /* Line 1455 of yacc.c  */
6204 < #line 2359 "ircd_parser.y"
5038 >  case 332:
5039 > /* Line 1778 of yacc.c  */
5040 > #line 1780 "conf_parser.y"
5041      {
5042    if (conf_parser_ctx.pass == 2)
5043 <    yy_conf->flags |= SHARED_TKLINE;
5043 >    block_state.flags.value = 0;
5044   }
5045      break;
5046  
5047 <  case 384:
5048 <
5049 < /* Line 1455 of yacc.c  */
6214 < #line 2363 "ircd_parser.y"
5047 >  case 336:
5048 > /* Line 1778 of yacc.c  */
5049 > #line 1787 "conf_parser.y"
5050      {
5051    if (conf_parser_ctx.pass == 2)
5052 <    yy_conf->flags |= SHARED_UNKLINE;
5052 >    block_state.flags.value |= SHARED_KLINE;
5053   }
5054      break;
5055  
5056 <  case 385:
5057 <
5058 < /* Line 1455 of yacc.c  */
6224 < #line 2367 "ircd_parser.y"
5056 >  case 337:
5057 > /* Line 1778 of yacc.c  */
5058 > #line 1791 "conf_parser.y"
5059      {
5060    if (conf_parser_ctx.pass == 2)
5061 <    yy_conf->flags |= SHARED_XLINE;
5061 >    block_state.flags.value |= SHARED_UNKLINE;
5062   }
5063      break;
5064  
5065 <  case 386:
5066 <
5067 < /* Line 1455 of yacc.c  */
6234 < #line 2371 "ircd_parser.y"
5065 >  case 338:
5066 > /* Line 1778 of yacc.c  */
5067 > #line 1795 "conf_parser.y"
5068      {
5069    if (conf_parser_ctx.pass == 2)
5070 <    yy_conf->flags |= SHARED_TXLINE;
5070 >    block_state.flags.value |= SHARED_DLINE;
5071   }
5072      break;
5073  
5074 <  case 387:
5075 <
5076 < /* Line 1455 of yacc.c  */
6244 < #line 2375 "ircd_parser.y"
5074 >  case 339:
5075 > /* Line 1778 of yacc.c  */
5076 > #line 1799 "conf_parser.y"
5077      {
5078    if (conf_parser_ctx.pass == 2)
5079 <    yy_conf->flags |= SHARED_UNXLINE;
5079 >    block_state.flags.value |= SHARED_UNDLINE;
5080   }
5081      break;
5082  
5083 <  case 388:
5084 <
5085 < /* Line 1455 of yacc.c  */
6254 < #line 2379 "ircd_parser.y"
5083 >  case 340:
5084 > /* Line 1778 of yacc.c  */
5085 > #line 1803 "conf_parser.y"
5086      {
5087    if (conf_parser_ctx.pass == 2)
5088 <    yy_conf->flags |= SHARED_RESV;
5088 >    block_state.flags.value |= SHARED_XLINE;
5089   }
5090      break;
5091  
5092 <  case 389:
5093 <
5094 < /* Line 1455 of yacc.c  */
6264 < #line 2383 "ircd_parser.y"
5092 >  case 341:
5093 > /* Line 1778 of yacc.c  */
5094 > #line 1807 "conf_parser.y"
5095      {
5096    if (conf_parser_ctx.pass == 2)
5097 <    yy_conf->flags |= SHARED_TRESV;
5097 >    block_state.flags.value |= SHARED_UNXLINE;
5098   }
5099      break;
5100  
5101 <  case 390:
5102 <
5103 < /* Line 1455 of yacc.c  */
6274 < #line 2387 "ircd_parser.y"
5101 >  case 342:
5102 > /* Line 1778 of yacc.c  */
5103 > #line 1811 "conf_parser.y"
5104      {
5105    if (conf_parser_ctx.pass == 2)
5106 <    yy_conf->flags |= SHARED_UNRESV;
5106 >    block_state.flags.value |= SHARED_RESV;
5107   }
5108      break;
5109  
5110 <  case 391:
5111 <
5112 < /* Line 1455 of yacc.c  */
6284 < #line 2391 "ircd_parser.y"
5110 >  case 343:
5111 > /* Line 1778 of yacc.c  */
5112 > #line 1815 "conf_parser.y"
5113      {
5114    if (conf_parser_ctx.pass == 2)
5115 <    yy_conf->flags |= SHARED_LOCOPS;
5115 >    block_state.flags.value |= SHARED_UNRESV;
5116   }
5117      break;
5118  
5119 <  case 392:
5120 <
5121 < /* Line 1455 of yacc.c  */
6294 < #line 2395 "ircd_parser.y"
5119 >  case 344:
5120 > /* Line 1778 of yacc.c  */
5121 > #line 1819 "conf_parser.y"
5122      {
5123    if (conf_parser_ctx.pass == 2)
5124 <    yy_conf->flags = SHARED_ALL;
5124 >    block_state.flags.value |= SHARED_LOCOPS;
5125   }
5126      break;
5127  
5128 <  case 393:
5129 <
5130 < /* Line 1455 of yacc.c  */
6304 < #line 2404 "ircd_parser.y"
5128 >  case 345:
5129 > /* Line 1778 of yacc.c  */
5130 > #line 1823 "conf_parser.y"
5131      {
5132    if (conf_parser_ctx.pass == 2)
5133 <  {
6308 <    yy_conf = make_conf_item(SERVER_TYPE);
6309 <    yy_aconf = (struct AccessItem *)map_to_conf(yy_conf);
6310 <    yy_aconf->passwd = NULL;
6311 <    /* defaults */
6312 <    yy_aconf->port = PORTNUM;
6313 <
6314 <    if (ConfigFileEntry.burst_away)
6315 <      yy_aconf->flags = CONF_FLAGS_BURST_AWAY;
6316 <  }
6317 <  else
6318 <  {
6319 <    MyFree(class_name);
6320 <    class_name = NULL;
6321 <  }
5133 >    block_state.flags.value = SHARED_ALL;
5134   }
5135      break;
5136  
5137 <  case 394:
5138 <
5139 < /* Line 1455 of yacc.c  */
6328 < #line 2422 "ircd_parser.y"
5137 >  case 346:
5138 > /* Line 1778 of yacc.c  */
5139 > #line 1832 "conf_parser.y"
5140      {
6330  if (conf_parser_ctx.pass == 2)
6331  {
6332    struct CollectItem *yy_hconf=NULL;
6333    struct CollectItem *yy_lconf=NULL;
6334    dlink_node *ptr;
6335    dlink_node *next_ptr;
6336 #ifdef HAVE_LIBCRYPTO
6337    if (yy_aconf->host &&
6338        ((yy_aconf->passwd && yy_aconf->spasswd) ||
6339         (yy_aconf->rsa_public_key && IsConfCryptLink(yy_aconf))))
6340 #else /* !HAVE_LIBCRYPTO */
6341      if (yy_aconf->host && !IsConfCryptLink(yy_aconf) &&
6342          yy_aconf->passwd && yy_aconf->spasswd)
6343 #endif /* !HAVE_LIBCRYPTO */
6344        {
6345          if (conf_add_server(yy_conf, class_name) == -1)
6346          {
6347            delete_conf_item(yy_conf);
6348            yy_conf = NULL;
6349            yy_aconf = NULL;
6350          }
6351        }
6352        else
6353        {
6354          /* Even if yy_conf ->name is NULL
6355           * should still unhook any hub/leaf confs still pending
6356           */
6357          unhook_hub_leaf_confs();
5141  
5142 <          if (yy_conf->name != NULL)
5143 <          {
6361 < #ifndef HAVE_LIBCRYPTO
6362 <            if (IsConfCryptLink(yy_aconf))
6363 <              yyerror("Ignoring connect block -- no OpenSSL support");
6364 < #else
6365 <            if (IsConfCryptLink(yy_aconf) && !yy_aconf->rsa_public_key)
6366 <              yyerror("Ignoring connect block -- missing key");
6367 < #endif
6368 <            if (yy_aconf->host == NULL)
6369 <              yyerror("Ignoring connect block -- missing host");
6370 <            else if (!IsConfCryptLink(yy_aconf) &&
6371 <                    (!yy_aconf->passwd || !yy_aconf->spasswd))
6372 <              yyerror("Ignoring connect block -- missing password");
6373 <          }
6374 <
6375 <
6376 <          /* XXX
6377 <           * This fixes a try_connections() core (caused by invalid class_ptr
6378 <           * pointers) reported by metalrock. That's an ugly fix, but there
6379 <           * is currently no better way. The entire config subsystem needs an
6380 <           * rewrite ASAP. make_conf_item() shouldn't really add things onto
6381 <           * a doubly linked list immediately without any sanity checks!  -Michael
6382 <           */
6383 <          delete_conf_item(yy_conf);
6384 <
6385 <          yy_aconf = NULL;
6386 <          yy_conf = NULL;
6387 <        }
6388 <
6389 <      /*
6390 <       * yy_conf is still pointing at the server that is having
6391 <       * a connect block built for it. This means, y_aconf->name
6392 <       * points to the actual irc name this server will be known as.
6393 <       * Now this new server has a set or even just one hub_mask (or leaf_mask)
6394 <       * given in the link list at yy_hconf. Fill in the HUB confs
6395 <       * from this link list now.
6396 <       */        
6397 <      DLINK_FOREACH_SAFE(ptr, next_ptr, hub_conf_list.head)
6398 <      {
6399 <        struct ConfItem *new_hub_conf;
6400 <        struct MatchItem *match_item;
6401 <
6402 <        yy_hconf = ptr->data;
6403 <
6404 <        /* yy_conf == NULL is a fatal error for this connect block! */
6405 <        if ((yy_conf != NULL) && (yy_conf->name != NULL))
6406 <        {
6407 <          new_hub_conf = make_conf_item(HUB_TYPE);
6408 <          match_item = (struct MatchItem *)map_to_conf(new_hub_conf);
6409 <          DupString(new_hub_conf->name, yy_conf->name);
6410 <          if (yy_hconf->user != NULL)
6411 <            DupString(match_item->user, yy_hconf->user);
6412 <          else
6413 <            DupString(match_item->user, "*");
6414 <          if (yy_hconf->host != NULL)
6415 <            DupString(match_item->host, yy_hconf->host);
6416 <          else
6417 <            DupString(match_item->host, "*");
6418 <        }
6419 <        dlinkDelete(&yy_hconf->node, &hub_conf_list);
6420 <        free_collect_item(yy_hconf);
6421 <      }
6422 <
6423 <      /* Ditto for the LEAF confs */
6424 <
6425 <      DLINK_FOREACH_SAFE(ptr, next_ptr, leaf_conf_list.head)
6426 <      {
6427 <        struct ConfItem *new_leaf_conf;
6428 <        struct MatchItem *match_item;
6429 <
6430 <        yy_lconf = ptr->data;
5142 >  if (conf_parser_ctx.pass != 2)
5143 >    break;
5144  
5145 <        if ((yy_conf != NULL) && (yy_conf->name != NULL))
5146 <        {
6434 <          new_leaf_conf = make_conf_item(LEAF_TYPE);
6435 <          match_item = (struct MatchItem *)map_to_conf(new_leaf_conf);
6436 <          DupString(new_leaf_conf->name, yy_conf->name);
6437 <          if (yy_lconf->user != NULL)
6438 <            DupString(match_item->user, yy_lconf->user);
6439 <          else
6440 <            DupString(match_item->user, "*");
6441 <          if (yy_lconf->host != NULL)
6442 <            DupString(match_item->host, yy_lconf->host);
6443 <          else
6444 <            DupString(match_item->host, "*");
6445 <        }
6446 <        dlinkDelete(&yy_lconf->node, &leaf_conf_list);
6447 <        free_collect_item(yy_lconf);
6448 <      }
6449 <      MyFree(class_name);
6450 <      class_name = NULL;
6451 <      yy_conf = NULL;
6452 <      yy_aconf = NULL;
6453 <  }
5145 >  reset_block_state();
5146 >  block_state.port.value = PORTNUM;
5147   }
5148      break;
5149  
5150 <  case 419:
5151 <
5152 < /* Line 1455 of yacc.c  */
6460 < #line 2561 "ircd_parser.y"
5150 >  case 347:
5151 > /* Line 1778 of yacc.c  */
5152 > #line 1840 "conf_parser.y"
5153      {
5154 <  if (conf_parser_ctx.pass == 2)
5155 <  {
6464 <    if (yy_conf->name != NULL)
6465 <      yyerror("Multiple connect name entry");
5154 >  struct MaskItem *conf = NULL;
5155 >  struct addrinfo hints, *res;
5156  
5157 <    MyFree(yy_conf->name);
6468 <    DupString(yy_conf->name, yylval.string);
6469 <  }
6470 < }
5157 >  if (conf_parser_ctx.pass != 2)
5158      break;
5159  
5160 <  case 420:
5161 <
6475 < /* Line 1455 of yacc.c  */
6476 < #line 2573 "ircd_parser.y"
6477 <    {
6478 <  if (conf_parser_ctx.pass == 2)
6479 <  {
6480 <    if (yy_conf->name != NULL)
6481 <      yyerror("Multiple connect name entry");
6482 <
6483 <    MyFree(yy_conf->name);
6484 <    DupString(yy_conf->name, yylval.string);
6485 <  }
6486 < }
5160 >  if (!block_state.name.buf[0] ||
5161 >      !block_state.host.buf[0])
5162      break;
5163  
5164 <  case 421:
5164 >  if (!(block_state.rpass.buf[0] ||
5165 >        block_state.spass.buf[0]))
5166 >    break;
5167  
5168 < /* Line 1455 of yacc.c  */
5169 < #line 2585 "ircd_parser.y"
6493 <    {
6494 <  if (conf_parser_ctx.pass == 2)
6495 <  {
6496 <    MyFree(yy_aconf->host);
6497 <    DupString(yy_aconf->host, yylval.string);
6498 <  }
6499 < }
5168 >  if (has_wildcards(block_state.name.buf) ||
5169 >      has_wildcards(block_state.host.buf))
5170      break;
5171  
5172 <  case 422:
5172 >  conf = conf_make(CONF_SERVER);
5173 >  conf->port = block_state.port.value;
5174 >  conf->flags = block_state.flags.value;
5175 >  conf->aftype = block_state.aftype.value;
5176 >  conf->host = xstrdup(block_state.host.buf);
5177 >  conf->name = xstrdup(block_state.name.buf);
5178 >  conf->passwd = xstrdup(block_state.rpass.buf);
5179 >  conf->spasswd = xstrdup(block_state.spass.buf);
5180 >  conf->cipher_list = xstrdup(block_state.ciph.buf);
5181  
5182 < /* Line 1455 of yacc.c  */
5183 < #line 2594 "ircd_parser.y"
6506 <    {
6507 <  if (conf_parser_ctx.pass == 2)
6508 <  {
6509 <    struct addrinfo hints, *res;
5182 >  dlinkMoveList(&block_state.leaf.list, &conf->leaf_list);
5183 >  dlinkMoveList(&block_state.hub.list, &conf->hub_list);
5184  
5185 +  if (block_state.bind.buf[0])
5186 +  {
5187      memset(&hints, 0, sizeof(hints));
5188  
5189      hints.ai_family   = AF_UNSPEC;
5190      hints.ai_socktype = SOCK_STREAM;
5191      hints.ai_flags    = AI_PASSIVE | AI_NUMERICHOST;
5192  
5193 <    if (irc_getaddrinfo(yylval.string, NULL, &hints, &res))
5194 <      ilog(L_ERROR, "Invalid netmask for server vhost(%s)", yylval.string);
5193 >    if (getaddrinfo(block_state.bind.buf, NULL, &hints, &res))
5194 >      ilog(LOG_TYPE_IRCD, "Invalid netmask for server vhost(%s)", block_state.bind.buf);
5195      else
5196      {
5197        assert(res != NULL);
5198  
5199 <      memcpy(&yy_aconf->my_ipnum, res->ai_addr, res->ai_addrlen);
5200 <      yy_aconf->my_ipnum.ss.ss_family = res->ai_family;
5201 <      yy_aconf->my_ipnum.ss_len = res->ai_addrlen;
5202 <      irc_freeaddrinfo(res);
5199 >      memcpy(&conf->bind, res->ai_addr, res->ai_addrlen);
5200 >      conf->bind.ss.ss_family = res->ai_family;
5201 >      conf->bind.ss_len = res->ai_addrlen;
5202 >      freeaddrinfo(res);
5203      }
5204    }
6529 }
6530    break;
5205  
5206 <  case 423:
5207 <
6534 < /* Line 1455 of yacc.c  */
6535 < #line 2620 "ircd_parser.y"
6536 <    {
6537 <  if (conf_parser_ctx.pass == 2)
6538 <  {
6539 <    if ((yyvsp[(3) - (4)].string)[0] == ':')
6540 <      yyerror("Server passwords cannot begin with a colon");
6541 <    else if (strchr((yyvsp[(3) - (4)].string), ' ') != NULL)
6542 <      yyerror("Server passwords cannot contain spaces");
6543 <    else {
6544 <      if (yy_aconf->spasswd != NULL)
6545 <        memset(yy_aconf->spasswd, 0, strlen(yy_aconf->spasswd));
6546 <
6547 <      MyFree(yy_aconf->spasswd);
6548 <      DupString(yy_aconf->spasswd, yylval.string);
6549 <    }
6550 <  }
5206 >  conf_add_class_to_conf(conf, block_state.class.buf);
5207 >  lookup_confhost(conf);
5208   }
5209      break;
5210  
5211 <  case 424:
5212 <
5213 < /* Line 1455 of yacc.c  */
6557 < #line 2638 "ircd_parser.y"
5211 >  case 364:
5212 > /* Line 1778 of yacc.c  */
5213 > #line 1906 "conf_parser.y"
5214      {
5215    if (conf_parser_ctx.pass == 2)
5216 <  {
6561 <    if ((yyvsp[(3) - (4)].string)[0] == ':')
6562 <      yyerror("Server passwords cannot begin with a colon");
6563 <    else if (strchr((yyvsp[(3) - (4)].string), ' ') != NULL)
6564 <      yyerror("Server passwords cannot contain spaces");
6565 <    else {
6566 <      if (yy_aconf->passwd != NULL)
6567 <        memset(yy_aconf->passwd, 0, strlen(yy_aconf->passwd));
6568 <
6569 <      MyFree(yy_aconf->passwd);
6570 <      DupString(yy_aconf->passwd, yylval.string);
6571 <    }
6572 <  }
5216 >    strlcpy(block_state.name.buf, yylval.string, sizeof(block_state.name.buf));
5217   }
5218      break;
5219  
5220 <  case 425:
5221 <
5222 < /* Line 1455 of yacc.c  */
6579 < #line 2656 "ircd_parser.y"
5220 >  case 365:
5221 > /* Line 1778 of yacc.c  */
5222 > #line 1912 "conf_parser.y"
5223      {
5224    if (conf_parser_ctx.pass == 2)
5225 <    yy_aconf->port = (yyvsp[(3) - (4)].number);
5225 >    strlcpy(block_state.host.buf, yylval.string, sizeof(block_state.host.buf));
5226   }
5227      break;
5228  
5229 <  case 426:
5230 <
5231 < /* Line 1455 of yacc.c  */
6589 < #line 2662 "ircd_parser.y"
5229 >  case 366:
5230 > /* Line 1778 of yacc.c  */
5231 > #line 1918 "conf_parser.y"
5232      {
5233    if (conf_parser_ctx.pass == 2)
5234 <    yy_aconf->aftype = AF_INET;
5234 >    strlcpy(block_state.bind.buf, yylval.string, sizeof(block_state.bind.buf));
5235   }
5236      break;
5237  
5238 <  case 427:
5239 <
5240 < /* Line 1455 of yacc.c  */
6599 < #line 2666 "ircd_parser.y"
5238 >  case 367:
5239 > /* Line 1778 of yacc.c  */
5240 > #line 1924 "conf_parser.y"
5241      {
5242 < #ifdef IPV6
6602 <  if (conf_parser_ctx.pass == 2)
6603 <    yy_aconf->aftype = AF_INET6;
6604 < #endif
6605 < }
5242 >  if (conf_parser_ctx.pass != 2)
5243      break;
5244  
5245 <  case 428:
5246 <
5247 < /* Line 1455 of yacc.c  */
5248 < #line 2674 "ircd_parser.y"
5249 <    {
5250 <  if (conf_parser_ctx.pass == 2)
6614 <  {
6615 <    MyFree(yy_aconf->fakename);
6616 <    DupString(yy_aconf->fakename, yylval.string);
6617 <  }
5245 >  if ((yyvsp[(3) - (4)].string)[0] == ':')
5246 >    yyerror("Server passwords cannot begin with a colon");
5247 >  else if (strchr((yyvsp[(3) - (4)].string), ' ') != NULL)
5248 >    yyerror("Server passwords cannot contain spaces");
5249 >  else
5250 >    strlcpy(block_state.spass.buf, yylval.string, sizeof(block_state.spass.buf));
5251   }
5252      break;
5253  
5254 <  case 429:
5255 <
5256 < /* Line 1455 of yacc.c  */
6624 < #line 2683 "ircd_parser.y"
5254 >  case 368:
5255 > /* Line 1778 of yacc.c  */
5256 > #line 1937 "conf_parser.y"
5257      {
5258 < }
6627 <    break;
6628 <
6629 <  case 433:
6630 <
6631 < /* Line 1455 of yacc.c  */
6632 < #line 2687 "ircd_parser.y"
6633 <    { not_atom = 1; }
6634 <    break;
6635 <
6636 <  case 435:
6637 <
6638 < /* Line 1455 of yacc.c  */
6639 < #line 2688 "ircd_parser.y"
6640 <    { not_atom = 0; }
5258 >  if (conf_parser_ctx.pass != 2)
5259      break;
5260  
5261 <  case 437:
5262 <
5263 < /* Line 1455 of yacc.c  */
5264 < #line 2691 "ircd_parser.y"
5265 <    {
5266 <  if (conf_parser_ctx.pass == 2)
6649 < #ifndef HAVE_LIBZ
6650 <    yyerror("Ignoring flags = compressed; -- no zlib support");
6651 < #else
6652 < {
6653 <   if (not_atom)ClearConfCompressed(yy_aconf);
6654 <   else SetConfCompressed(yy_aconf);
6655 < }
6656 < #endif
5261 >  if ((yyvsp[(3) - (4)].string)[0] == ':')
5262 >    yyerror("Server passwords cannot begin with a colon");
5263 >  else if (strchr((yyvsp[(3) - (4)].string), ' ') != NULL)
5264 >    yyerror("Server passwords cannot contain spaces");
5265 >  else
5266 >    strlcpy(block_state.rpass.buf, yylval.string, sizeof(block_state.rpass.buf));
5267   }
5268      break;
5269  
5270 <  case 438:
5271 <
5272 < /* Line 1455 of yacc.c  */
6663 < #line 2702 "ircd_parser.y"
5270 >  case 369:
5271 > /* Line 1778 of yacc.c  */
5272 > #line 1950 "conf_parser.y"
5273      {
5274    if (conf_parser_ctx.pass == 2)
5275 <  {
6667 <    if (not_atom)ClearConfCryptLink(yy_aconf);
6668 <    else SetConfCryptLink(yy_aconf);
6669 <  }
5275 >    block_state.port.value = (yyvsp[(3) - (4)].number);
5276   }
5277      break;
5278  
5279 <  case 439:
5280 <
5281 < /* Line 1455 of yacc.c  */
6676 < #line 2709 "ircd_parser.y"
5279 >  case 370:
5280 > /* Line 1778 of yacc.c  */
5281 > #line 1956 "conf_parser.y"
5282      {
5283    if (conf_parser_ctx.pass == 2)
5284 <  {
6680 <    if (not_atom)ClearConfAllowAutoConn(yy_aconf);
6681 <    else SetConfAllowAutoConn(yy_aconf);
6682 <  }
5284 >    block_state.aftype.value = AF_INET;
5285   }
5286      break;
5287  
5288 <  case 440:
5289 <
5290 < /* Line 1455 of yacc.c  */
6689 < #line 2716 "ircd_parser.y"
5288 >  case 371:
5289 > /* Line 1778 of yacc.c  */
5290 > #line 1960 "conf_parser.y"
5291      {
5292 + #ifdef IPV6
5293    if (conf_parser_ctx.pass == 2)
5294 <  {
5295 <    if (not_atom)ClearConfAwayBurst(yy_aconf);
6694 <    else SetConfAwayBurst(yy_aconf);
6695 <  }
5294 >    block_state.aftype.value = AF_INET6;
5295 > #endif
5296   }
5297      break;
5298  
5299 <  case 441:
5300 <
5301 < /* Line 1455 of yacc.c  */
6702 < #line 2723 "ircd_parser.y"
5299 >  case 372:
5300 > /* Line 1778 of yacc.c  */
5301 > #line 1968 "conf_parser.y"
5302      {
5303 <  if (conf_parser_ctx.pass == 2)
6705 <  {
6706 <    if (not_atom)ClearConfTopicBurst(yy_aconf);
6707 <    else SetConfTopicBurst(yy_aconf);
6708 <  }
5303 >  block_state.flags.value &= CONF_FLAGS_ENCRYPTED;
5304   }
5305      break;
5306  
5307 <  case 442:
5308 <
5309 < /* Line 1455 of yacc.c  */
6715 < #line 2733 "ircd_parser.y"
5307 >  case 376:
5308 > /* Line 1778 of yacc.c  */
5309 > #line 1974 "conf_parser.y"
5310      {
6717 #ifdef HAVE_LIBCRYPTO
5311    if (conf_parser_ctx.pass == 2)
5312 <  {
6720 <    BIO *file;
6721 <
6722 <    if (yy_aconf->rsa_public_key != NULL)
6723 <    {
6724 <      RSA_free(yy_aconf->rsa_public_key);
6725 <      yy_aconf->rsa_public_key = NULL;
6726 <    }
6727 <
6728 <    if (yy_aconf->rsa_public_key_file != NULL)
6729 <    {
6730 <      MyFree(yy_aconf->rsa_public_key_file);
6731 <      yy_aconf->rsa_public_key_file = NULL;
6732 <    }
6733 <
6734 <    DupString(yy_aconf->rsa_public_key_file, yylval.string);
6735 <
6736 <    if ((file = BIO_new_file(yylval.string, "r")) == NULL)
6737 <    {
6738 <      yyerror("Ignoring rsa_public_key_file -- file doesn't exist");
6739 <      break;
6740 <    }
6741 <
6742 <    yy_aconf->rsa_public_key = (RSA *)PEM_read_bio_RSA_PUBKEY(file, NULL, 0, NULL);
6743 <
6744 <    if (yy_aconf->rsa_public_key == NULL)
6745 <    {
6746 <      yyerror("Ignoring rsa_public_key_file -- Key invalid; check key syntax.");
6747 <      break;
6748 <    }
6749 <      
6750 <    BIO_set_close(file, BIO_CLOSE);
6751 <    BIO_free(file);
6752 <  }
6753 < #endif /* HAVE_LIBCRYPTO */
5312 >    block_state.flags.value |= CONF_FLAGS_ALLOW_AUTO_CONN;
5313   }
5314      break;
5315  
5316 <  case 443:
5317 <
5318 < /* Line 1455 of yacc.c  */
6760 < #line 2774 "ircd_parser.y"
5316 >  case 377:
5317 > /* Line 1778 of yacc.c  */
5318 > #line 1978 "conf_parser.y"
5319      {
5320    if (conf_parser_ctx.pass == 2)
5321 <  {
6764 <    if (yylval.number)
6765 <      yy_aconf->flags |= CONF_FLAGS_ENCRYPTED;
6766 <    else
6767 <      yy_aconf->flags &= ~CONF_FLAGS_ENCRYPTED;
6768 <  }
5321 >    block_state.flags.value |= CONF_FLAGS_SSL;
5322   }
5323      break;
5324  
5325 <  case 444:
5326 <
5327 < /* Line 1455 of yacc.c  */
6775 < #line 2785 "ircd_parser.y"
5325 >  case 378:
5326 > /* Line 1778 of yacc.c  */
5327 > #line 1984 "conf_parser.y"
5328      {
5329    if (conf_parser_ctx.pass == 2)
5330    {
5331      if (yylval.number)
5332 <      yy_aconf->flags |= CONF_FLAGS_CRYPTLINK;
5332 >      block_state.flags.value |= CONF_FLAGS_ENCRYPTED;
5333      else
5334 <      yy_aconf->flags &= ~CONF_FLAGS_CRYPTLINK;
5334 >      block_state.flags.value &= ~CONF_FLAGS_ENCRYPTED;
5335    }
5336   }
5337      break;
5338  
5339 <  case 445:
5340 <
5341 < /* Line 1455 of yacc.c  */
6790 < #line 2796 "ircd_parser.y"
5339 >  case 379:
5340 > /* Line 1778 of yacc.c  */
5341 > #line 1995 "conf_parser.y"
5342      {
5343    if (conf_parser_ctx.pass == 2)
5344 <  {
6794 <    if (yylval.number)
6795 < #ifndef HAVE_LIBZ
6796 <      yyerror("Ignoring compressed=yes; -- no zlib support");
6797 < #else
6798 <      yy_aconf->flags |= CONF_FLAGS_COMPRESSED;
6799 < #endif
6800 <    else
6801 <      yy_aconf->flags &= ~CONF_FLAGS_COMPRESSED;
6802 <  }
5344 >    dlinkAdd(xstrdup(yylval.string), make_dlink_node(), &block_state.hub.list);
5345   }
5346      break;
5347  
5348 <  case 446:
5349 <
5350 < /* Line 1455 of yacc.c  */
6809 < #line 2811 "ircd_parser.y"
5348 >  case 380:
5349 > /* Line 1778 of yacc.c  */
5350 > #line 2001 "conf_parser.y"
5351      {
5352    if (conf_parser_ctx.pass == 2)
5353 <  {
6813 <    if (yylval.number)
6814 <      yy_aconf->flags |= CONF_FLAGS_ALLOW_AUTO_CONN;
6815 <    else
6816 <      yy_aconf->flags &= ~CONF_FLAGS_ALLOW_AUTO_CONN;
6817 <  }
5353 >    dlinkAdd(xstrdup(yylval.string), make_dlink_node(), &block_state.leaf.list);
5354   }
5355      break;
5356  
5357 <  case 447:
5358 <
5359 < /* Line 1455 of yacc.c  */
6824 < #line 2822 "ircd_parser.y"
5357 >  case 381:
5358 > /* Line 1778 of yacc.c  */
5359 > #line 2007 "conf_parser.y"
5360      {
5361    if (conf_parser_ctx.pass == 2)
5362 <  {
6828 <    if (yylval.number)
6829 <      SetConfTopicBurst(yy_aconf);
6830 <    else
6831 <      ClearConfTopicBurst(yy_aconf);
6832 <  }
5362 >    strlcpy(block_state.class.buf, yylval.string, sizeof(block_state.class.buf));
5363   }
5364      break;
5365  
5366 <  case 448:
5367 <
5368 < /* Line 1455 of yacc.c  */
6839 < #line 2833 "ircd_parser.y"
5366 >  case 382:
5367 > /* Line 1778 of yacc.c  */
5368 > #line 2013 "conf_parser.y"
5369      {
5370 + #ifdef HAVE_LIBCRYPTO
5371    if (conf_parser_ctx.pass == 2)
5372 <  {
5373 <    struct CollectItem *yy_tmp;
6844 <
6845 <    yy_tmp = (struct CollectItem *)MyMalloc(sizeof(struct CollectItem));
6846 <    DupString(yy_tmp->host, yylval.string);
6847 <    DupString(yy_tmp->user, "*");
6848 <    dlinkAdd(yy_tmp, &yy_tmp->node, &hub_conf_list);
6849 <  }
6850 < }
6851 <    break;
6852 <
6853 <  case 449:
6854 <
6855 < /* Line 1455 of yacc.c  */
6856 < #line 2846 "ircd_parser.y"
6857 <    {
5372 >    strlcpy(block_state.ciph.buf, yylval.string, sizeof(block_state.ciph.buf));
5373 > #else
5374    if (conf_parser_ctx.pass == 2)
5375 <  {
5376 <    struct CollectItem *yy_tmp;
6861 <
6862 <    yy_tmp = (struct CollectItem *)MyMalloc(sizeof(struct CollectItem));
6863 <    DupString(yy_tmp->host, yylval.string);
6864 <    DupString(yy_tmp->user, "*");
6865 <    dlinkAdd(yy_tmp, &yy_tmp->node, &leaf_conf_list);
6866 <  }
5375 >    yyerror("Ignoring connect::ciphers -- no OpenSSL support");
5376 > #endif
5377   }
5378      break;
5379  
5380 <  case 450:
5381 <
5382 < /* Line 1455 of yacc.c  */
6873 < #line 2859 "ircd_parser.y"
5380 >  case 383:
5381 > /* Line 1778 of yacc.c  */
5382 > #line 2028 "conf_parser.y"
5383      {
5384    if (conf_parser_ctx.pass == 2)
5385 <  {
6877 <    MyFree(class_name);
6878 <    DupString(class_name, yylval.string);
6879 <  }
5385 >    reset_block_state();
5386   }
5387      break;
5388  
5389 <  case 451:
5390 <
5391 < /* Line 1455 of yacc.c  */
6886 < #line 2868 "ircd_parser.y"
5389 >  case 384:
5390 > /* Line 1778 of yacc.c  */
5391 > #line 2032 "conf_parser.y"
5392      {
5393 < #ifdef HAVE_LIBCRYPTO
6889 <  if (conf_parser_ctx.pass == 2)
6890 <  {
6891 <    struct EncCapability *ecap;
6892 <    const char *cipher_name;
6893 <    int found = 0;
6894 <
6895 <    yy_aconf->cipher_preference = NULL;
6896 <    cipher_name = yylval.string;
5393 >  struct MaskItem *conf = NULL;
5394  
5395 <    for (ecap = CipherTable; ecap->name; ecap++)
6899 <    {
6900 <      if ((irccmp(ecap->name, cipher_name) == 0) &&
6901 <          (ecap->cap & CAP_ENC_MASK))
6902 <      {
6903 <        yy_aconf->cipher_preference = ecap;
6904 <        found = 1;
6905 <        break;
6906 <      }
6907 <    }
6908 <
6909 <    if (!found)
6910 <      yyerror("Invalid cipher");
6911 <  }
6912 < #else
6913 <  if (conf_parser_ctx.pass == 2)
6914 <    yyerror("Ignoring cipher_preference -- no OpenSSL support");
6915 < #endif
6916 < }
5395 >  if (conf_parser_ctx.pass != 2)
5396      break;
5397  
5398 <  case 452:
5399 <
6921 < /* Line 1455 of yacc.c  */
6922 < #line 2903 "ircd_parser.y"
6923 <    {
6924 <  if (conf_parser_ctx.pass == 2)
6925 <  {
6926 <    userbuf[0] = hostbuf[0] = reasonbuf[0] = '\0';
6927 <    regex_ban = 0;
6928 <  }
6929 < }
5398 >  if (!block_state.user.buf[0] ||
5399 >      !block_state.host.buf[0])
5400      break;
5401  
6932  case 453:
5402  
5403 < /* Line 1455 of yacc.c  */
6935 < #line 2910 "ircd_parser.y"
6936 <    {
6937 <  if (conf_parser_ctx.pass == 2)
5403 >  if (block_state.port.value == 1)
5404    {
6939    if (userbuf[0] && hostbuf[0])
6940    {
6941      if (regex_ban)
6942      {
5405   #ifdef HAVE_LIBPCRE
5406 <        void *exp_user = NULL;
5407 <        void *exp_host = NULL;
5408 <        const char *errptr = NULL;
5409 <
5410 <        if (!(exp_user = ircd_pcre_compile(userbuf, &errptr)) ||
5411 <            !(exp_host = ircd_pcre_compile(hostbuf, &errptr)))
5412 <        {
5413 <          ilog(L_ERROR, "Failed to add regular expression based K-Line: %s",
5414 <               errptr);
5415 <          break;
5416 <        }
5406 >    void *exp_user = NULL;
5407 >    void *exp_host = NULL;
5408 >    const char *errptr = NULL;
5409 >
5410 >    if (!(exp_user = ircd_pcre_compile(block_state.user.buf, &errptr)) ||
5411 >        !(exp_host = ircd_pcre_compile(block_state.host.buf, &errptr)))
5412 >    {
5413 >      ilog(LOG_TYPE_IRCD, "Failed to add regular expression based K-Line: %s",
5414 >           errptr);
5415 >      break;
5416 >    }
5417  
5418 <        yy_aconf = map_to_conf(make_conf_item(RKLINE_TYPE));
5419 <        yy_aconf->regexuser = exp_user;
5420 <        yy_aconf->regexhost = exp_host;
5418 >    conf = conf_make(CONF_RKLINE);
5419 >    conf->regexuser = exp_user;
5420 >    conf->regexhost = exp_host;
5421  
5422 <        DupString(yy_aconf->user, userbuf);
5423 <        DupString(yy_aconf->host, hostbuf);
5422 >    conf->user = xstrdup(block_state.user.buf);
5423 >    conf->host = xstrdup(block_state.host.buf);
5424  
5425 <        if (reasonbuf[0])
5426 <          DupString(yy_aconf->reason, reasonbuf);
5427 <        else
5428 <          DupString(yy_aconf->reason, "No reason");
5425 >    if (block_state.rpass.buf[0])
5426 >      conf->reason = xstrdup(block_state.rpass.buf);
5427 >    else
5428 >      conf->reason = xstrdup(CONF_NOREASON);
5429   #else
5430 <        ilog(L_ERROR, "Failed to add regular expression based K-Line: no PCRE support");
5431 <        break;
5430 >    ilog(LOG_TYPE_IRCD, "Failed to add regular expression based K-Line: no PCRE support");
5431 >    break;
5432   #endif
5433 <      }
5434 <      else
5435 <      {
5436 <        yy_aconf = map_to_conf(make_conf_item(KLINE_TYPE));
5433 >  }
5434 >  else
5435 >  {
5436 >    conf = conf_make(CONF_KLINE);
5437  
5438 <        DupString(yy_aconf->user, userbuf);
5439 <        DupString(yy_aconf->host, hostbuf);
5438 >    conf->user = xstrdup(block_state.user.buf);
5439 >    conf->host = xstrdup(block_state.host.buf);
5440  
5441 <        if (reasonbuf[0])
5442 <          DupString(yy_aconf->reason, reasonbuf);
5443 <        else
5444 <          DupString(yy_aconf->reason, "No reason");
5445 <        add_conf_by_address(CONF_KILL, yy_aconf);
6984 <      }
6985 <    }
6986 <
6987 <    yy_aconf = NULL;
5441 >    if (block_state.rpass.buf[0])
5442 >      conf->reason = xstrdup(block_state.rpass.buf);
5443 >    else
5444 >      conf->reason = xstrdup(CONF_NOREASON);
5445 >    add_conf_by_address(CONF_KLINE, conf);
5446    }
5447   }
5448      break;
5449  
5450 <  case 454:
5451 <
5452 < /* Line 1455 of yacc.c  */
6995 < #line 2966 "ircd_parser.y"
5450 >  case 385:
5451 > /* Line 1778 of yacc.c  */
5452 > #line 2090 "conf_parser.y"
5453      {
5454 +  if (conf_parser_ctx.pass == 2)
5455 +    block_state.port.value = 0;
5456   }
5457      break;
5458  
5459 <  case 458:
5460 <
5461 < /* Line 1455 of yacc.c  */
7003 < #line 2971 "ircd_parser.y"
5459 >  case 389:
5460 > /* Line 1778 of yacc.c  */
5461 > #line 2097 "conf_parser.y"
5462      {
5463    if (conf_parser_ctx.pass == 2)
5464 <    regex_ban = 1;
5464 >    block_state.port.value = 1;
5465   }
5466      break;
5467  
5468 <  case 465:
5469 <
5470 < /* Line 1455 of yacc.c  */
7013 < #line 2980 "ircd_parser.y"
5468 >  case 396:
5469 > /* Line 1778 of yacc.c  */
5470 > #line 2106 "conf_parser.y"
5471      {
5472 +
5473    if (conf_parser_ctx.pass == 2)
5474    {
5475      struct split_nuh_item nuh;
5476  
5477      nuh.nuhmask  = yylval.string;
5478      nuh.nickptr  = NULL;
5479 <    nuh.userptr  = userbuf;
5480 <    nuh.hostptr  = hostbuf;
5479 >    nuh.userptr  = block_state.user.buf;
5480 >    nuh.hostptr  = block_state.host.buf;
5481  
5482      nuh.nicksize = 0;
5483 <    nuh.usersize = sizeof(userbuf);
5484 <    nuh.hostsize = sizeof(hostbuf);
5483 >    nuh.usersize = sizeof(block_state.user.buf);
5484 >    nuh.hostsize = sizeof(block_state.host.buf);
5485  
5486      split_nuh(&nuh);
5487    }
5488   }
5489      break;
5490  
5491 <  case 466:
5492 <
5493 < /* Line 1455 of yacc.c  */
7036 < #line 2999 "ircd_parser.y"
5491 >  case 397:
5492 > /* Line 1778 of yacc.c  */
5493 > #line 2126 "conf_parser.y"
5494      {
5495    if (conf_parser_ctx.pass == 2)
5496 <    strlcpy(reasonbuf, yylval.string, sizeof(reasonbuf));
5496 >    strlcpy(block_state.rpass.buf, yylval.string, sizeof(block_state.rpass.buf));
5497   }
5498      break;
5499  
5500 <  case 467:
5501 <
5502 < /* Line 1455 of yacc.c  */
7046 < #line 3008 "ircd_parser.y"
5500 >  case 398:
5501 > /* Line 1778 of yacc.c  */
5502 > #line 2135 "conf_parser.y"
5503      {
5504    if (conf_parser_ctx.pass == 2)
5505 <    hostbuf[0] = reasonbuf[0] = '\0';
5505 >    reset_block_state();
5506   }
5507      break;
5508  
5509 <  case 468:
5510 <
5511 < /* Line 1455 of yacc.c  */
7056 < #line 3012 "ircd_parser.y"
5509 >  case 399:
5510 > /* Line 1778 of yacc.c  */
5511 > #line 2139 "conf_parser.y"
5512      {
5513 <  if (conf_parser_ctx.pass == 2)
5513 >  struct MaskItem *conf = NULL;
5514 >
5515 >  if (conf_parser_ctx.pass != 2)
5516 >    break;
5517 >
5518 >  if (!block_state.addr.buf[0])
5519 >    break;
5520 >
5521 >  if (parse_netmask(block_state.addr.buf, NULL, NULL) != HM_HOST)
5522    {
5523 <    if (hostbuf[0] && parse_netmask(hostbuf, NULL, NULL) != HM_HOST)
5524 <    {
7062 <      yy_aconf = map_to_conf(make_conf_item(DLINE_TYPE));
7063 <      DupString(yy_aconf->host, hostbuf);
5523 >    conf = conf_make(CONF_DLINE);
5524 >    conf->host = xstrdup(block_state.addr.buf);
5525  
5526 <      if (reasonbuf[0])
5527 <        DupString(yy_aconf->reason, reasonbuf);
5528 <      else
5529 <        DupString(yy_aconf->reason, "No reason");
5530 <      add_conf_by_address(CONF_DLINE, yy_aconf);
7070 <      yy_aconf = NULL;
7071 <    }
5526 >    if (block_state.rpass.buf[0])
5527 >      conf->reason = xstrdup(block_state.rpass.buf);
5528 >    else
5529 >      conf->reason = xstrdup(CONF_NOREASON);
5530 >    add_conf_by_address(CONF_DLINE, conf);
5531    }
5532   }
5533      break;
5534  
5535 <  case 474:
5536 <
5537 < /* Line 1455 of yacc.c  */
7079 < #line 3034 "ircd_parser.y"
5535 >  case 405:
5536 > /* Line 1778 of yacc.c  */
5537 > #line 2165 "conf_parser.y"
5538      {
5539    if (conf_parser_ctx.pass == 2)
5540 <    strlcpy(hostbuf, yylval.string, sizeof(hostbuf));
5540 >    strlcpy(block_state.addr.buf, yylval.string, sizeof(block_state.addr.buf));
5541   }
5542      break;
5543  
5544 <  case 475:
5545 <
5546 < /* Line 1455 of yacc.c  */
7089 < #line 3040 "ircd_parser.y"
5544 >  case 406:
5545 > /* Line 1778 of yacc.c  */
5546 > #line 2171 "conf_parser.y"
5547      {
5548    if (conf_parser_ctx.pass == 2)
5549 <    strlcpy(reasonbuf, yylval.string, sizeof(reasonbuf));
5549 >    strlcpy(block_state.rpass.buf, yylval.string, sizeof(block_state.rpass.buf));
5550   }
5551      break;
5552  
5553 <  case 481:
5554 <
5555 < /* Line 1455 of yacc.c  */
7099 < #line 3054 "ircd_parser.y"
5553 >  case 412:
5554 > /* Line 1778 of yacc.c  */
5555 > #line 2185 "conf_parser.y"
5556      {
5557    if (conf_parser_ctx.pass == 2)
5558    {
5559      if (yylval.string[0] && parse_netmask(yylval.string, NULL, NULL) != HM_HOST)
5560      {
5561 <      yy_aconf = map_to_conf(make_conf_item(EXEMPTDLINE_TYPE));
5562 <      DupString(yy_aconf->host, yylval.string);
5561 >      struct MaskItem *conf = conf_make(CONF_EXEMPT);
5562 >      conf->host = xstrdup(yylval.string);
5563  
5564 <      add_conf_by_address(CONF_EXEMPTDLINE, yy_aconf);
7109 <      yy_aconf = NULL;
5564 >      add_conf_by_address(CONF_EXEMPT, conf);
5565      }
5566    }
5567   }
5568      break;
5569  
5570 <  case 482:
5571 <
5572 < /* Line 1455 of yacc.c  */
7118 < #line 3072 "ircd_parser.y"
5570 >  case 413:
5571 > /* Line 1778 of yacc.c  */
5572 > #line 2202 "conf_parser.y"
5573      {
5574    if (conf_parser_ctx.pass == 2)
5575 <  {
7122 <    regex_ban = 0;
7123 <    reasonbuf[0] = gecos_name[0] = '\0';
7124 <  }
5575 >    reset_block_state();
5576   }
5577      break;
5578  
5579 <  case 483:
5580 <
5581 < /* Line 1455 of yacc.c  */
7131 < #line 3079 "ircd_parser.y"
5579 >  case 414:
5580 > /* Line 1778 of yacc.c  */
5581 > #line 2206 "conf_parser.y"
5582      {
5583 <  if (conf_parser_ctx.pass == 2)
5583 >  struct MaskItem *conf = NULL;
5584 >
5585 >  if (conf_parser_ctx.pass != 2)
5586 >    break;
5587 >
5588 >  if (!block_state.name.buf[0])
5589 >    break;
5590 >
5591 >  if (block_state.port.value == 1)
5592    {
7135    if (gecos_name[0])
7136    {
7137      if (regex_ban)
7138      {
5593   #ifdef HAVE_LIBPCRE
5594 <        void *exp_p = NULL;
5595 <        const char *errptr = NULL;
5594 >    void *exp_p = NULL;
5595 >    const char *errptr = NULL;
5596  
5597 <        if (!(exp_p = ircd_pcre_compile(gecos_name, &errptr)))
5598 <        {
5599 <          ilog(L_ERROR, "Failed to add regular expression based X-Line: %s",
5600 <               errptr);
5601 <          break;
5602 <        }
5597 >    if (!(exp_p = ircd_pcre_compile(block_state.name.buf, &errptr)))
5598 >    {
5599 >      ilog(LOG_TYPE_IRCD, "Failed to add regular expression based X-Line: %s",
5600 >           errptr);
5601 >      break;
5602 >    }
5603  
5604 <        yy_conf = make_conf_item(RXLINE_TYPE);
5605 <        yy_conf->regexpname = exp_p;
5604 >    conf = conf_make(CONF_RXLINE);
5605 >    conf->regexuser = exp_p;
5606   #else
5607 <        ilog(L_ERROR, "Failed to add regular expression based X-Line: no PCRE support");
5608 <        break;
5607 >    ilog(LOG_TYPE_IRCD, "Failed to add regular expression based X-Line: no PCRE support");
5608 >    break;
5609   #endif
5610 <      }
5611 <      else
5612 <        yy_conf = make_conf_item(XLINE_TYPE);
5610 >  }
5611 >  else
5612 >    conf = conf_make(CONF_XLINE);
5613  
5614 <      yy_match_item = map_to_conf(yy_conf);
7161 <      DupString(yy_conf->name, gecos_name);
5614 >  conf->name = xstrdup(block_state.name.buf);
5615  
5616 <      if (reasonbuf[0])
5617 <        DupString(yy_match_item->reason, reasonbuf);
5618 <      else
5619 <        DupString(yy_match_item->reason, "No reason");
7167 <    }
7168 <  }
5616 >  if (block_state.rpass.buf[0])
5617 >    conf->reason = xstrdup(block_state.rpass.buf);
5618 >  else
5619 >    conf->reason = xstrdup(CONF_NOREASON);
5620   }
5621      break;
5622  
5623 <  case 484:
5624 <
5625 < /* Line 1455 of yacc.c  */
7175 < #line 3119 "ircd_parser.y"
5623 >  case 415:
5624 > /* Line 1778 of yacc.c  */
5625 > #line 2247 "conf_parser.y"
5626      {
5627 +  if (conf_parser_ctx.pass == 2)
5628 +    block_state.port.value = 0;
5629   }
5630      break;
5631  
5632 <  case 488:
5633 <
5634 < /* Line 1455 of yacc.c  */
7183 < #line 3124 "ircd_parser.y"
5632 >  case 419:
5633 > /* Line 1778 of yacc.c  */
5634 > #line 2254 "conf_parser.y"
5635      {
5636    if (conf_parser_ctx.pass == 2)
5637 <    regex_ban = 1;
5637 >    block_state.port.value = 1;
5638   }
5639      break;
5640  
5641 <  case 495:
5642 <
5643 < /* Line 1455 of yacc.c  */
7193 < #line 3133 "ircd_parser.y"
5641 >  case 426:
5642 > /* Line 1778 of yacc.c  */
5643 > #line 2263 "conf_parser.y"
5644      {
5645    if (conf_parser_ctx.pass == 2)
5646 <    strlcpy(gecos_name, yylval.string, sizeof(gecos_name));
5646 >    strlcpy(block_state.name.buf, yylval.string, sizeof(block_state.name.buf));
5647   }
5648      break;
5649  
5650 <  case 496:
5651 <
5652 < /* Line 1455 of yacc.c  */
7203 < #line 3139 "ircd_parser.y"
5650 >  case 427:
5651 > /* Line 1778 of yacc.c  */
5652 > #line 2269 "conf_parser.y"
5653      {
5654    if (conf_parser_ctx.pass == 2)
5655 <    strlcpy(reasonbuf, yylval.string, sizeof(reasonbuf));
5655 >    strlcpy(block_state.rpass.buf, yylval.string, sizeof(block_state.rpass.buf));
5656   }
5657      break;
5658  
5659 <  case 557:
5660 <
5661 < /* Line 1455 of yacc.c  */
7213 < #line 3184 "ircd_parser.y"
5659 >  case 481:
5660 > /* Line 1778 of yacc.c  */
5661 > #line 2314 "conf_parser.y"
5662      {
5663    ConfigFileEntry.max_watch = (yyvsp[(3) - (4)].number);
5664   }
5665      break;
5666  
5667 <  case 558:
5668 <
5669 < /* Line 1455 of yacc.c  */
7222 < #line 3189 "ircd_parser.y"
5667 >  case 482:
5668 > /* Line 1778 of yacc.c  */
5669 > #line 2319 "conf_parser.y"
5670      {
5671 <  ConfigFileEntry.gline_min_cidr = (yyvsp[(3) - (4)].number);
5671 >  if (conf_parser_ctx.pass == 2)
5672 >    ConfigFileEntry.glines = yylval.number;
5673   }
5674      break;
5675  
5676 <  case 559:
5677 <
5678 < /* Line 1455 of yacc.c  */
7231 < #line 3194 "ircd_parser.y"
5676 >  case 483:
5677 > /* Line 1778 of yacc.c  */
5678 > #line 2325 "conf_parser.y"
5679      {
5680 <  ConfigFileEntry.gline_min_cidr6 = (yyvsp[(3) - (4)].number);
5680 >  if (conf_parser_ctx.pass == 2)
5681 >    ConfigFileEntry.gline_time = (yyvsp[(3) - (4)].number);
5682   }
5683      break;
5684  
5685 <  case 560:
5686 <
5687 < /* Line 1455 of yacc.c  */
7240 < #line 3199 "ircd_parser.y"
5685 >  case 484:
5686 > /* Line 1778 of yacc.c  */
5687 > #line 2331 "conf_parser.y"
5688      {
5689 <  ConfigFileEntry.burst_away = yylval.number;
5689 >  if (conf_parser_ctx.pass == 2)
5690 >    ConfigFileEntry.gline_request_time = (yyvsp[(3) - (4)].number);
5691   }
5692      break;
5693  
5694 <  case 561:
5695 <
5696 < /* Line 1455 of yacc.c  */
7249 < #line 3204 "ircd_parser.y"
5694 >  case 485:
5695 > /* Line 1778 of yacc.c  */
5696 > #line 2337 "conf_parser.y"
5697      {
5698 <  ConfigFileEntry.use_whois_actually = yylval.number;
5698 >  ConfigFileEntry.gline_min_cidr = (yyvsp[(3) - (4)].number);
5699   }
5700      break;
5701  
5702 <  case 562:
5703 <
5704 < /* Line 1455 of yacc.c  */
7258 < #line 3209 "ircd_parser.y"
5702 >  case 486:
5703 > /* Line 1778 of yacc.c  */
5704 > #line 2342 "conf_parser.y"
5705      {
5706 <  GlobalSetOptions.rejecttime = yylval.number;
5706 >  ConfigFileEntry.gline_min_cidr6 = (yyvsp[(3) - (4)].number);
5707   }
5708      break;
5709  
5710 <  case 563:
5711 <
5712 < /* Line 1455 of yacc.c  */
7267 < #line 3214 "ircd_parser.y"
5710 >  case 487:
5711 > /* Line 1778 of yacc.c  */
5712 > #line 2347 "conf_parser.y"
5713      {
5714    ConfigFileEntry.tkline_expire_notices = yylval.number;
5715   }
5716      break;
5717  
5718 <  case 564:
5719 <
5720 < /* Line 1455 of yacc.c  */
7276 < #line 3219 "ircd_parser.y"
5718 >  case 488:
5719 > /* Line 1778 of yacc.c  */
5720 > #line 2352 "conf_parser.y"
5721      {
5722    ConfigFileEntry.kill_chase_time_limit = (yyvsp[(3) - (4)].number);
5723   }
5724      break;
5725  
5726 <  case 565:
5727 <
5728 < /* Line 1455 of yacc.c  */
7285 < #line 3224 "ircd_parser.y"
5726 >  case 489:
5727 > /* Line 1778 of yacc.c  */
5728 > #line 2357 "conf_parser.y"
5729      {
5730    ConfigFileEntry.hide_spoof_ips = yylval.number;
5731   }
5732      break;
5733  
5734 <  case 566:
5735 <
5736 < /* Line 1455 of yacc.c  */
7294 < #line 3229 "ircd_parser.y"
5734 >  case 490:
5735 > /* Line 1778 of yacc.c  */
5736 > #line 2362 "conf_parser.y"
5737      {
5738    ConfigFileEntry.ignore_bogus_ts = yylval.number;
5739   }
5740      break;
5741  
5742 <  case 567:
5743 <
5744 < /* Line 1455 of yacc.c  */
7303 < #line 3234 "ircd_parser.y"
5742 >  case 491:
5743 > /* Line 1778 of yacc.c  */
5744 > #line 2367 "conf_parser.y"
5745      {
5746    ConfigFileEntry.disable_remote = yylval.number;
5747   }
5748      break;
5749  
5750 <  case 568:
5751 <
5752 < /* Line 1455 of yacc.c  */
7312 < #line 3239 "ircd_parser.y"
5750 >  case 492:
5751 > /* Line 1778 of yacc.c  */
5752 > #line 2372 "conf_parser.y"
5753      {
5754    ConfigFileEntry.failed_oper_notice = yylval.number;
5755   }
5756      break;
5757  
5758 <  case 569:
5759 <
5760 < /* Line 1455 of yacc.c  */
7321 < #line 3244 "ircd_parser.y"
5758 >  case 493:
5759 > /* Line 1778 of yacc.c  */
5760 > #line 2377 "conf_parser.y"
5761      {
5762    ConfigFileEntry.anti_nick_flood = yylval.number;
5763   }
5764      break;
5765  
5766 <  case 570:
5767 <
5768 < /* Line 1455 of yacc.c  */
7330 < #line 3249 "ircd_parser.y"
5766 >  case 494:
5767 > /* Line 1778 of yacc.c  */
5768 > #line 2382 "conf_parser.y"
5769      {
5770    ConfigFileEntry.max_nick_time = (yyvsp[(3) - (4)].number);
5771   }
5772      break;
5773  
5774 <  case 571:
5775 <
5776 < /* Line 1455 of yacc.c  */
7339 < #line 3254 "ircd_parser.y"
5774 >  case 495:
5775 > /* Line 1778 of yacc.c  */
5776 > #line 2387 "conf_parser.y"
5777      {
5778    ConfigFileEntry.max_nick_changes = (yyvsp[(3) - (4)].number);
5779   }
5780      break;
5781  
5782 <  case 572:
5783 <
5784 < /* Line 1455 of yacc.c  */
7348 < #line 3259 "ircd_parser.y"
5782 >  case 496:
5783 > /* Line 1778 of yacc.c  */
5784 > #line 2392 "conf_parser.y"
5785      {
5786    ConfigFileEntry.max_accept = (yyvsp[(3) - (4)].number);
5787   }
5788      break;
5789  
5790 <  case 573:
5791 <
5792 < /* Line 1455 of yacc.c  */
7357 < #line 3264 "ircd_parser.y"
5790 >  case 497:
5791 > /* Line 1778 of yacc.c  */
5792 > #line 2397 "conf_parser.y"
5793      {
5794    ConfigFileEntry.anti_spam_exit_message_time = (yyvsp[(3) - (4)].number);
5795   }
5796      break;
5797  
5798 <  case 574:
5799 <
5800 < /* Line 1455 of yacc.c  */
7366 < #line 3269 "ircd_parser.y"
5798 >  case 498:
5799 > /* Line 1778 of yacc.c  */
5800 > #line 2402 "conf_parser.y"
5801      {
5802    ConfigFileEntry.ts_warn_delta = (yyvsp[(3) - (4)].number);
5803   }
5804      break;
5805  
5806 <  case 575:
5807 <
5808 < /* Line 1455 of yacc.c  */
7375 < #line 3274 "ircd_parser.y"
5806 >  case 499:
5807 > /* Line 1778 of yacc.c  */
5808 > #line 2407 "conf_parser.y"
5809      {
5810    if (conf_parser_ctx.pass == 2)
5811      ConfigFileEntry.ts_max_delta = (yyvsp[(3) - (4)].number);
5812   }
5813      break;
5814  
5815 <  case 576:
5816 <
5817 < /* Line 1455 of yacc.c  */
7385 < #line 3280 "ircd_parser.y"
5815 >  case 500:
5816 > /* Line 1778 of yacc.c  */
5817 > #line 2413 "conf_parser.y"
5818      {
5819    if (((yyvsp[(3) - (4)].number) > 0) && conf_parser_ctx.pass == 1)
5820    {
5821 <    ilog(L_CRIT, "You haven't read your config file properly.");
5822 <    ilog(L_CRIT, "There is a line in the example conf that will kill your server if not removed.");
5823 <    ilog(L_CRIT, "Consider actually reading/editing the conf file, and removing this line.");
5821 >    ilog(LOG_TYPE_IRCD, "You haven't read your config file properly.");
5822 >    ilog(LOG_TYPE_IRCD, "There is a line in the example conf that will kill your server if not removed.");
5823 >    ilog(LOG_TYPE_IRCD, "Consider actually reading/editing the conf file, and removing this line.");
5824      exit(0);
5825    }
5826   }
5827      break;
5828  
5829 <  case 577:
5830 <
5831 < /* Line 1455 of yacc.c  */
7400 < #line 3291 "ircd_parser.y"
7401 <    {
7402 <  ConfigFileEntry.kline_with_reason = yylval.number;
7403 < }
7404 <    break;
7405 <
7406 <  case 578:
7407 <
7408 < /* Line 1455 of yacc.c  */
7409 < #line 3296 "ircd_parser.y"
7410 <    {
7411 <  if (conf_parser_ctx.pass == 2)
7412 <  {
7413 <    MyFree(ConfigFileEntry.kline_reason);
7414 <    DupString(ConfigFileEntry.kline_reason, yylval.string);
7415 <  }
7416 < }
7417 <    break;
7418 <
7419 <  case 579:
7420 <
7421 < /* Line 1455 of yacc.c  */
7422 < #line 3305 "ircd_parser.y"
5829 >  case 501:
5830 > /* Line 1778 of yacc.c  */
5831 > #line 2424 "conf_parser.y"
5832      {
5833    ConfigFileEntry.invisible_on_connect = yylval.number;
5834   }
5835      break;
5836  
5837 <  case 580:
5838 <
5839 < /* Line 1455 of yacc.c  */
7431 < #line 3310 "ircd_parser.y"
5837 >  case 502:
5838 > /* Line 1778 of yacc.c  */
5839 > #line 2429 "conf_parser.y"
5840      {
5841    ConfigFileEntry.warn_no_nline = yylval.number;
5842   }
5843      break;
5844  
5845 <  case 581:
5846 <
5847 < /* Line 1455 of yacc.c  */
7440 < #line 3315 "ircd_parser.y"
5845 >  case 503:
5846 > /* Line 1778 of yacc.c  */
5847 > #line 2434 "conf_parser.y"
5848      {
5849    ConfigFileEntry.stats_e_disabled = yylval.number;
5850   }
5851      break;
5852  
5853 <  case 582:
5854 <
5855 < /* Line 1455 of yacc.c  */
7449 < #line 3320 "ircd_parser.y"
5853 >  case 504:
5854 > /* Line 1778 of yacc.c  */
5855 > #line 2439 "conf_parser.y"
5856      {
5857    ConfigFileEntry.stats_o_oper_only = yylval.number;
5858   }
5859      break;
5860  
5861 <  case 583:
5862 <
5863 < /* Line 1455 of yacc.c  */
7458 < #line 3325 "ircd_parser.y"
5861 >  case 505:
5862 > /* Line 1778 of yacc.c  */
5863 > #line 2444 "conf_parser.y"
5864      {
5865    ConfigFileEntry.stats_P_oper_only = yylval.number;
5866   }
5867      break;
5868  
5869 <  case 584:
5870 <
5871 < /* Line 1455 of yacc.c  */
7467 < #line 3330 "ircd_parser.y"
5869 >  case 506:
5870 > /* Line 1778 of yacc.c  */
5871 > #line 2449 "conf_parser.y"
5872      {
5873    ConfigFileEntry.stats_k_oper_only = 2 * yylval.number;
5874   }
5875      break;
5876  
5877 <  case 585:
5878 <
5879 < /* Line 1455 of yacc.c  */
7476 < #line 3333 "ircd_parser.y"
5877 >  case 507:
5878 > /* Line 1778 of yacc.c  */
5879 > #line 2452 "conf_parser.y"
5880      {
5881    ConfigFileEntry.stats_k_oper_only = 1;
5882   }
5883      break;
5884  
5885 <  case 586:
5886 <
5887 < /* Line 1455 of yacc.c  */
7485 < #line 3338 "ircd_parser.y"
5885 >  case 508:
5886 > /* Line 1778 of yacc.c  */
5887 > #line 2457 "conf_parser.y"
5888      {
5889    ConfigFileEntry.stats_i_oper_only = 2 * yylval.number;
5890   }
5891      break;
5892  
5893 <  case 587:
5894 <
5895 < /* Line 1455 of yacc.c  */
7494 < #line 3341 "ircd_parser.y"
5893 >  case 509:
5894 > /* Line 1778 of yacc.c  */
5895 > #line 2460 "conf_parser.y"
5896      {
5897    ConfigFileEntry.stats_i_oper_only = 1;
5898   }
5899      break;
5900  
5901 <  case 588:
5902 <
5903 < /* Line 1455 of yacc.c  */
7503 < #line 3346 "ircd_parser.y"
5901 >  case 510:
5902 > /* Line 1778 of yacc.c  */
5903 > #line 2465 "conf_parser.y"
5904      {
5905    ConfigFileEntry.pace_wait = (yyvsp[(3) - (4)].number);
5906   }
5907      break;
5908  
5909 <  case 589:
5910 <
5911 < /* Line 1455 of yacc.c  */
7512 < #line 3351 "ircd_parser.y"
5909 >  case 511:
5910 > /* Line 1778 of yacc.c  */
5911 > #line 2470 "conf_parser.y"
5912      {
5913    ConfigFileEntry.caller_id_wait = (yyvsp[(3) - (4)].number);
5914   }
5915      break;
5916  
5917 <  case 590:
5918 <
5919 < /* Line 1455 of yacc.c  */
7521 < #line 3356 "ircd_parser.y"
5917 >  case 512:
5918 > /* Line 1778 of yacc.c  */
5919 > #line 2475 "conf_parser.y"
5920      {
5921    ConfigFileEntry.opers_bypass_callerid = yylval.number;
5922   }
5923      break;
5924  
5925 <  case 591:
5926 <
5927 < /* Line 1455 of yacc.c  */
7530 < #line 3361 "ircd_parser.y"
5925 >  case 513:
5926 > /* Line 1778 of yacc.c  */
5927 > #line 2480 "conf_parser.y"
5928      {
5929    ConfigFileEntry.pace_wait_simple = (yyvsp[(3) - (4)].number);
5930   }
5931      break;
5932  
5933 <  case 592:
5934 <
5935 < /* Line 1455 of yacc.c  */
7539 < #line 3366 "ircd_parser.y"
5933 >  case 514:
5934 > /* Line 1778 of yacc.c  */
5935 > #line 2485 "conf_parser.y"
5936      {
5937    ConfigFileEntry.short_motd = yylval.number;
5938   }
5939      break;
5940  
5941 <  case 593:
5942 <
5943 < /* Line 1455 of yacc.c  */
7548 < #line 3371 "ircd_parser.y"
5941 >  case 515:
5942 > /* Line 1778 of yacc.c  */
5943 > #line 2490 "conf_parser.y"
5944      {
5945    ConfigFileEntry.no_oper_flood = yylval.number;
5946   }
5947      break;
5948  
5949 <  case 594:
5950 <
5951 < /* Line 1455 of yacc.c  */
7557 < #line 3376 "ircd_parser.y"
5949 >  case 516:
5950 > /* Line 1778 of yacc.c  */
5951 > #line 2495 "conf_parser.y"
5952      {
5953    ConfigFileEntry.true_no_oper_flood = yylval.number;
5954   }
5955      break;
5956  
5957 <  case 595:
5958 <
5959 < /* Line 1455 of yacc.c  */
7566 < #line 3381 "ircd_parser.y"
5957 >  case 517:
5958 > /* Line 1778 of yacc.c  */
5959 > #line 2500 "conf_parser.y"
5960      {
5961    ConfigFileEntry.oper_pass_resv = yylval.number;
5962   }
5963      break;
5964  
5965 <  case 596:
5966 <
5967 < /* Line 1455 of yacc.c  */
7575 < #line 3386 "ircd_parser.y"
5965 >  case 518:
5966 > /* Line 1778 of yacc.c  */
5967 > #line 2505 "conf_parser.y"
5968      {
5969    if (conf_parser_ctx.pass == 2)
5970    {
# Line 7584 | Line 5976 | yyreduce:
5976   }
5977      break;
5978  
5979 <  case 597:
5980 <
5981 < /* Line 1455 of yacc.c  */
7590 < #line 3397 "ircd_parser.y"
7591 <    {
7592 <  ConfigFileEntry.idletime = (yyvsp[(3) - (4)].number);
7593 < }
7594 <    break;
7595 <
7596 <  case 598:
7597 <
7598 < /* Line 1455 of yacc.c  */
7599 < #line 3402 "ircd_parser.y"
5979 >  case 519:
5980 > /* Line 1778 of yacc.c  */
5981 > #line 2516 "conf_parser.y"
5982      {
5983    ConfigFileEntry.dots_in_ident = (yyvsp[(3) - (4)].number);
5984   }
5985      break;
5986  
5987 <  case 599:
5988 <
5989 < /* Line 1455 of yacc.c  */
7608 < #line 3407 "ircd_parser.y"
5987 >  case 520:
5988 > /* Line 1778 of yacc.c  */
5989 > #line 2521 "conf_parser.y"
5990      {
5991    ConfigFileEntry.max_targets = (yyvsp[(3) - (4)].number);
5992   }
5993      break;
5994  
5995 <  case 600:
5996 <
5997 < /* Line 1455 of yacc.c  */
7617 < #line 3412 "ircd_parser.y"
7618 <    {
7619 <  if (conf_parser_ctx.pass == 2)
7620 <  {
7621 <    MyFree(ConfigFileEntry.servlink_path);
7622 <    DupString(ConfigFileEntry.servlink_path, yylval.string);
7623 <  }
7624 < }
7625 <    break;
7626 <
7627 <  case 601:
7628 <
7629 < /* Line 1455 of yacc.c  */
7630 < #line 3421 "ircd_parser.y"
5995 >  case 521:
5996 > /* Line 1778 of yacc.c  */
5997 > #line 2526 "conf_parser.y"
5998      {
5999 < #ifdef HAVE_LIBCRYPTO
7633 <  if (conf_parser_ctx.pass == 2)
7634 <  {
7635 <    struct EncCapability *ecap;
7636 <    const char *cipher_name;
7637 <    int found = 0;
7638 <
7639 <    ConfigFileEntry.default_cipher_preference = NULL;
7640 <    cipher_name = yylval.string;
7641 <
7642 <    for (ecap = CipherTable; ecap->name; ecap++)
7643 <    {
7644 <      if ((irccmp(ecap->name, cipher_name) == 0) &&
7645 <          (ecap->cap & CAP_ENC_MASK))
7646 <      {
7647 <        ConfigFileEntry.default_cipher_preference = ecap;
7648 <        found = 1;
7649 <        break;
7650 <      }
7651 <    }
7652 <
7653 <    if (!found)
7654 <      yyerror("Invalid cipher");
7655 <  }
7656 < #else
7657 <  if (conf_parser_ctx.pass == 2)
7658 <    yyerror("Ignoring default_cipher_preference -- no OpenSSL support");
7659 < #endif
5999 >  ConfigFileEntry.use_egd = yylval.number;
6000   }
6001      break;
6002  
6003 <  case 602:
6004 <
6005 < /* Line 1455 of yacc.c  */
7666 < #line 3453 "ircd_parser.y"
6003 >  case 522:
6004 > /* Line 1778 of yacc.c  */
6005 > #line 2531 "conf_parser.y"
6006      {
6007    if (conf_parser_ctx.pass == 2)
6008    {
6009 <    ConfigFileEntry.compression_level = (yyvsp[(3) - (4)].number);
6010 < #ifndef HAVE_LIBZ
7672 <    yyerror("Ignoring compression_level -- no zlib support");
7673 < #else
7674 <    if ((ConfigFileEntry.compression_level < 1) ||
7675 <        (ConfigFileEntry.compression_level > 9))
7676 <    {
7677 <      yyerror("Ignoring invalid compression_level, using default");
7678 <      ConfigFileEntry.compression_level = 0;
7679 <    }
7680 < #endif
6009 >    MyFree(ConfigFileEntry.egdpool_path);
6010 >    ConfigFileEntry.egdpool_path = xstrdup(yylval.string);
6011    }
6012   }
6013      break;
6014  
6015 <  case 603:
6016 <
6017 < /* Line 1455 of yacc.c  */
7688 < #line 3471 "ircd_parser.y"
7689 <    {
7690 <  ConfigFileEntry.use_egd = yylval.number;
7691 < }
7692 <    break;
7693 <
7694 <  case 604:
7695 <
7696 < /* Line 1455 of yacc.c  */
7697 < #line 3476 "ircd_parser.y"
6015 >  case 523:
6016 > /* Line 1778 of yacc.c  */
6017 > #line 2540 "conf_parser.y"
6018      {
6019 <  if (conf_parser_ctx.pass == 2)
6019 >  if (conf_parser_ctx.pass == 2 && valid_servname(yylval.string))
6020    {
6021 <    MyFree(ConfigFileEntry.egdpool_path);
6022 <    DupString(ConfigFileEntry.egdpool_path, yylval.string);
6021 >    MyFree(ConfigFileEntry.service_name);
6022 >    ConfigFileEntry.service_name = xstrdup(yylval.string);
6023    }
6024   }
6025      break;
6026  
6027 <  case 605:
6028 <
6029 < /* Line 1455 of yacc.c  */
7710 < #line 3485 "ircd_parser.y"
6027 >  case 524:
6028 > /* Line 1778 of yacc.c  */
6029 > #line 2549 "conf_parser.y"
6030      {
6031    ConfigFileEntry.ping_cookie = yylval.number;
6032   }
6033      break;
6034  
6035 <  case 606:
6036 <
6037 < /* Line 1455 of yacc.c  */
7719 < #line 3490 "ircd_parser.y"
6035 >  case 525:
6036 > /* Line 1778 of yacc.c  */
6037 > #line 2554 "conf_parser.y"
6038      {
6039    ConfigFileEntry.disable_auth = yylval.number;
6040   }
6041      break;
6042  
6043 <  case 607:
6044 <
6045 < /* Line 1455 of yacc.c  */
7728 < #line 3495 "ircd_parser.y"
6043 >  case 526:
6044 > /* Line 1778 of yacc.c  */
6045 > #line 2559 "conf_parser.y"
6046      {
6047    ConfigFileEntry.throttle_time = yylval.number;
6048   }
6049      break;
6050  
6051 <  case 608:
6052 <
6053 < /* Line 1455 of yacc.c  */
7737 < #line 3500 "ircd_parser.y"
6051 >  case 527:
6052 > /* Line 1778 of yacc.c  */
6053 > #line 2564 "conf_parser.y"
6054      {
6055    ConfigFileEntry.oper_umodes = 0;
6056   }
6057      break;
6058  
6059 <  case 612:
6060 <
6061 < /* Line 1455 of yacc.c  */
7746 < #line 3506 "ircd_parser.y"
6059 >  case 531:
6060 > /* Line 1778 of yacc.c  */
6061 > #line 2570 "conf_parser.y"
6062      {
6063    ConfigFileEntry.oper_umodes |= UMODE_BOTS;
6064   }
6065      break;
6066  
6067 <  case 613:
6068 <
6069 < /* Line 1455 of yacc.c  */
7755 < #line 3509 "ircd_parser.y"
6067 >  case 532:
6068 > /* Line 1778 of yacc.c  */
6069 > #line 2573 "conf_parser.y"
6070      {
6071    ConfigFileEntry.oper_umodes |= UMODE_CCONN;
6072   }
6073      break;
6074  
6075 <  case 614:
6076 <
6077 < /* Line 1455 of yacc.c  */
7764 < #line 3512 "ircd_parser.y"
6075 >  case 533:
6076 > /* Line 1778 of yacc.c  */
6077 > #line 2576 "conf_parser.y"
6078      {
6079    ConfigFileEntry.oper_umodes |= UMODE_CCONN_FULL;
6080   }
6081      break;
6082  
6083 <  case 615:
6084 <
6085 < /* Line 1455 of yacc.c  */
7773 < #line 3515 "ircd_parser.y"
6083 >  case 534:
6084 > /* Line 1778 of yacc.c  */
6085 > #line 2579 "conf_parser.y"
6086      {
6087    ConfigFileEntry.oper_umodes |= UMODE_DEAF;
6088   }
6089      break;
6090  
6091 <  case 616:
6092 <
6093 < /* Line 1455 of yacc.c  */
7782 < #line 3518 "ircd_parser.y"
6091 >  case 535:
6092 > /* Line 1778 of yacc.c  */
6093 > #line 2582 "conf_parser.y"
6094      {
6095    ConfigFileEntry.oper_umodes |= UMODE_DEBUG;
6096   }
6097      break;
6098  
6099 <  case 617:
6100 <
6101 < /* Line 1455 of yacc.c  */
7791 < #line 3521 "ircd_parser.y"
6099 >  case 536:
6100 > /* Line 1778 of yacc.c  */
6101 > #line 2585 "conf_parser.y"
6102      {
6103    ConfigFileEntry.oper_umodes |= UMODE_FULL;
6104   }
6105      break;
6106  
6107 <  case 618:
6107 >  case 537:
6108 > /* Line 1778 of yacc.c  */
6109 > #line 2588 "conf_parser.y"
6110 >    {
6111 >  ConfigFileEntry.oper_umodes |= UMODE_HIDDEN;
6112 > }
6113 >    break;
6114  
6115 < /* Line 1455 of yacc.c  */
6116 < #line 3524 "ircd_parser.y"
6115 >  case 538:
6116 > /* Line 1778 of yacc.c  */
6117 > #line 2591 "conf_parser.y"
6118      {
6119    ConfigFileEntry.oper_umodes |= UMODE_SKILL;
6120   }
6121      break;
6122  
6123 <  case 619:
6124 <
6125 < /* Line 1455 of yacc.c  */
7809 < #line 3527 "ircd_parser.y"
6123 >  case 539:
6124 > /* Line 1778 of yacc.c  */
6125 > #line 2594 "conf_parser.y"
6126      {
6127    ConfigFileEntry.oper_umodes |= UMODE_NCHANGE;
6128   }
6129      break;
6130  
6131 <  case 620:
6132 <
6133 < /* Line 1455 of yacc.c  */
7818 < #line 3530 "ircd_parser.y"
6131 >  case 540:
6132 > /* Line 1778 of yacc.c  */
6133 > #line 2597 "conf_parser.y"
6134      {
6135    ConfigFileEntry.oper_umodes |= UMODE_REJ;
6136   }
6137      break;
6138  
6139 <  case 621:
6140 <
6141 < /* Line 1455 of yacc.c  */
7827 < #line 3533 "ircd_parser.y"
6139 >  case 541:
6140 > /* Line 1778 of yacc.c  */
6141 > #line 2600 "conf_parser.y"
6142      {
6143    ConfigFileEntry.oper_umodes |= UMODE_UNAUTH;
6144   }
6145      break;
6146  
6147 <  case 622:
6148 <
6149 < /* Line 1455 of yacc.c  */
7836 < #line 3536 "ircd_parser.y"
6147 >  case 542:
6148 > /* Line 1778 of yacc.c  */
6149 > #line 2603 "conf_parser.y"
6150      {
6151    ConfigFileEntry.oper_umodes |= UMODE_SPY;
6152   }
6153      break;
6154  
6155 <  case 623:
6156 <
6157 < /* Line 1455 of yacc.c  */
7845 < #line 3539 "ircd_parser.y"
6155 >  case 543:
6156 > /* Line 1778 of yacc.c  */
6157 > #line 2606 "conf_parser.y"
6158      {
6159    ConfigFileEntry.oper_umodes |= UMODE_EXTERNAL;
6160   }
6161      break;
6162  
6163 <  case 624:
6164 <
6165 < /* Line 1455 of yacc.c  */
7854 < #line 3542 "ircd_parser.y"
6163 >  case 544:
6164 > /* Line 1778 of yacc.c  */
6165 > #line 2609 "conf_parser.y"
6166      {
6167    ConfigFileEntry.oper_umodes |= UMODE_OPERWALL;
6168   }
6169      break;
6170  
6171 <  case 625:
6172 <
6173 < /* Line 1455 of yacc.c  */
7863 < #line 3545 "ircd_parser.y"
6171 >  case 545:
6172 > /* Line 1778 of yacc.c  */
6173 > #line 2612 "conf_parser.y"
6174      {
6175    ConfigFileEntry.oper_umodes |= UMODE_SERVNOTICE;
6176   }
6177      break;
6178  
6179 <  case 626:
6180 <
6181 < /* Line 1455 of yacc.c  */
7872 < #line 3548 "ircd_parser.y"
6179 >  case 546:
6180 > /* Line 1778 of yacc.c  */
6181 > #line 2615 "conf_parser.y"
6182      {
6183    ConfigFileEntry.oper_umodes |= UMODE_INVISIBLE;
6184   }
6185      break;
6186  
6187 <  case 627:
6188 <
6189 < /* Line 1455 of yacc.c  */
7881 < #line 3551 "ircd_parser.y"
6187 >  case 547:
6188 > /* Line 1778 of yacc.c  */
6189 > #line 2618 "conf_parser.y"
6190      {
6191    ConfigFileEntry.oper_umodes |= UMODE_WALLOP;
6192   }
6193      break;
6194  
6195 <  case 628:
6196 <
6197 < /* Line 1455 of yacc.c  */
7890 < #line 3554 "ircd_parser.y"
6195 >  case 548:
6196 > /* Line 1778 of yacc.c  */
6197 > #line 2621 "conf_parser.y"
6198      {
6199    ConfigFileEntry.oper_umodes |= UMODE_SOFTCALLERID;
6200   }
6201      break;
6202  
6203 <  case 629:
6204 <
6205 < /* Line 1455 of yacc.c  */
7899 < #line 3557 "ircd_parser.y"
6203 >  case 549:
6204 > /* Line 1778 of yacc.c  */
6205 > #line 2624 "conf_parser.y"
6206      {
6207    ConfigFileEntry.oper_umodes |= UMODE_CALLERID;
6208   }
6209      break;
6210  
6211 <  case 630:
6212 <
6213 < /* Line 1455 of yacc.c  */
7908 < #line 3560 "ircd_parser.y"
6211 >  case 550:
6212 > /* Line 1778 of yacc.c  */
6213 > #line 2627 "conf_parser.y"
6214      {
6215    ConfigFileEntry.oper_umodes |= UMODE_LOCOPS;
6216   }
6217      break;
6218  
6219 <  case 631:
6220 <
6221 < /* Line 1455 of yacc.c  */
7917 < #line 3565 "ircd_parser.y"
6219 >  case 551:
6220 > /* Line 1778 of yacc.c  */
6221 > #line 2632 "conf_parser.y"
6222      {
6223    ConfigFileEntry.oper_only_umodes = 0;
6224   }
6225      break;
6226  
6227 <  case 635:
6228 <
6229 < /* Line 1455 of yacc.c  */
7926 < #line 3571 "ircd_parser.y"
6227 >  case 555:
6228 > /* Line 1778 of yacc.c  */
6229 > #line 2638 "conf_parser.y"
6230      {
6231    ConfigFileEntry.oper_only_umodes |= UMODE_BOTS;
6232   }
6233      break;
6234  
6235 <  case 636:
6236 <
6237 < /* Line 1455 of yacc.c  */
7935 < #line 3574 "ircd_parser.y"
6235 >  case 556:
6236 > /* Line 1778 of yacc.c  */
6237 > #line 2641 "conf_parser.y"
6238      {
6239    ConfigFileEntry.oper_only_umodes |= UMODE_CCONN;
6240   }
6241      break;
6242  
6243 <  case 637:
6244 <
6245 < /* Line 1455 of yacc.c  */
7944 < #line 3577 "ircd_parser.y"
6243 >  case 557:
6244 > /* Line 1778 of yacc.c  */
6245 > #line 2644 "conf_parser.y"
6246      {
6247    ConfigFileEntry.oper_only_umodes |= UMODE_CCONN_FULL;
6248   }
6249      break;
6250  
6251 <  case 638:
6252 <
6253 < /* Line 1455 of yacc.c  */
7953 < #line 3580 "ircd_parser.y"
6251 >  case 558:
6252 > /* Line 1778 of yacc.c  */
6253 > #line 2647 "conf_parser.y"
6254      {
6255    ConfigFileEntry.oper_only_umodes |= UMODE_DEAF;
6256   }
6257      break;
6258  
6259 <  case 639:
6260 <
6261 < /* Line 1455 of yacc.c  */
7962 < #line 3583 "ircd_parser.y"
6259 >  case 559:
6260 > /* Line 1778 of yacc.c  */
6261 > #line 2650 "conf_parser.y"
6262      {
6263    ConfigFileEntry.oper_only_umodes |= UMODE_DEBUG;
6264   }
6265      break;
6266  
6267 <  case 640:
6268 <
6269 < /* Line 1455 of yacc.c  */
7971 < #line 3586 "ircd_parser.y"
6267 >  case 560:
6268 > /* Line 1778 of yacc.c  */
6269 > #line 2653 "conf_parser.y"
6270      {
6271    ConfigFileEntry.oper_only_umodes |= UMODE_FULL;
6272   }
6273      break;
6274  
6275 <  case 641:
6276 <
6277 < /* Line 1455 of yacc.c  */
7980 < #line 3589 "ircd_parser.y"
6275 >  case 561:
6276 > /* Line 1778 of yacc.c  */
6277 > #line 2656 "conf_parser.y"
6278      {
6279    ConfigFileEntry.oper_only_umodes |= UMODE_SKILL;
6280   }
6281      break;
6282  
6283 <  case 642:
6283 >  case 562:
6284 > /* Line 1778 of yacc.c  */
6285 > #line 2659 "conf_parser.y"
6286 >    {
6287 >  ConfigFileEntry.oper_only_umodes |= UMODE_HIDDEN;
6288 > }
6289 >    break;
6290  
6291 < /* Line 1455 of yacc.c  */
6292 < #line 3592 "ircd_parser.y"
6291 >  case 563:
6292 > /* Line 1778 of yacc.c  */
6293 > #line 2662 "conf_parser.y"
6294      {
6295    ConfigFileEntry.oper_only_umodes |= UMODE_NCHANGE;
6296   }
6297      break;
6298  
6299 <  case 643:
6300 <
6301 < /* Line 1455 of yacc.c  */
7998 < #line 3595 "ircd_parser.y"
6299 >  case 564:
6300 > /* Line 1778 of yacc.c  */
6301 > #line 2665 "conf_parser.y"
6302      {
6303    ConfigFileEntry.oper_only_umodes |= UMODE_REJ;
6304   }
6305      break;
6306  
6307 <  case 644:
6308 <
6309 < /* Line 1455 of yacc.c  */
8007 < #line 3598 "ircd_parser.y"
6307 >  case 565:
6308 > /* Line 1778 of yacc.c  */
6309 > #line 2668 "conf_parser.y"
6310      {
6311    ConfigFileEntry.oper_only_umodes |= UMODE_UNAUTH;
6312   }
6313      break;
6314  
6315 <  case 645:
6316 <
6317 < /* Line 1455 of yacc.c  */
8016 < #line 3601 "ircd_parser.y"
6315 >  case 566:
6316 > /* Line 1778 of yacc.c  */
6317 > #line 2671 "conf_parser.y"
6318      {
6319    ConfigFileEntry.oper_only_umodes |= UMODE_SPY;
6320   }
6321      break;
6322  
6323 <  case 646:
6324 <
6325 < /* Line 1455 of yacc.c  */
8025 < #line 3604 "ircd_parser.y"
6323 >  case 567:
6324 > /* Line 1778 of yacc.c  */
6325 > #line 2674 "conf_parser.y"
6326      {
6327    ConfigFileEntry.oper_only_umodes |= UMODE_EXTERNAL;
6328   }
6329      break;
6330  
6331 <  case 647:
6332 <
6333 < /* Line 1455 of yacc.c  */
8034 < #line 3607 "ircd_parser.y"
6331 >  case 568:
6332 > /* Line 1778 of yacc.c  */
6333 > #line 2677 "conf_parser.y"
6334      {
6335    ConfigFileEntry.oper_only_umodes |= UMODE_OPERWALL;
6336   }
6337      break;
6338  
6339 <  case 648:
6340 <
6341 < /* Line 1455 of yacc.c  */
8043 < #line 3610 "ircd_parser.y"
6339 >  case 569:
6340 > /* Line 1778 of yacc.c  */
6341 > #line 2680 "conf_parser.y"
6342      {
6343    ConfigFileEntry.oper_only_umodes |= UMODE_SERVNOTICE;
6344   }
6345      break;
6346  
6347 <  case 649:
6348 <
6349 < /* Line 1455 of yacc.c  */
8052 < #line 3613 "ircd_parser.y"
6347 >  case 570:
6348 > /* Line 1778 of yacc.c  */
6349 > #line 2683 "conf_parser.y"
6350      {
6351    ConfigFileEntry.oper_only_umodes |= UMODE_INVISIBLE;
6352   }
6353      break;
6354  
6355 <  case 650:
6356 <
6357 < /* Line 1455 of yacc.c  */
8061 < #line 3616 "ircd_parser.y"
6355 >  case 571:
6356 > /* Line 1778 of yacc.c  */
6357 > #line 2686 "conf_parser.y"
6358      {
6359    ConfigFileEntry.oper_only_umodes |= UMODE_WALLOP;
6360   }
6361      break;
6362  
6363 <  case 651:
6364 <
6365 < /* Line 1455 of yacc.c  */
8070 < #line 3619 "ircd_parser.y"
6363 >  case 572:
6364 > /* Line 1778 of yacc.c  */
6365 > #line 2689 "conf_parser.y"
6366      {
6367    ConfigFileEntry.oper_only_umodes |= UMODE_SOFTCALLERID;
6368   }
6369      break;
6370  
6371 <  case 652:
6372 <
6373 < /* Line 1455 of yacc.c  */
8079 < #line 3622 "ircd_parser.y"
6371 >  case 573:
6372 > /* Line 1778 of yacc.c  */
6373 > #line 2692 "conf_parser.y"
6374      {
6375    ConfigFileEntry.oper_only_umodes |= UMODE_CALLERID;
6376   }
6377      break;
6378  
6379 <  case 653:
6380 <
6381 < /* Line 1455 of yacc.c  */
8088 < #line 3625 "ircd_parser.y"
6379 >  case 574:
6380 > /* Line 1778 of yacc.c  */
6381 > #line 2695 "conf_parser.y"
6382      {
6383    ConfigFileEntry.oper_only_umodes |= UMODE_LOCOPS;
6384   }
6385      break;
6386  
6387 <  case 654:
6388 <
6389 < /* Line 1455 of yacc.c  */
8097 < #line 3630 "ircd_parser.y"
6387 >  case 575:
6388 > /* Line 1778 of yacc.c  */
6389 > #line 2700 "conf_parser.y"
6390      {
6391    ConfigFileEntry.min_nonwildcard = (yyvsp[(3) - (4)].number);
6392   }
6393      break;
6394  
6395 <  case 655:
6396 <
6397 < /* Line 1455 of yacc.c  */
8106 < #line 3635 "ircd_parser.y"
6395 >  case 576:
6396 > /* Line 1778 of yacc.c  */
6397 > #line 2705 "conf_parser.y"
6398      {
6399    ConfigFileEntry.min_nonwildcard_simple = (yyvsp[(3) - (4)].number);
6400   }
6401      break;
6402  
6403 <  case 656:
6404 <
6405 < /* Line 1455 of yacc.c  */
8115 < #line 3640 "ircd_parser.y"
6403 >  case 577:
6404 > /* Line 1778 of yacc.c  */
6405 > #line 2710 "conf_parser.y"
6406      {
6407    ConfigFileEntry.default_floodcount = (yyvsp[(3) - (4)].number);
6408   }
6409      break;
6410  
6411 <  case 657:
6412 <
6413 < /* Line 1455 of yacc.c  */
8124 < #line 3645 "ircd_parser.y"
8125 <    {
8126 <  ConfigFileEntry.client_flood = (yyvsp[(3) - (4)].number);
8127 < }
8128 <    break;
8129 <
8130 <  case 658:
8131 <
8132 < /* Line 1455 of yacc.c  */
8133 < #line 3650 "ircd_parser.y"
8134 <    {
8135 <  ConfigFileEntry.dot_in_ip6_addr = yylval.number;
8136 < }
8137 <    break;
8138 <
8139 <  case 659:
8140 <
8141 < /* Line 1455 of yacc.c  */
8142 < #line 3658 "ircd_parser.y"
8143 <    {
8144 <  if (conf_parser_ctx.pass == 2)
8145 <  {
8146 <    yy_conf = make_conf_item(GDENY_TYPE);
8147 <    yy_aconf = map_to_conf(yy_conf);
8148 <  }
8149 < }
8150 <    break;
8151 <
8152 <  case 660:
8153 <
8154 < /* Line 1455 of yacc.c  */
8155 < #line 3665 "ircd_parser.y"
8156 <    {
8157 <  if (conf_parser_ctx.pass == 2)
8158 <  {
8159 <    /*
8160 <     * since we re-allocate yy_conf/yy_aconf after the end of action=, at the
8161 <     * end we will have one extra, so we should free it.
8162 <     */
8163 <    if (yy_conf->name == NULL || yy_aconf->user == NULL)
8164 <    {
8165 <      delete_conf_item(yy_conf);
8166 <      yy_conf = NULL;
8167 <      yy_aconf = NULL;
8168 <    }
8169 <  }
8170 < }
8171 <    break;
8172 <
8173 <  case 670:
8174 <
8175 < /* Line 1455 of yacc.c  */
8176 < #line 3691 "ircd_parser.y"
8177 <    {
8178 <  if (conf_parser_ctx.pass == 2)
8179 <    ConfigFileEntry.glines = yylval.number;
8180 < }
8181 <    break;
8182 <
8183 <  case 671:
8184 <
8185 < /* Line 1455 of yacc.c  */
8186 < #line 3697 "ircd_parser.y"
8187 <    {
8188 <  if (conf_parser_ctx.pass == 2)
8189 <    ConfigFileEntry.gline_time = (yyvsp[(3) - (4)].number);
8190 < }
8191 <    break;
8192 <
8193 <  case 672:
8194 <
8195 < /* Line 1455 of yacc.c  */
8196 < #line 3703 "ircd_parser.y"
8197 <    {
8198 <  if (conf_parser_ctx.pass == 2)
8199 <    ConfigFileEntry.gline_logging = 0;
8200 < }
8201 <    break;
8202 <
8203 <  case 676:
8204 <
8205 < /* Line 1455 of yacc.c  */
8206 < #line 3709 "ircd_parser.y"
8207 <    {
8208 <  if (conf_parser_ctx.pass == 2)
8209 <    ConfigFileEntry.gline_logging |= GDENY_REJECT;
8210 < }
8211 <    break;
8212 <
8213 <  case 677:
8214 <
8215 < /* Line 1455 of yacc.c  */
8216 < #line 3713 "ircd_parser.y"
8217 <    {
8218 <  if (conf_parser_ctx.pass == 2)
8219 <    ConfigFileEntry.gline_logging |= GDENY_BLOCK;
8220 < }
8221 <    break;
8222 <
8223 <  case 678:
8224 <
8225 < /* Line 1455 of yacc.c  */
8226 < #line 3719 "ircd_parser.y"
8227 <    {
8228 <  if (conf_parser_ctx.pass == 2)
8229 <  {
8230 <    struct split_nuh_item nuh;
8231 <
8232 <    nuh.nuhmask  = yylval.string;
8233 <    nuh.nickptr  = NULL;
8234 <    nuh.userptr  = userbuf;
8235 <    nuh.hostptr  = hostbuf;
8236 <
8237 <    nuh.nicksize = 0;
8238 <    nuh.usersize = sizeof(userbuf);
8239 <    nuh.hostsize = sizeof(hostbuf);
8240 <
8241 <    split_nuh(&nuh);
8242 <
8243 <    if (yy_aconf->user == NULL)
8244 <    {
8245 <      DupString(yy_aconf->user, userbuf);
8246 <      DupString(yy_aconf->host, hostbuf);
8247 <    }
8248 <    else
8249 <    {
8250 <      struct CollectItem *yy_tmp = MyMalloc(sizeof(struct CollectItem));
8251 <
8252 <      DupString(yy_tmp->user, userbuf);
8253 <      DupString(yy_tmp->host, hostbuf);
8254 <
8255 <      dlinkAdd(yy_tmp, &yy_tmp->node, &col_conf_list);
8256 <    }
8257 <  }
8258 < }
8259 <    break;
8260 <
8261 <  case 679:
8262 <
8263 < /* Line 1455 of yacc.c  */
8264 < #line 3753 "ircd_parser.y"
8265 <    {
8266 <  if (conf_parser_ctx.pass == 2)  
8267 <  {
8268 <    MyFree(yy_conf->name);
8269 <    DupString(yy_conf->name, yylval.string);
8270 <  }
8271 < }
8272 <    break;
8273 <
8274 <  case 680:
8275 <
8276 < /* Line 1455 of yacc.c  */
8277 < #line 3762 "ircd_parser.y"
8278 <    {
8279 <  if (conf_parser_ctx.pass == 2)
8280 <    yy_aconf->flags = 0;
8281 < }
8282 <    break;
8283 <
8284 <  case 681:
8285 <
8286 < /* Line 1455 of yacc.c  */
8287 < #line 3766 "ircd_parser.y"
8288 <    {
8289 <  if (conf_parser_ctx.pass == 2)
8290 <  {
8291 <    struct CollectItem *yy_tmp = NULL;
8292 <    dlink_node *ptr, *next_ptr;
8293 <
8294 <    DLINK_FOREACH_SAFE(ptr, next_ptr, col_conf_list.head)
8295 <    {
8296 <      struct AccessItem *new_aconf;
8297 <      struct ConfItem *new_conf;
8298 <
8299 <      yy_tmp = ptr->data;
8300 <      new_conf = make_conf_item(GDENY_TYPE);
8301 <      new_aconf = map_to_conf(new_conf);
8302 <
8303 <      new_aconf->flags = yy_aconf->flags;
8304 <
8305 <      if (yy_conf->name != NULL)
8306 <        DupString(new_conf->name, yy_conf->name);
8307 <      else
8308 <        DupString(new_conf->name, "*");
8309 <      if (yy_aconf->user != NULL)
8310 <         DupString(new_aconf->user, yy_tmp->user);
8311 <      else  
8312 <        DupString(new_aconf->user, "*");
8313 <      if (yy_aconf->host != NULL)
8314 <        DupString(new_aconf->host, yy_tmp->host);
8315 <      else
8316 <        DupString(new_aconf->host, "*");
8317 <
8318 <      dlinkDelete(&yy_tmp->node, &col_conf_list);
8319 <    }
8320 <
8321 <    /*
8322 <     * In case someone has fed us with more than one action= after user/name
8323 <     * which would leak memory  -Michael
8324 <     */
8325 <    if (yy_conf->name == NULL || yy_aconf->user == NULL)
8326 <      delete_conf_item(yy_conf);
8327 <
8328 <    yy_conf = make_conf_item(GDENY_TYPE);
8329 <    yy_aconf = map_to_conf(yy_conf);
8330 <  }
8331 < }
8332 <    break;
8333 <
8334 <  case 684:
8335 <
8336 < /* Line 1455 of yacc.c  */
8337 < #line 3813 "ircd_parser.y"
8338 <    {
8339 <  if (conf_parser_ctx.pass == 2)
8340 <    yy_aconf->flags |= GDENY_REJECT;
8341 < }
8342 <    break;
8343 <
8344 <  case 685:
8345 <
8346 < /* Line 1455 of yacc.c  */
8347 < #line 3817 "ircd_parser.y"
8348 <    {
8349 <  if (conf_parser_ctx.pass == 2)
8350 <    yy_aconf->flags |= GDENY_BLOCK;
8351 < }
8352 <    break;
8353 <
8354 <  case 708:
8355 <
8356 < /* Line 1455 of yacc.c  */
8357 < #line 3841 "ircd_parser.y"
6411 >  case 596:
6412 > /* Line 1778 of yacc.c  */
6413 > #line 2733 "conf_parser.y"
6414      {
6415    ConfigChannel.disable_fake_channels = yylval.number;
6416   }
6417      break;
6418  
6419 <  case 709:
6420 <
6421 < /* Line 1455 of yacc.c  */
8366 < #line 3846 "ircd_parser.y"
6419 >  case 597:
6420 > /* Line 1778 of yacc.c  */
6421 > #line 2738 "conf_parser.y"
6422      {
6423    ConfigChannel.restrict_channels = yylval.number;
6424   }
6425      break;
6426  
6427 <  case 710:
6428 <
6429 < /* Line 1455 of yacc.c  */
8375 < #line 3851 "ircd_parser.y"
8376 <    {
8377 <  ConfigChannel.disable_local_channels = yylval.number;
8378 < }
8379 <    break;
8380 <
8381 <  case 711:
8382 <
8383 < /* Line 1455 of yacc.c  */
8384 < #line 3856 "ircd_parser.y"
8385 <    {
8386 <  ConfigChannel.use_except = yylval.number;
8387 < }
8388 <    break;
8389 <
8390 <  case 712:
8391 <
8392 < /* Line 1455 of yacc.c  */
8393 < #line 3861 "ircd_parser.y"
8394 <    {
8395 <  ConfigChannel.use_invex = yylval.number;
8396 < }
8397 <    break;
8398 <
8399 <  case 713:
8400 <
8401 < /* Line 1455 of yacc.c  */
8402 < #line 3866 "ircd_parser.y"
8403 <    {
8404 <  ConfigChannel.use_knock = yylval.number;
8405 < }
8406 <    break;
8407 <
8408 <  case 714:
8409 <
8410 < /* Line 1455 of yacc.c  */
8411 < #line 3871 "ircd_parser.y"
6427 >  case 598:
6428 > /* Line 1778 of yacc.c  */
6429 > #line 2743 "conf_parser.y"
6430      {
6431    ConfigChannel.knock_delay = (yyvsp[(3) - (4)].number);
6432   }
6433      break;
6434  
6435 <  case 715:
6436 <
6437 < /* Line 1455 of yacc.c  */
8420 < #line 3876 "ircd_parser.y"
6435 >  case 599:
6436 > /* Line 1778 of yacc.c  */
6437 > #line 2748 "conf_parser.y"
6438      {
6439    ConfigChannel.knock_delay_channel = (yyvsp[(3) - (4)].number);
6440   }
6441      break;
6442  
6443 <  case 716:
6444 <
6445 < /* Line 1455 of yacc.c  */
8429 < #line 3881 "ircd_parser.y"
6443 >  case 600:
6444 > /* Line 1778 of yacc.c  */
6445 > #line 2753 "conf_parser.y"
6446      {
6447    ConfigChannel.max_chans_per_user = (yyvsp[(3) - (4)].number);
6448   }
6449      break;
6450  
6451 <  case 717:
6451 >  case 601:
6452 > /* Line 1778 of yacc.c  */
6453 > #line 2758 "conf_parser.y"
6454 >    {
6455 >  ConfigChannel.max_chans_per_oper = (yyvsp[(3) - (4)].number);
6456 > }
6457 >    break;
6458  
6459 < /* Line 1455 of yacc.c  */
6460 < #line 3886 "ircd_parser.y"
6459 >  case 602:
6460 > /* Line 1778 of yacc.c  */
6461 > #line 2763 "conf_parser.y"
6462      {
6463    ConfigChannel.quiet_on_ban = yylval.number;
6464   }
6465      break;
6466  
6467 <  case 718:
6468 <
6469 < /* Line 1455 of yacc.c  */
8447 < #line 3891 "ircd_parser.y"
6467 >  case 603:
6468 > /* Line 1778 of yacc.c  */
6469 > #line 2768 "conf_parser.y"
6470      {
6471    ConfigChannel.max_bans = (yyvsp[(3) - (4)].number);
6472   }
6473      break;
6474  
6475 <  case 719:
6476 <
6477 < /* Line 1455 of yacc.c  */
8456 < #line 3896 "ircd_parser.y"
6475 >  case 604:
6476 > /* Line 1778 of yacc.c  */
6477 > #line 2773 "conf_parser.y"
6478      {
6479    ConfigChannel.default_split_user_count = (yyvsp[(3) - (4)].number);
6480   }
6481      break;
6482  
6483 <  case 720:
6484 <
6485 < /* Line 1455 of yacc.c  */
8465 < #line 3901 "ircd_parser.y"
6483 >  case 605:
6484 > /* Line 1778 of yacc.c  */
6485 > #line 2778 "conf_parser.y"
6486      {
6487    ConfigChannel.default_split_server_count = (yyvsp[(3) - (4)].number);
6488   }
6489      break;
6490  
6491 <  case 721:
6492 <
6493 < /* Line 1455 of yacc.c  */
8474 < #line 3906 "ircd_parser.y"
6491 >  case 606:
6492 > /* Line 1778 of yacc.c  */
6493 > #line 2783 "conf_parser.y"
6494      {
6495    ConfigChannel.no_create_on_split = yylval.number;
6496   }
6497      break;
6498  
6499 <  case 722:
6500 <
6501 < /* Line 1455 of yacc.c  */
8483 < #line 3911 "ircd_parser.y"
6499 >  case 607:
6500 > /* Line 1778 of yacc.c  */
6501 > #line 2788 "conf_parser.y"
6502      {
6503    ConfigChannel.no_join_on_split = yylval.number;
6504   }
6505      break;
6506  
6507 <  case 723:
6508 <
6509 < /* Line 1455 of yacc.c  */
8492 < #line 3916 "ircd_parser.y"
8493 <    {
8494 <  ConfigChannel.burst_topicwho = yylval.number;
8495 < }
8496 <    break;
8497 <
8498 <  case 724:
8499 <
8500 < /* Line 1455 of yacc.c  */
8501 < #line 3921 "ircd_parser.y"
6507 >  case 608:
6508 > /* Line 1778 of yacc.c  */
6509 > #line 2793 "conf_parser.y"
6510      {
6511    GlobalSetOptions.joinfloodcount = yylval.number;
6512   }
6513      break;
6514  
6515 <  case 725:
6516 <
6517 < /* Line 1455 of yacc.c  */
8510 < #line 3926 "ircd_parser.y"
6515 >  case 609:
6516 > /* Line 1778 of yacc.c  */
6517 > #line 2798 "conf_parser.y"
6518      {
6519    GlobalSetOptions.joinfloodtime = yylval.number;
6520   }
6521      break;
6522  
6523 <  case 737:
6524 <
6525 < /* Line 1455 of yacc.c  */
8519 < #line 3945 "ircd_parser.y"
6523 >  case 620:
6524 > /* Line 1778 of yacc.c  */
6525 > #line 2816 "conf_parser.y"
6526      {
6527    if (conf_parser_ctx.pass == 2)
6528      ConfigServerHide.flatten_links = yylval.number;
6529   }
6530      break;
6531  
6532 <  case 738:
6533 <
6534 < /* Line 1455 of yacc.c  */
8529 < #line 3951 "ircd_parser.y"
6532 >  case 621:
6533 > /* Line 1778 of yacc.c  */
6534 > #line 2822 "conf_parser.y"
6535      {
6536    if (conf_parser_ctx.pass == 2)
6537      ConfigServerHide.hide_servers = yylval.number;
6538   }
6539      break;
6540  
6541 <  case 739:
6542 <
6543 < /* Line 1455 of yacc.c  */
8539 < #line 3957 "ircd_parser.y"
6541 >  case 622:
6542 > /* Line 1778 of yacc.c  */
6543 > #line 2828 "conf_parser.y"
6544      {
6545    if (conf_parser_ctx.pass == 2)
6546    {
6547      MyFree(ConfigServerHide.hidden_name);
6548 <    DupString(ConfigServerHide.hidden_name, yylval.string);
6548 >    ConfigServerHide.hidden_name = xstrdup(yylval.string);
6549    }
6550   }
6551      break;
6552  
6553 <  case 740:
6554 <
6555 < /* Line 1455 of yacc.c  */
8552 < #line 3966 "ircd_parser.y"
6553 >  case 623:
6554 > /* Line 1778 of yacc.c  */
6555 > #line 2837 "conf_parser.y"
6556      {
6557    if (conf_parser_ctx.pass == 2)
6558    {
# Line 8564 | Line 6567 | yyreduce:
6567   }
6568      break;
6569  
6570 <  case 741:
6571 <
6572 < /* Line 1455 of yacc.c  */
8570 < #line 3980 "ircd_parser.y"
6570 >  case 624:
6571 > /* Line 1778 of yacc.c  */
6572 > #line 2851 "conf_parser.y"
6573      {
6574    if (conf_parser_ctx.pass == 2)
6575      ConfigServerHide.hidden = yylval.number;
6576   }
6577      break;
6578  
6579 <  case 742:
6580 <
6581 < /* Line 1455 of yacc.c  */
8580 < #line 3986 "ircd_parser.y"
8581 <    {
8582 <  if (conf_parser_ctx.pass == 2)
8583 <    ConfigServerHide.disable_hidden = yylval.number;
8584 < }
8585 <    break;
8586 <
8587 <  case 743:
8588 <
8589 < /* Line 1455 of yacc.c  */
8590 < #line 3992 "ircd_parser.y"
6579 >  case 625:
6580 > /* Line 1778 of yacc.c  */
6581 > #line 2857 "conf_parser.y"
6582      {
6583    if (conf_parser_ctx.pass == 2)
6584      ConfigServerHide.hide_server_ips = yylval.number;
# Line 8595 | Line 6586 | yyreduce:
6586      break;
6587  
6588  
6589 <
6590 < /* Line 1455 of yacc.c  */
8600 < #line 8601 "ircd_parser.c"
6589 > /* Line 1778 of yacc.c  */
6590 > #line 6591 "conf_parser.c"
6591        default: break;
6592      }
6593 +  /* User semantic actions sometimes alter yychar, and that requires
6594 +     that yytoken be updated with the new translation.  We take the
6595 +     approach of translating immediately before every use of yytoken.
6596 +     One alternative is translating here after every semantic action,
6597 +     but that translation would be missed if the semantic action invokes
6598 +     YYABORT, YYACCEPT, or YYERROR immediately after altering yychar or
6599 +     if it invokes YYBACKUP.  In the case of YYABORT or YYACCEPT, an
6600 +     incorrect destructor might then be invoked immediately.  In the
6601 +     case of YYERROR or YYBACKUP, subsequent parser actions might lead
6602 +     to an incorrect destructor call or verbose syntax error message
6603 +     before the lookahead is translated.  */
6604    YY_SYMBOL_PRINT ("-> $$ =", yyr1[yyn], &yyval, &yyloc);
6605  
6606    YYPOPSTACK (yylen);
# Line 8627 | Line 6628 | yyreduce:
6628   | yyerrlab -- here on detecting error |
6629   `------------------------------------*/
6630   yyerrlab:
6631 +  /* Make sure we have latest lookahead translation.  See comments at
6632 +     user semantic actions for why this is necessary.  */
6633 +  yytoken = yychar == YYEMPTY ? YYEMPTY : YYTRANSLATE (yychar);
6634 +
6635    /* If not already recovering from an error, report this error.  */
6636    if (!yyerrstatus)
6637      {
# Line 8634 | Line 6639 | yyerrlab:
6639   #if ! YYERROR_VERBOSE
6640        yyerror (YY_("syntax error"));
6641   #else
6642 + # define YYSYNTAX_ERROR yysyntax_error (&yymsg_alloc, &yymsg, \
6643 +                                        yyssp, yytoken)
6644        {
6645 <        YYSIZE_T yysize = yysyntax_error (0, yystate, yychar);
6646 <        if (yymsg_alloc < yysize && yymsg_alloc < YYSTACK_ALLOC_MAXIMUM)
6647 <          {
6648 <            YYSIZE_T yyalloc = 2 * yysize;
6649 <            if (! (yysize <= yyalloc && yyalloc <= YYSTACK_ALLOC_MAXIMUM))
6650 <              yyalloc = YYSTACK_ALLOC_MAXIMUM;
6651 <            if (yymsg != yymsgbuf)
6652 <              YYSTACK_FREE (yymsg);
6653 <            yymsg = (char *) YYSTACK_ALLOC (yyalloc);
6654 <            if (yymsg)
6655 <              yymsg_alloc = yyalloc;
6656 <            else
6657 <              {
6658 <                yymsg = yymsgbuf;
6659 <                yymsg_alloc = sizeof yymsgbuf;
6660 <              }
6661 <          }
6662 <
6663 <        if (0 < yysize && yysize <= yymsg_alloc)
6664 <          {
6665 <            (void) yysyntax_error (yymsg, yystate, yychar);
6666 <            yyerror (yymsg);
6667 <          }
6668 <        else
6669 <          {
8663 <            yyerror (YY_("syntax error"));
8664 <            if (yysize != 0)
8665 <              goto yyexhaustedlab;
8666 <          }
6645 >        char const *yymsgp = YY_("syntax error");
6646 >        int yysyntax_error_status;
6647 >        yysyntax_error_status = YYSYNTAX_ERROR;
6648 >        if (yysyntax_error_status == 0)
6649 >          yymsgp = yymsg;
6650 >        else if (yysyntax_error_status == 1)
6651 >          {
6652 >            if (yymsg != yymsgbuf)
6653 >              YYSTACK_FREE (yymsg);
6654 >            yymsg = (char *) YYSTACK_ALLOC (yymsg_alloc);
6655 >            if (!yymsg)
6656 >              {
6657 >                yymsg = yymsgbuf;
6658 >                yymsg_alloc = sizeof yymsgbuf;
6659 >                yysyntax_error_status = 2;
6660 >              }
6661 >            else
6662 >              {
6663 >                yysyntax_error_status = YYSYNTAX_ERROR;
6664 >                yymsgp = yymsg;
6665 >              }
6666 >          }
6667 >        yyerror (yymsgp);
6668 >        if (yysyntax_error_status == 2)
6669 >          goto yyexhaustedlab;
6670        }
6671 + # undef YYSYNTAX_ERROR
6672   #endif
6673      }
6674  
# Line 8723 | Line 6727 | yyerrlab1:
6727    for (;;)
6728      {
6729        yyn = yypact[yystate];
6730 <      if (yyn != YYPACT_NINF)
6730 >      if (!yypact_value_is_default (yyn))
6731          {
6732            yyn += YYTERROR;
6733            if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYTERROR)
# Line 8746 | Line 6750 | yyerrlab1:
6750        YY_STACK_PRINT (yyss, yyssp);
6751      }
6752  
6753 +  YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
6754    *++yyvsp = yylval;
6755 +  YY_IGNORE_MAYBE_UNINITIALIZED_END
6756  
6757  
6758    /* Shift the error token.  */
# Line 8770 | Line 6776 | yyabortlab:
6776    yyresult = 1;
6777    goto yyreturn;
6778  
6779 < #if !defined(yyoverflow) || YYERROR_VERBOSE
6779 > #if !defined yyoverflow || YYERROR_VERBOSE
6780   /*-------------------------------------------------.
6781   | yyexhaustedlab -- memory exhaustion comes here.  |
6782   `-------------------------------------------------*/
# Line 8782 | Line 6788 | yyexhaustedlab:
6788  
6789   yyreturn:
6790    if (yychar != YYEMPTY)
6791 <     yydestruct ("Cleanup: discarding lookahead",
6792 <                 yytoken, &yylval);
6791 >    {
6792 >      /* Make sure we have latest lookahead translation.  See comments at
6793 >         user semantic actions for why this is necessary.  */
6794 >      yytoken = YYTRANSLATE (yychar);
6795 >      yydestruct ("Cleanup: discarding lookahead",
6796 >                  yytoken, &yylval);
6797 >    }
6798    /* Do not reclaim the symbols of the rule which action triggered
6799       this YYABORT or YYACCEPT.  */
6800    YYPOPSTACK (yylen);
# Line 8807 | Line 6818 | yyreturn:
6818   }
6819  
6820  
8810

Diff Legend

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