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 1009 by michael, Sun Sep 13 15:02:30 2009 UTC vs.
ircd-hybrid/trunk/src/conf_parser.c (file contents), Revision 2185 by michael, Tue Jun 4 12:29:18 2013 UTC

# Line 1 | Line 1
1 + /* A Bison parser, made by GNU Bison 2.7.12-4996.  */
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-2013 Free Software Foundation, Inc.
6    
7     This program is free software: you can redistribute it and/or modify
8     it under the terms of the GNU General Public License as published by
# Line 46 | Line 44
44   #define YYBISON 1
45  
46   /* Bison version.  */
47 < #define YYBISON_VERSION "2.4.1"
47 > #define YYBISON_VERSION "2.7.12-4996"
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 371 of yacc.c  */
66 > #line 25 "conf_parser.y"
67  
68  
69   #define YY_NO_UNPUT
# Line 76 | Line 71
71   #include <string.h>
72  
73   #include "config.h"
79 #ifdef HAVE_LIBPCRE
80 #include <pcre.h>
81 #endif
74   #include "stdinc.h"
75   #include "ircd.h"
84 #include "tools.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"
91 #include "irc_getaddrinfo.h"
92 #include "sprintf_irc.h"
83   #include "memory.h"
84   #include "modules.h"
85   #include "s_serv.h"
# Line 99 | Line 89
89   #include "resv.h"
90   #include "numeric.h"
91   #include "s_user.h"
92 + #include "motd.h"
93  
94   #ifdef HAVE_LIBCRYPTO
95   #include <openssl/rsa.h>
96   #include <openssl/bio.h>
97   #include <openssl/pem.h>
98 + #include <openssl/dh.h>
99   #endif
100  
101 < static char *class_name = NULL;
110 < static struct ConfItem *yy_conf = NULL;
111 < static struct AccessItem *yy_aconf = NULL;
112 < static struct MatchItem *yy_match_item = NULL;
113 < static struct ClassItem *yy_class = NULL;
114 < static char *yy_class_name = NULL;
115 <
116 < static dlink_list col_conf_list  = { NULL, NULL, 0 };
117 < static dlink_list hub_conf_list  = { NULL, NULL, 0 };
118 < static dlink_list leaf_conf_list = { NULL, NULL, 0 };
119 < static unsigned int listener_flags = 0;
120 < static unsigned int regex_ban = 0;
121 < static char userbuf[IRCD_BUFSIZE];
122 < static char hostbuf[IRCD_BUFSIZE];
123 < static char reasonbuf[REASONLEN + 1];
124 < static char gecos_name[REALLEN * 4];
125 <
126 < extern dlink_list gdeny_items; /* XXX */
127 <
128 < static char *resv_reason = NULL;
129 < static char *listener_address = NULL;
130 < static int not_atom = 0;
101 > #include "rsa.h"
102  
103 < struct CollectItem
133 < {
134 <  dlink_node node;
135 <  char *name;
136 <  char *user;
137 <  char *host;
138 <  char *passwd;
139 <  int  port;
140 <  int  flags;
141 < #ifdef HAVE_LIBCRYPTO
142 <  char *rsa_public_key_file;
143 <  RSA *rsa_public_key;
144 < #endif
145 < };
103 > int yylex(void);
104  
105 < static void
148 < free_collect_item(struct CollectItem *item)
105 > static struct
106   {
107 <  MyFree(item->name);
108 <  MyFree(item->user);
109 <  MyFree(item->host);
110 <  MyFree(item->passwd);
111 < #ifdef HAVE_LIBCRYPTO
112 <  MyFree(item->rsa_public_key_file);
113 < #endif
114 <  MyFree(item);
115 < }
107 >  struct {
108 >    dlink_list list;
109 >  } mask,
110 >    leaf,
111 >    hub;
112 >
113 >  struct {
114 >    char buf[IRCD_BUFSIZE];
115 >  } name,
116 >    user,
117 >    host,
118 >    addr,
119 >    bind,
120 >    file,
121 >    ciph,
122 >    rpass,
123 >    spass,
124 >    class;
125 >
126 >  struct {
127 >    unsigned int value;
128 >  } flags,
129 >    modes,
130 >    size,
131 >    type,
132 >    port,
133 >    aftype,
134 >    ping_freq,
135 >    max_perip,
136 >    con_freq,
137 >    min_idle,
138 >    max_idle,
139 >    max_total,
140 >    max_global,
141 >    max_local,
142 >    max_ident,
143 >    max_sendq,
144 >    max_recvq,
145 >    cidr_bitlen_ipv4,
146 >    cidr_bitlen_ipv6,
147 >    number_per_cidr;
148 > } block_state;
149  
150   static void
151 < unhook_hub_leaf_confs(void)
151 > reset_block_state(void)
152   {
153 <  dlink_node *ptr;
164 <  dlink_node *next_ptr;
165 <  struct CollectItem *yy_hconf;
166 <  struct CollectItem *yy_lconf;
153 >  dlink_node *ptr = NULL, *ptr_next = NULL;
154  
155 <  DLINK_FOREACH_SAFE(ptr, next_ptr, hub_conf_list.head)
155 >  DLINK_FOREACH_SAFE(ptr, ptr_next, block_state.mask.list.head)
156    {
157 <    yy_hconf = ptr->data;
158 <    dlinkDelete(&yy_hconf->node, &hub_conf_list);
159 <    free_collect_item(yy_hconf);
157 >    MyFree(ptr->data);
158 >    dlinkDelete(ptr, &block_state.mask.list);
159 >    free_dlink_node(ptr);
160    }
161  
162 <  DLINK_FOREACH_SAFE(ptr, next_ptr, leaf_conf_list.head)
162 >  DLINK_FOREACH_SAFE(ptr, ptr_next, block_state.leaf.list.head)
163    {
164 <    yy_lconf = ptr->data;
165 <    dlinkDelete(&yy_lconf->node, &leaf_conf_list);
166 <    free_collect_item(yy_lconf);
164 >    MyFree(ptr->data);
165 >    dlinkDelete(ptr, &block_state.leaf.list);
166 >    free_dlink_node(ptr);
167    }
181 }
168  
169 +  DLINK_FOREACH_SAFE(ptr, ptr_next, block_state.hub.list.head)
170 +  {
171 +    MyFree(ptr->data);
172 +    dlinkDelete(ptr, &block_state.hub.list);
173 +    free_dlink_node(ptr);
174 +  }
175  
176 +  memset(&block_state, 0, sizeof(block_state));
177 + }
178  
185 /* Line 189 of yacc.c  */
186 #line 187 "ircd_parser.c"
179  
180 < /* Enabling traces.  */
181 < #ifndef YYDEBUG
182 < # define YYDEBUG 0
183 < #endif
180 > /* Line 371 of yacc.c  */
181 > #line 182 "conf_parser.c"
182 >
183 > # ifndef YY_NULL
184 > #  if defined __cplusplus && 201103L <= __cplusplus
185 > #   define YY_NULL nullptr
186 > #  else
187 > #   define YY_NULL 0
188 > #  endif
189 > # endif
190  
191   /* Enabling verbose error messages.  */
192   #ifdef YYERROR_VERBOSE
# Line 198 | Line 196 | unhook_hub_leaf_confs(void)
196   # define YYERROR_VERBOSE 0
197   #endif
198  
199 < /* Enabling the token table.  */
200 < #ifndef YYTOKEN_TABLE
201 < # define YYTOKEN_TABLE 0
199 > /* In a future release of Bison, this section will be replaced
200 >   by #include "y.tab.h".  */
201 > #ifndef YY_YY_CONF_PARSER_H_INCLUDED
202 > # define YY_YY_CONF_PARSER_H_INCLUDED
203 > /* Enabling traces.  */
204 > #ifndef YYDEBUG
205 > # define YYDEBUG 0
206 > #endif
207 > #if YYDEBUG
208 > extern int yydebug;
209   #endif
205
210  
211   /* Tokens.  */
212   #ifndef YYTOKENTYPE
# Line 211 | Line 215 | unhook_hub_leaf_confs(void)
215        know about them.  */
216     enum yytokentype {
217       ACCEPT_PASSWORD = 258,
218 <     ACTION = 259,
219 <     ADMIN = 260,
220 <     AFTYPE = 261,
221 <     T_ALLOW = 262,
222 <     ANTI_NICK_FLOOD = 263,
223 <     ANTI_SPAM_EXIT_MESSAGE_TIME = 264,
224 <     AUTOCONN = 265,
225 <     T_BLOCK = 266,
226 <     BURST_AWAY = 267,
227 <     BURST_TOPICWHO = 268,
228 <     BYTES = 269,
229 <     KBYTES = 270,
230 <     MBYTES = 271,
231 <     GBYTES = 272,
232 <     TBYTES = 273,
233 <     CALLER_ID_WAIT = 274,
234 <     CAN_FLOOD = 275,
235 <     CAN_IDLE = 276,
236 <     CHANNEL = 277,
237 <     CIDR_BITLEN_IPV4 = 278,
238 <     CIDR_BITLEN_IPV6 = 279,
239 <     CIPHER_PREFERENCE = 280,
240 <     CLASS = 281,
241 <     COMPRESSED = 282,
242 <     COMPRESSION_LEVEL = 283,
243 <     CONNECT = 284,
244 <     CONNECTFREQ = 285,
245 <     CRYPTLINK = 286,
246 <     DEFAULT_CIPHER_PREFERENCE = 287,
247 <     DEFAULT_FLOODCOUNT = 288,
248 <     DEFAULT_SPLIT_SERVER_COUNT = 289,
249 <     DEFAULT_SPLIT_USER_COUNT = 290,
250 <     DENY = 291,
251 <     DESCRIPTION = 292,
252 <     DIE = 293,
253 <     DISABLE_AUTH = 294,
254 <     DISABLE_FAKE_CHANNELS = 295,
255 <     DISABLE_HIDDEN = 296,
256 <     DISABLE_LOCAL_CHANNELS = 297,
257 <     DISABLE_REMOTE_COMMANDS = 298,
258 <     DOT_IN_IP6_ADDR = 299,
259 <     DOTS_IN_IDENT = 300,
260 <     DURATION = 301,
261 <     EGDPOOL_PATH = 302,
262 <     EMAIL = 303,
263 <     ENABLE = 304,
264 <     ENCRYPTED = 305,
265 <     EXCEED_LIMIT = 306,
266 <     EXEMPT = 307,
267 <     FAILED_OPER_NOTICE = 308,
268 <     FAKENAME = 309,
269 <     IRCD_FLAGS = 310,
270 <     FLATTEN_LINKS = 311,
271 <     FFAILED_OPERLOG = 312,
272 <     FKILLLOG = 313,
273 <     FKLINELOG = 314,
274 <     FGLINELOG = 315,
275 <     FIOERRLOG = 316,
276 <     FOPERLOG = 317,
277 <     FOPERSPYLOG = 318,
278 <     FUSERLOG = 319,
279 <     GECOS = 320,
280 <     GENERAL = 321,
281 <     GLINE = 322,
282 <     GLINES = 323,
283 <     GLINE_EXEMPT = 324,
284 <     GLINE_LOG = 325,
285 <     GLINE_TIME = 326,
286 <     GLINE_MIN_CIDR = 327,
287 <     GLINE_MIN_CIDR6 = 328,
288 <     GLOBAL_KILL = 329,
289 <     IRCD_AUTH = 330,
290 <     NEED_IDENT = 331,
291 <     HAVENT_READ_CONF = 332,
292 <     HIDDEN = 333,
293 <     HIDDEN_ADMIN = 334,
294 <     HIDDEN_NAME = 335,
295 <     HIDDEN_OPER = 336,
296 <     HIDE_SERVER_IPS = 337,
297 <     HIDE_SERVERS = 338,
298 <     HIDE_SPOOF_IPS = 339,
299 <     HOST = 340,
300 <     HUB = 341,
301 <     HUB_MASK = 342,
302 <     IDLETIME = 343,
303 <     IGNORE_BOGUS_TS = 344,
304 <     INVISIBLE_ON_CONNECT = 345,
305 <     IP = 346,
306 <     KILL = 347,
307 <     KILL_CHASE_TIME_LIMIT = 348,
308 <     KLINE = 349,
309 <     KLINE_EXEMPT = 350,
310 <     KLINE_REASON = 351,
311 <     KLINE_WITH_REASON = 352,
312 <     KNOCK_DELAY = 353,
313 <     KNOCK_DELAY_CHANNEL = 354,
314 <     LEAF_MASK = 355,
315 <     LINKS_DELAY = 356,
316 <     LISTEN = 357,
317 <     T_LOG = 358,
318 <     LOGGING = 359,
319 <     LOG_LEVEL = 360,
320 <     MAX_ACCEPT = 361,
321 <     MAX_BANS = 362,
322 <     MAX_CHANS_PER_USER = 363,
323 <     MAX_GLOBAL = 364,
324 <     MAX_IDENT = 365,
325 <     MAX_LOCAL = 366,
326 <     MAX_NICK_CHANGES = 367,
327 <     MAX_NICK_TIME = 368,
328 <     MAX_NUMBER = 369,
329 <     MAX_TARGETS = 370,
330 <     MAX_WATCH = 371,
331 <     MESSAGE_LOCALE = 372,
332 <     MIN_NONWILDCARD = 373,
333 <     MIN_NONWILDCARD_SIMPLE = 374,
334 <     MODULE = 375,
335 <     MODULES = 376,
336 <     NAME = 377,
337 <     NEED_PASSWORD = 378,
338 <     NETWORK_DESC = 379,
339 <     NETWORK_NAME = 380,
340 <     NICK = 381,
341 <     NICK_CHANGES = 382,
342 <     NO_CREATE_ON_SPLIT = 383,
343 <     NO_JOIN_ON_SPLIT = 384,
344 <     NO_OPER_FLOOD = 385,
345 <     NO_TILDE = 386,
346 <     NOT = 387,
347 <     NUMBER = 388,
348 <     NUMBER_PER_IDENT = 389,
349 <     NUMBER_PER_CIDR = 390,
350 <     NUMBER_PER_IP = 391,
351 <     NUMBER_PER_IP_GLOBAL = 392,
352 <     OPERATOR = 393,
353 <     OPERS_BYPASS_CALLERID = 394,
354 <     OPER_LOG = 395,
355 <     OPER_ONLY_UMODES = 396,
356 <     OPER_PASS_RESV = 397,
357 <     OPER_SPY_T = 398,
358 <     OPER_UMODES = 399,
359 <     JOIN_FLOOD_COUNT = 400,
360 <     JOIN_FLOOD_TIME = 401,
361 <     PACE_WAIT = 402,
362 <     PACE_WAIT_SIMPLE = 403,
363 <     PASSWORD = 404,
364 <     PATH = 405,
365 <     PING_COOKIE = 406,
366 <     PING_TIME = 407,
367 <     PING_WARNING = 408,
368 <     PORT = 409,
369 <     QSTRING = 410,
370 <     QUIET_ON_BAN = 411,
371 <     REASON = 412,
372 <     REDIRPORT = 413,
373 <     REDIRSERV = 414,
374 <     REGEX_T = 415,
375 <     REHASH = 416,
376 <     TREJECT_HOLD_TIME = 417,
377 <     REMOTE = 418,
378 <     REMOTEBAN = 419,
379 <     RESTRICT_CHANNELS = 420,
380 <     RESTRICTED = 421,
381 <     RSA_PRIVATE_KEY_FILE = 422,
382 <     RSA_PUBLIC_KEY_FILE = 423,
383 <     SSL_CERTIFICATE_FILE = 424,
384 <     T_SSL_CONNECTION_METHOD = 425,
385 <     T_SSLV3 = 426,
386 <     T_TLSV1 = 427,
387 <     RESV = 428,
388 <     RESV_EXEMPT = 429,
389 <     SECONDS = 430,
390 <     MINUTES = 431,
391 <     HOURS = 432,
392 <     DAYS = 433,
393 <     WEEKS = 434,
394 <     SENDQ = 435,
395 <     SEND_PASSWORD = 436,
396 <     SERVERHIDE = 437,
397 <     SERVERINFO = 438,
398 <     SERVLINK_PATH = 439,
399 <     IRCD_SID = 440,
400 <     TKLINE_EXPIRE_NOTICES = 441,
401 <     T_SHARED = 442,
402 <     T_CLUSTER = 443,
403 <     TYPE = 444,
404 <     SHORT_MOTD = 445,
405 <     SILENT = 446,
406 <     SPOOF = 447,
407 <     SPOOF_NOTICE = 448,
408 <     STATS_E_DISABLED = 449,
409 <     STATS_I_OPER_ONLY = 450,
410 <     STATS_K_OPER_ONLY = 451,
411 <     STATS_O_OPER_ONLY = 452,
412 <     STATS_P_OPER_ONLY = 453,
413 <     TBOOL = 454,
414 <     TMASKED = 455,
415 <     T_REJECT = 456,
416 <     TS_MAX_DELTA = 457,
417 <     TS_WARN_DELTA = 458,
418 <     TWODOTS = 459,
419 <     T_ALL = 460,
420 <     T_BOTS = 461,
421 <     T_SOFTCALLERID = 462,
422 <     T_CALLERID = 463,
423 <     T_CCONN = 464,
424 <     T_CCONN_FULL = 465,
425 <     T_CLIENT_FLOOD = 466,
426 <     T_DEAF = 467,
427 <     T_DEBUG = 468,
428 <     T_DRONE = 469,
429 <     T_EXTERNAL = 470,
430 <     T_FULL = 471,
431 <     T_INVISIBLE = 472,
432 <     T_IPV4 = 473,
433 <     T_IPV6 = 474,
434 <     T_LOCOPS = 475,
435 <     T_LOGPATH = 476,
436 <     T_L_CRIT = 477,
433 <     T_L_DEBUG = 478,
434 <     T_L_ERROR = 479,
435 <     T_L_INFO = 480,
436 <     T_L_NOTICE = 481,
437 <     T_L_TRACE = 482,
438 <     T_L_WARN = 483,
439 <     T_MAX_CLIENTS = 484,
440 <     T_NCHANGE = 485,
441 <     T_OPERWALL = 486,
442 <     T_REJ = 487,
443 <     T_SERVER = 488,
444 <     T_SERVNOTICE = 489,
445 <     T_SKILL = 490,
446 <     T_SPY = 491,
447 <     T_SSL = 492,
448 <     T_UMODES = 493,
449 <     T_UNAUTH = 494,
450 <     T_UNRESV = 495,
451 <     T_UNXLINE = 496,
452 <     T_WALLOP = 497,
453 <     THROTTLE_TIME = 498,
454 <     TOPICBURST = 499,
455 <     TRUE_NO_OPER_FLOOD = 500,
456 <     TKLINE = 501,
457 <     TXLINE = 502,
458 <     TRESV = 503,
459 <     UNKLINE = 504,
460 <     USER = 505,
461 <     USE_EGD = 506,
462 <     USE_EXCEPT = 507,
463 <     USE_INVEX = 508,
464 <     USE_KNOCK = 509,
465 <     USE_LOGGING = 510,
466 <     USE_WHOIS_ACTUALLY = 511,
467 <     VHOST = 512,
468 <     VHOST6 = 513,
469 <     XLINE = 514,
470 <     WARN = 515,
471 <     WARN_NO_NLINE = 516
218 >     ADMIN = 259,
219 >     AFTYPE = 260,
220 >     ANTI_NICK_FLOOD = 261,
221 >     ANTI_SPAM_EXIT_MESSAGE_TIME = 262,
222 >     AUTOCONN = 263,
223 >     BYTES = 264,
224 >     KBYTES = 265,
225 >     MBYTES = 266,
226 >     CALLER_ID_WAIT = 267,
227 >     CAN_FLOOD = 268,
228 >     CHANNEL = 269,
229 >     CIDR_BITLEN_IPV4 = 270,
230 >     CIDR_BITLEN_IPV6 = 271,
231 >     CLASS = 272,
232 >     CONNECT = 273,
233 >     CONNECTFREQ = 274,
234 >     DEFAULT_FLOODCOUNT = 275,
235 >     DEFAULT_SPLIT_SERVER_COUNT = 276,
236 >     DEFAULT_SPLIT_USER_COUNT = 277,
237 >     DENY = 278,
238 >     DESCRIPTION = 279,
239 >     DIE = 280,
240 >     DISABLE_AUTH = 281,
241 >     DISABLE_FAKE_CHANNELS = 282,
242 >     DISABLE_REMOTE_COMMANDS = 283,
243 >     DOTS_IN_IDENT = 284,
244 >     EGDPOOL_PATH = 285,
245 >     EMAIL = 286,
246 >     ENCRYPTED = 287,
247 >     EXCEED_LIMIT = 288,
248 >     EXEMPT = 289,
249 >     FAILED_OPER_NOTICE = 290,
250 >     FLATTEN_LINKS = 291,
251 >     GECOS = 292,
252 >     GENERAL = 293,
253 >     GLINE = 294,
254 >     GLINE_DURATION = 295,
255 >     GLINE_ENABLE = 296,
256 >     GLINE_EXEMPT = 297,
257 >     GLINE_MIN_CIDR = 298,
258 >     GLINE_MIN_CIDR6 = 299,
259 >     GLINE_REQUEST_DURATION = 300,
260 >     GLOBAL_KILL = 301,
261 >     HAVENT_READ_CONF = 302,
262 >     HIDDEN = 303,
263 >     HIDDEN_NAME = 304,
264 >     HIDE_IDLE_FROM_OPERS = 305,
265 >     HIDE_SERVER_IPS = 306,
266 >     HIDE_SERVERS = 307,
267 >     HIDE_SERVICES = 308,
268 >     HIDE_SPOOF_IPS = 309,
269 >     HOST = 310,
270 >     HUB = 311,
271 >     HUB_MASK = 312,
272 >     IGNORE_BOGUS_TS = 313,
273 >     INVISIBLE_ON_CONNECT = 314,
274 >     IP = 315,
275 >     IRCD_AUTH = 316,
276 >     IRCD_FLAGS = 317,
277 >     IRCD_SID = 318,
278 >     JOIN_FLOOD_COUNT = 319,
279 >     JOIN_FLOOD_TIME = 320,
280 >     KILL = 321,
281 >     KILL_CHASE_TIME_LIMIT = 322,
282 >     KLINE = 323,
283 >     KLINE_EXEMPT = 324,
284 >     KNOCK_DELAY = 325,
285 >     KNOCK_DELAY_CHANNEL = 326,
286 >     LEAF_MASK = 327,
287 >     LINKS_DELAY = 328,
288 >     LISTEN = 329,
289 >     MASK = 330,
290 >     MAX_ACCEPT = 331,
291 >     MAX_BANS = 332,
292 >     MAX_CHANS_PER_OPER = 333,
293 >     MAX_CHANS_PER_USER = 334,
294 >     MAX_GLOBAL = 335,
295 >     MAX_IDENT = 336,
296 >     MAX_IDLE = 337,
297 >     MAX_LOCAL = 338,
298 >     MAX_NICK_CHANGES = 339,
299 >     MAX_NICK_LENGTH = 340,
300 >     MAX_NICK_TIME = 341,
301 >     MAX_NUMBER = 342,
302 >     MAX_TARGETS = 343,
303 >     MAX_TOPIC_LENGTH = 344,
304 >     MAX_WATCH = 345,
305 >     MIN_IDLE = 346,
306 >     MIN_NONWILDCARD = 347,
307 >     MIN_NONWILDCARD_SIMPLE = 348,
308 >     MODULE = 349,
309 >     MODULES = 350,
310 >     MOTD = 351,
311 >     NAME = 352,
312 >     NEED_IDENT = 353,
313 >     NEED_PASSWORD = 354,
314 >     NETWORK_DESC = 355,
315 >     NETWORK_NAME = 356,
316 >     NICK = 357,
317 >     NO_CREATE_ON_SPLIT = 358,
318 >     NO_JOIN_ON_SPLIT = 359,
319 >     NO_OPER_FLOOD = 360,
320 >     NO_TILDE = 361,
321 >     NUMBER = 362,
322 >     NUMBER_PER_CIDR = 363,
323 >     NUMBER_PER_IP = 364,
324 >     OPER_ONLY_UMODES = 365,
325 >     OPER_PASS_RESV = 366,
326 >     OPER_UMODES = 367,
327 >     OPERATOR = 368,
328 >     OPERS_BYPASS_CALLERID = 369,
329 >     PACE_WAIT = 370,
330 >     PACE_WAIT_SIMPLE = 371,
331 >     PASSWORD = 372,
332 >     PATH = 373,
333 >     PING_COOKIE = 374,
334 >     PING_TIME = 375,
335 >     PORT = 376,
336 >     QSTRING = 377,
337 >     RANDOM_IDLE = 378,
338 >     REASON = 379,
339 >     REDIRPORT = 380,
340 >     REDIRSERV = 381,
341 >     REHASH = 382,
342 >     REMOTE = 383,
343 >     REMOTEBAN = 384,
344 >     RESV = 385,
345 >     RESV_EXEMPT = 386,
346 >     RSA_PRIVATE_KEY_FILE = 387,
347 >     RSA_PUBLIC_KEY_FILE = 388,
348 >     SECONDS = 389,
349 >     MINUTES = 390,
350 >     HOURS = 391,
351 >     DAYS = 392,
352 >     WEEKS = 393,
353 >     MONTHS = 394,
354 >     YEARS = 395,
355 >     SEND_PASSWORD = 396,
356 >     SENDQ = 397,
357 >     SERVERHIDE = 398,
358 >     SERVERINFO = 399,
359 >     SHORT_MOTD = 400,
360 >     SPOOF = 401,
361 >     SPOOF_NOTICE = 402,
362 >     SQUIT = 403,
363 >     SSL_CERTIFICATE_FILE = 404,
364 >     SSL_DH_PARAM_FILE = 405,
365 >     STATS_E_DISABLED = 406,
366 >     STATS_I_OPER_ONLY = 407,
367 >     STATS_K_OPER_ONLY = 408,
368 >     STATS_O_OPER_ONLY = 409,
369 >     STATS_P_OPER_ONLY = 410,
370 >     T_ALL = 411,
371 >     T_BOTS = 412,
372 >     T_CALLERID = 413,
373 >     T_CCONN = 414,
374 >     T_CLUSTER = 415,
375 >     T_DEAF = 416,
376 >     T_DEBUG = 417,
377 >     T_DLINE = 418,
378 >     T_EXTERNAL = 419,
379 >     T_FARCONNECT = 420,
380 >     T_FILE = 421,
381 >     T_FULL = 422,
382 >     T_GLOBOPS = 423,
383 >     T_INVISIBLE = 424,
384 >     T_IPV4 = 425,
385 >     T_IPV6 = 426,
386 >     T_LOCOPS = 427,
387 >     T_LOG = 428,
388 >     T_MAX_CLIENTS = 429,
389 >     T_NCHANGE = 430,
390 >     T_NONONREG = 431,
391 >     T_OPERWALL = 432,
392 >     T_RECVQ = 433,
393 >     T_REJ = 434,
394 >     T_RESTART = 435,
395 >     T_SERVER = 436,
396 >     T_SERVICE = 437,
397 >     T_SERVICES_NAME = 438,
398 >     T_SERVNOTICE = 439,
399 >     T_SET = 440,
400 >     T_SHARED = 441,
401 >     T_SIZE = 442,
402 >     T_SKILL = 443,
403 >     T_SOFTCALLERID = 444,
404 >     T_SPY = 445,
405 >     T_SSL = 446,
406 >     T_SSL_CIPHER_LIST = 447,
407 >     T_SSL_CLIENT_METHOD = 448,
408 >     T_SSL_SERVER_METHOD = 449,
409 >     T_SSLV3 = 450,
410 >     T_TLSV1 = 451,
411 >     T_UMODES = 452,
412 >     T_UNAUTH = 453,
413 >     T_UNDLINE = 454,
414 >     T_UNLIMITED = 455,
415 >     T_UNRESV = 456,
416 >     T_UNXLINE = 457,
417 >     T_WALLOP = 458,
418 >     T_WALLOPS = 459,
419 >     T_WEBIRC = 460,
420 >     TBOOL = 461,
421 >     THROTTLE_TIME = 462,
422 >     TKLINE_EXPIRE_NOTICES = 463,
423 >     TMASKED = 464,
424 >     TRUE_NO_OPER_FLOOD = 465,
425 >     TS_MAX_DELTA = 466,
426 >     TS_WARN_DELTA = 467,
427 >     TWODOTS = 468,
428 >     TYPE = 469,
429 >     UNKLINE = 470,
430 >     USE_EGD = 471,
431 >     USE_LOGGING = 472,
432 >     USER = 473,
433 >     VHOST = 474,
434 >     VHOST6 = 475,
435 >     WARN_NO_NLINE = 476,
436 >     XLINE = 477
437     };
438   #endif
439   /* Tokens.  */
440   #define ACCEPT_PASSWORD 258
441 < #define ACTION 259
442 < #define ADMIN 260
443 < #define AFTYPE 261
444 < #define T_ALLOW 262
445 < #define ANTI_NICK_FLOOD 263
446 < #define ANTI_SPAM_EXIT_MESSAGE_TIME 264
447 < #define AUTOCONN 265
448 < #define T_BLOCK 266
449 < #define BURST_AWAY 267
450 < #define BURST_TOPICWHO 268
451 < #define BYTES 269
452 < #define KBYTES 270
453 < #define MBYTES 271
454 < #define GBYTES 272
455 < #define TBYTES 273
456 < #define CALLER_ID_WAIT 274
457 < #define CAN_FLOOD 275
458 < #define CAN_IDLE 276
459 < #define CHANNEL 277
460 < #define CIDR_BITLEN_IPV4 278
461 < #define CIDR_BITLEN_IPV6 279
462 < #define CIPHER_PREFERENCE 280
463 < #define CLASS 281
464 < #define COMPRESSED 282
465 < #define COMPRESSION_LEVEL 283
466 < #define CONNECT 284
467 < #define CONNECTFREQ 285
468 < #define CRYPTLINK 286
469 < #define DEFAULT_CIPHER_PREFERENCE 287
470 < #define DEFAULT_FLOODCOUNT 288
471 < #define DEFAULT_SPLIT_SERVER_COUNT 289
472 < #define DEFAULT_SPLIT_USER_COUNT 290
473 < #define DENY 291
474 < #define DESCRIPTION 292
475 < #define DIE 293
476 < #define DISABLE_AUTH 294
477 < #define DISABLE_FAKE_CHANNELS 295
478 < #define DISABLE_HIDDEN 296
479 < #define DISABLE_LOCAL_CHANNELS 297
480 < #define DISABLE_REMOTE_COMMANDS 298
481 < #define DOT_IN_IP6_ADDR 299
482 < #define DOTS_IN_IDENT 300
483 < #define DURATION 301
484 < #define EGDPOOL_PATH 302
485 < #define EMAIL 303
486 < #define ENABLE 304
487 < #define ENCRYPTED 305
488 < #define EXCEED_LIMIT 306
489 < #define EXEMPT 307
490 < #define FAILED_OPER_NOTICE 308
491 < #define FAKENAME 309
492 < #define IRCD_FLAGS 310
493 < #define FLATTEN_LINKS 311
494 < #define FFAILED_OPERLOG 312
495 < #define FKILLLOG 313
496 < #define FKLINELOG 314
497 < #define FGLINELOG 315
498 < #define FIOERRLOG 316
499 < #define FOPERLOG 317
500 < #define FOPERSPYLOG 318
501 < #define FUSERLOG 319
502 < #define GECOS 320
503 < #define GENERAL 321
504 < #define GLINE 322
505 < #define GLINES 323
506 < #define GLINE_EXEMPT 324
507 < #define GLINE_LOG 325
508 < #define GLINE_TIME 326
509 < #define GLINE_MIN_CIDR 327
510 < #define GLINE_MIN_CIDR6 328
511 < #define GLOBAL_KILL 329
512 < #define IRCD_AUTH 330
513 < #define NEED_IDENT 331
514 < #define HAVENT_READ_CONF 332
515 < #define HIDDEN 333
516 < #define HIDDEN_ADMIN 334
517 < #define HIDDEN_NAME 335
518 < #define HIDDEN_OPER 336
519 < #define HIDE_SERVER_IPS 337
520 < #define HIDE_SERVERS 338
521 < #define HIDE_SPOOF_IPS 339
522 < #define HOST 340
523 < #define HUB 341
524 < #define HUB_MASK 342
525 < #define IDLETIME 343
526 < #define IGNORE_BOGUS_TS 344
527 < #define INVISIBLE_ON_CONNECT 345
528 < #define IP 346
529 < #define KILL 347
530 < #define KILL_CHASE_TIME_LIMIT 348
531 < #define KLINE 349
532 < #define KLINE_EXEMPT 350
533 < #define KLINE_REASON 351
534 < #define KLINE_WITH_REASON 352
535 < #define KNOCK_DELAY 353
536 < #define KNOCK_DELAY_CHANNEL 354
537 < #define LEAF_MASK 355
538 < #define LINKS_DELAY 356
539 < #define LISTEN 357
540 < #define T_LOG 358
541 < #define LOGGING 359
542 < #define LOG_LEVEL 360
543 < #define MAX_ACCEPT 361
544 < #define MAX_BANS 362
545 < #define MAX_CHANS_PER_USER 363
546 < #define MAX_GLOBAL 364
547 < #define MAX_IDENT 365
548 < #define MAX_LOCAL 366
549 < #define MAX_NICK_CHANGES 367
550 < #define MAX_NICK_TIME 368
551 < #define MAX_NUMBER 369
552 < #define MAX_TARGETS 370
553 < #define MAX_WATCH 371
554 < #define MESSAGE_LOCALE 372
555 < #define MIN_NONWILDCARD 373
556 < #define MIN_NONWILDCARD_SIMPLE 374
557 < #define MODULE 375
558 < #define MODULES 376
559 < #define NAME 377
560 < #define NEED_PASSWORD 378
561 < #define NETWORK_DESC 379
562 < #define NETWORK_NAME 380
563 < #define NICK 381
564 < #define NICK_CHANGES 382
565 < #define NO_CREATE_ON_SPLIT 383
566 < #define NO_JOIN_ON_SPLIT 384
567 < #define NO_OPER_FLOOD 385
568 < #define NO_TILDE 386
569 < #define NOT 387
570 < #define NUMBER 388
571 < #define NUMBER_PER_IDENT 389
572 < #define NUMBER_PER_CIDR 390
573 < #define NUMBER_PER_IP 391
574 < #define NUMBER_PER_IP_GLOBAL 392
575 < #define OPERATOR 393
576 < #define OPERS_BYPASS_CALLERID 394
577 < #define OPER_LOG 395
578 < #define OPER_ONLY_UMODES 396
579 < #define OPER_PASS_RESV 397
580 < #define OPER_SPY_T 398
581 < #define OPER_UMODES 399
582 < #define JOIN_FLOOD_COUNT 400
583 < #define JOIN_FLOOD_TIME 401
584 < #define PACE_WAIT 402
585 < #define PACE_WAIT_SIMPLE 403
586 < #define PASSWORD 404
587 < #define PATH 405
588 < #define PING_COOKIE 406
589 < #define PING_TIME 407
590 < #define PING_WARNING 408
591 < #define PORT 409
592 < #define QSTRING 410
593 < #define QUIET_ON_BAN 411
594 < #define REASON 412
595 < #define REDIRPORT 413
596 < #define REDIRSERV 414
597 < #define REGEX_T 415
598 < #define REHASH 416
599 < #define TREJECT_HOLD_TIME 417
600 < #define REMOTE 418
601 < #define REMOTEBAN 419
602 < #define RESTRICT_CHANNELS 420
603 < #define RESTRICTED 421
604 < #define RSA_PRIVATE_KEY_FILE 422
605 < #define RSA_PUBLIC_KEY_FILE 423
606 < #define SSL_CERTIFICATE_FILE 424
607 < #define T_SSL_CONNECTION_METHOD 425
608 < #define T_SSLV3 426
609 < #define T_TLSV1 427
610 < #define RESV 428
611 < #define RESV_EXEMPT 429
612 < #define SECONDS 430
613 < #define MINUTES 431
614 < #define HOURS 432
615 < #define DAYS 433
616 < #define WEEKS 434
617 < #define SENDQ 435
618 < #define SEND_PASSWORD 436
619 < #define SERVERHIDE 437
620 < #define SERVERINFO 438
621 < #define SERVLINK_PATH 439
622 < #define IRCD_SID 440
623 < #define TKLINE_EXPIRE_NOTICES 441
624 < #define T_SHARED 442
625 < #define T_CLUSTER 443
626 < #define TYPE 444
627 < #define SHORT_MOTD 445
628 < #define SILENT 446
629 < #define SPOOF 447
630 < #define SPOOF_NOTICE 448
631 < #define STATS_E_DISABLED 449
632 < #define STATS_I_OPER_ONLY 450
633 < #define STATS_K_OPER_ONLY 451
634 < #define STATS_O_OPER_ONLY 452
635 < #define STATS_P_OPER_ONLY 453
636 < #define TBOOL 454
637 < #define TMASKED 455
638 < #define T_REJECT 456
639 < #define TS_MAX_DELTA 457
640 < #define TS_WARN_DELTA 458
641 < #define TWODOTS 459
642 < #define T_ALL 460
643 < #define T_BOTS 461
644 < #define T_SOFTCALLERID 462
645 < #define T_CALLERID 463
646 < #define T_CCONN 464
647 < #define T_CCONN_FULL 465
648 < #define T_CLIENT_FLOOD 466
649 < #define T_DEAF 467
650 < #define T_DEBUG 468
651 < #define T_DRONE 469
652 < #define T_EXTERNAL 470
653 < #define T_FULL 471
654 < #define T_INVISIBLE 472
655 < #define T_IPV4 473
656 < #define T_IPV6 474
657 < #define T_LOCOPS 475
658 < #define T_LOGPATH 476
659 < #define T_L_CRIT 477
695 < #define T_L_DEBUG 478
696 < #define T_L_ERROR 479
697 < #define T_L_INFO 480
698 < #define T_L_NOTICE 481
699 < #define T_L_TRACE 482
700 < #define T_L_WARN 483
701 < #define T_MAX_CLIENTS 484
702 < #define T_NCHANGE 485
703 < #define T_OPERWALL 486
704 < #define T_REJ 487
705 < #define T_SERVER 488
706 < #define T_SERVNOTICE 489
707 < #define T_SKILL 490
708 < #define T_SPY 491
709 < #define T_SSL 492
710 < #define T_UMODES 493
711 < #define T_UNAUTH 494
712 < #define T_UNRESV 495
713 < #define T_UNXLINE 496
714 < #define T_WALLOP 497
715 < #define THROTTLE_TIME 498
716 < #define TOPICBURST 499
717 < #define TRUE_NO_OPER_FLOOD 500
718 < #define TKLINE 501
719 < #define TXLINE 502
720 < #define TRESV 503
721 < #define UNKLINE 504
722 < #define USER 505
723 < #define USE_EGD 506
724 < #define USE_EXCEPT 507
725 < #define USE_INVEX 508
726 < #define USE_KNOCK 509
727 < #define USE_LOGGING 510
728 < #define USE_WHOIS_ACTUALLY 511
729 < #define VHOST 512
730 < #define VHOST6 513
731 < #define XLINE 514
732 < #define WARN 515
733 < #define WARN_NO_NLINE 516
734 <
441 > #define ADMIN 259
442 > #define AFTYPE 260
443 > #define ANTI_NICK_FLOOD 261
444 > #define ANTI_SPAM_EXIT_MESSAGE_TIME 262
445 > #define AUTOCONN 263
446 > #define BYTES 264
447 > #define KBYTES 265
448 > #define MBYTES 266
449 > #define CALLER_ID_WAIT 267
450 > #define CAN_FLOOD 268
451 > #define CHANNEL 269
452 > #define CIDR_BITLEN_IPV4 270
453 > #define CIDR_BITLEN_IPV6 271
454 > #define CLASS 272
455 > #define CONNECT 273
456 > #define CONNECTFREQ 274
457 > #define DEFAULT_FLOODCOUNT 275
458 > #define DEFAULT_SPLIT_SERVER_COUNT 276
459 > #define DEFAULT_SPLIT_USER_COUNT 277
460 > #define DENY 278
461 > #define DESCRIPTION 279
462 > #define DIE 280
463 > #define DISABLE_AUTH 281
464 > #define DISABLE_FAKE_CHANNELS 282
465 > #define DISABLE_REMOTE_COMMANDS 283
466 > #define DOTS_IN_IDENT 284
467 > #define EGDPOOL_PATH 285
468 > #define EMAIL 286
469 > #define ENCRYPTED 287
470 > #define EXCEED_LIMIT 288
471 > #define EXEMPT 289
472 > #define FAILED_OPER_NOTICE 290
473 > #define FLATTEN_LINKS 291
474 > #define GECOS 292
475 > #define GENERAL 293
476 > #define GLINE 294
477 > #define GLINE_DURATION 295
478 > #define GLINE_ENABLE 296
479 > #define GLINE_EXEMPT 297
480 > #define GLINE_MIN_CIDR 298
481 > #define GLINE_MIN_CIDR6 299
482 > #define GLINE_REQUEST_DURATION 300
483 > #define GLOBAL_KILL 301
484 > #define HAVENT_READ_CONF 302
485 > #define HIDDEN 303
486 > #define HIDDEN_NAME 304
487 > #define HIDE_IDLE_FROM_OPERS 305
488 > #define HIDE_SERVER_IPS 306
489 > #define HIDE_SERVERS 307
490 > #define HIDE_SERVICES 308
491 > #define HIDE_SPOOF_IPS 309
492 > #define HOST 310
493 > #define HUB 311
494 > #define HUB_MASK 312
495 > #define IGNORE_BOGUS_TS 313
496 > #define INVISIBLE_ON_CONNECT 314
497 > #define IP 315
498 > #define IRCD_AUTH 316
499 > #define IRCD_FLAGS 317
500 > #define IRCD_SID 318
501 > #define JOIN_FLOOD_COUNT 319
502 > #define JOIN_FLOOD_TIME 320
503 > #define KILL 321
504 > #define KILL_CHASE_TIME_LIMIT 322
505 > #define KLINE 323
506 > #define KLINE_EXEMPT 324
507 > #define KNOCK_DELAY 325
508 > #define KNOCK_DELAY_CHANNEL 326
509 > #define LEAF_MASK 327
510 > #define LINKS_DELAY 328
511 > #define LISTEN 329
512 > #define MASK 330
513 > #define MAX_ACCEPT 331
514 > #define MAX_BANS 332
515 > #define MAX_CHANS_PER_OPER 333
516 > #define MAX_CHANS_PER_USER 334
517 > #define MAX_GLOBAL 335
518 > #define MAX_IDENT 336
519 > #define MAX_IDLE 337
520 > #define MAX_LOCAL 338
521 > #define MAX_NICK_CHANGES 339
522 > #define MAX_NICK_LENGTH 340
523 > #define MAX_NICK_TIME 341
524 > #define MAX_NUMBER 342
525 > #define MAX_TARGETS 343
526 > #define MAX_TOPIC_LENGTH 344
527 > #define MAX_WATCH 345
528 > #define MIN_IDLE 346
529 > #define MIN_NONWILDCARD 347
530 > #define MIN_NONWILDCARD_SIMPLE 348
531 > #define MODULE 349
532 > #define MODULES 350
533 > #define MOTD 351
534 > #define NAME 352
535 > #define NEED_IDENT 353
536 > #define NEED_PASSWORD 354
537 > #define NETWORK_DESC 355
538 > #define NETWORK_NAME 356
539 > #define NICK 357
540 > #define NO_CREATE_ON_SPLIT 358
541 > #define NO_JOIN_ON_SPLIT 359
542 > #define NO_OPER_FLOOD 360
543 > #define NO_TILDE 361
544 > #define NUMBER 362
545 > #define NUMBER_PER_CIDR 363
546 > #define NUMBER_PER_IP 364
547 > #define OPER_ONLY_UMODES 365
548 > #define OPER_PASS_RESV 366
549 > #define OPER_UMODES 367
550 > #define OPERATOR 368
551 > #define OPERS_BYPASS_CALLERID 369
552 > #define PACE_WAIT 370
553 > #define PACE_WAIT_SIMPLE 371
554 > #define PASSWORD 372
555 > #define PATH 373
556 > #define PING_COOKIE 374
557 > #define PING_TIME 375
558 > #define PORT 376
559 > #define QSTRING 377
560 > #define RANDOM_IDLE 378
561 > #define REASON 379
562 > #define REDIRPORT 380
563 > #define REDIRSERV 381
564 > #define REHASH 382
565 > #define REMOTE 383
566 > #define REMOTEBAN 384
567 > #define RESV 385
568 > #define RESV_EXEMPT 386
569 > #define RSA_PRIVATE_KEY_FILE 387
570 > #define RSA_PUBLIC_KEY_FILE 388
571 > #define SECONDS 389
572 > #define MINUTES 390
573 > #define HOURS 391
574 > #define DAYS 392
575 > #define WEEKS 393
576 > #define MONTHS 394
577 > #define YEARS 395
578 > #define SEND_PASSWORD 396
579 > #define SENDQ 397
580 > #define SERVERHIDE 398
581 > #define SERVERINFO 399
582 > #define SHORT_MOTD 400
583 > #define SPOOF 401
584 > #define SPOOF_NOTICE 402
585 > #define SQUIT 403
586 > #define SSL_CERTIFICATE_FILE 404
587 > #define SSL_DH_PARAM_FILE 405
588 > #define STATS_E_DISABLED 406
589 > #define STATS_I_OPER_ONLY 407
590 > #define STATS_K_OPER_ONLY 408
591 > #define STATS_O_OPER_ONLY 409
592 > #define STATS_P_OPER_ONLY 410
593 > #define T_ALL 411
594 > #define T_BOTS 412
595 > #define T_CALLERID 413
596 > #define T_CCONN 414
597 > #define T_CLUSTER 415
598 > #define T_DEAF 416
599 > #define T_DEBUG 417
600 > #define T_DLINE 418
601 > #define T_EXTERNAL 419
602 > #define T_FARCONNECT 420
603 > #define T_FILE 421
604 > #define T_FULL 422
605 > #define T_GLOBOPS 423
606 > #define T_INVISIBLE 424
607 > #define T_IPV4 425
608 > #define T_IPV6 426
609 > #define T_LOCOPS 427
610 > #define T_LOG 428
611 > #define T_MAX_CLIENTS 429
612 > #define T_NCHANGE 430
613 > #define T_NONONREG 431
614 > #define T_OPERWALL 432
615 > #define T_RECVQ 433
616 > #define T_REJ 434
617 > #define T_RESTART 435
618 > #define T_SERVER 436
619 > #define T_SERVICE 437
620 > #define T_SERVICES_NAME 438
621 > #define T_SERVNOTICE 439
622 > #define T_SET 440
623 > #define T_SHARED 441
624 > #define T_SIZE 442
625 > #define T_SKILL 443
626 > #define T_SOFTCALLERID 444
627 > #define T_SPY 445
628 > #define T_SSL 446
629 > #define T_SSL_CIPHER_LIST 447
630 > #define T_SSL_CLIENT_METHOD 448
631 > #define T_SSL_SERVER_METHOD 449
632 > #define T_SSLV3 450
633 > #define T_TLSV1 451
634 > #define T_UMODES 452
635 > #define T_UNAUTH 453
636 > #define T_UNDLINE 454
637 > #define T_UNLIMITED 455
638 > #define T_UNRESV 456
639 > #define T_UNXLINE 457
640 > #define T_WALLOP 458
641 > #define T_WALLOPS 459
642 > #define T_WEBIRC 460
643 > #define TBOOL 461
644 > #define THROTTLE_TIME 462
645 > #define TKLINE_EXPIRE_NOTICES 463
646 > #define TMASKED 464
647 > #define TRUE_NO_OPER_FLOOD 465
648 > #define TS_MAX_DELTA 466
649 > #define TS_WARN_DELTA 467
650 > #define TWODOTS 468
651 > #define TYPE 469
652 > #define UNKLINE 470
653 > #define USE_EGD 471
654 > #define USE_LOGGING 472
655 > #define USER 473
656 > #define VHOST 474
657 > #define VHOST6 475
658 > #define WARN_NO_NLINE 476
659 > #define XLINE 477
660  
661  
662  
663   #if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED
664   typedef union YYSTYPE
665   {
666 <
667 < /* Line 214 of yacc.c  */
743 < #line 138 "ircd_parser.y"
666 > /* Line 387 of yacc.c  */
667 > #line 139 "conf_parser.y"
668  
669    int number;
670    char *string;
671  
672  
673 <
674 < /* Line 214 of yacc.c  */
751 < #line 752 "ircd_parser.c"
673 > /* Line 387 of yacc.c  */
674 > #line 675 "conf_parser.c"
675   } YYSTYPE;
676   # define YYSTYPE_IS_TRIVIAL 1
677   # define yystype YYSTYPE /* obsolescent; will be withdrawn */
678   # define YYSTYPE_IS_DECLARED 1
679   #endif
680  
681 + extern YYSTYPE yylval;
682  
683 < /* Copy the second part of user declarations.  */
683 > #ifdef YYPARSE_PARAM
684 > #if defined __STDC__ || defined __cplusplus
685 > int yyparse (void *YYPARSE_PARAM);
686 > #else
687 > int yyparse ();
688 > #endif
689 > #else /* ! YYPARSE_PARAM */
690 > #if defined __STDC__ || defined __cplusplus
691 > int yyparse (void);
692 > #else
693 > int yyparse ();
694 > #endif
695 > #endif /* ! YYPARSE_PARAM */
696  
697 + #endif /* !YY_YY_CONF_PARSER_H_INCLUDED  */
698 +
699 + /* Copy the second part of user declarations.  */
700  
701 < /* Line 264 of yacc.c  */
702 < #line 764 "ircd_parser.c"
701 > /* Line 390 of yacc.c  */
702 > #line 703 "conf_parser.c"
703  
704   #ifdef short
705   # undef short
# Line 810 | Line 749 | typedef short int yytype_int16;
749   #define YYSIZE_MAXIMUM ((YYSIZE_T) -1)
750  
751   #ifndef YY_
752 < # if YYENABLE_NLS
752 > # if defined YYENABLE_NLS && YYENABLE_NLS
753   #  if ENABLE_NLS
754   #   include <libintl.h> /* INFRINGES ON USER NAME SPACE */
755 < #   define YY_(msgid) dgettext ("bison-runtime", msgid)
755 > #   define YY_(Msgid) dgettext ("bison-runtime", Msgid)
756   #  endif
757   # endif
758   # ifndef YY_
759 < #  define YY_(msgid) msgid
759 > #  define YY_(Msgid) Msgid
760 > # endif
761 > #endif
762 >
763 > #ifndef __attribute__
764 > /* This feature is available in gcc versions 2.5 and later.  */
765 > # if (! defined __GNUC__ || __GNUC__ < 2 \
766 >      || (__GNUC__ == 2 && __GNUC_MINOR__ < 5))
767 > #  define __attribute__(Spec) /* empty */
768   # endif
769   #endif
770  
771   /* Suppress unused-variable warnings by "using" E.  */
772   #if ! defined lint || defined __GNUC__
773 < # define YYUSE(e) ((void) (e))
773 > # define YYUSE(E) ((void) (E))
774   #else
775 < # define YYUSE(e) /* empty */
775 > # define YYUSE(E) /* empty */
776   #endif
777  
778 +
779   /* Identity function, used to suppress warnings about constant conditions.  */
780   #ifndef lint
781 < # define YYID(n) (n)
781 > # define YYID(N) (N)
782   #else
783   #if (defined __STDC__ || defined __C99__FUNC__ \
784       || defined __cplusplus || defined _MSC_VER)
# Line 863 | Line 811 | YYID (yyi)
811   #    define alloca _alloca
812   #   else
813   #    define YYSTACK_ALLOC alloca
814 < #    if ! defined _ALLOCA_H && ! defined _STDLIB_H && (defined __STDC__ || defined __C99__FUNC__ \
814 > #    if ! defined _ALLOCA_H && ! defined EXIT_SUCCESS && (defined __STDC__ || defined __C99__FUNC__ \
815       || defined __cplusplus || defined _MSC_VER)
816   #     include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
817 < #     ifndef _STDLIB_H
818 < #      define _STDLIB_H 1
817 >      /* Use EXIT_SUCCESS as a witness for stdlib.h.  */
818 > #     ifndef EXIT_SUCCESS
819 > #      define EXIT_SUCCESS 0
820   #     endif
821   #    endif
822   #   endif
# Line 890 | Line 839 | YYID (yyi)
839   #  ifndef YYSTACK_ALLOC_MAXIMUM
840   #   define YYSTACK_ALLOC_MAXIMUM YYSIZE_MAXIMUM
841   #  endif
842 < #  if (defined __cplusplus && ! defined _STDLIB_H \
842 > #  if (defined __cplusplus && ! defined EXIT_SUCCESS \
843         && ! ((defined YYMALLOC || defined malloc) \
844               && (defined YYFREE || defined free)))
845   #   include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
846 < #   ifndef _STDLIB_H
847 < #    define _STDLIB_H 1
846 > #   ifndef EXIT_SUCCESS
847 > #    define EXIT_SUCCESS 0
848   #   endif
849   #  endif
850   #  ifndef YYMALLOC
851   #   define YYMALLOC malloc
852 < #   if ! defined malloc && ! defined _STDLIB_H && (defined __STDC__ || defined __C99__FUNC__ \
852 > #   if ! defined malloc && ! defined EXIT_SUCCESS && (defined __STDC__ || defined __C99__FUNC__ \
853       || defined __cplusplus || defined _MSC_VER)
854   void *malloc (YYSIZE_T); /* INFRINGES ON USER NAME SPACE */
855   #   endif
856   #  endif
857   #  ifndef YYFREE
858   #   define YYFREE free
859 < #   if ! defined free && ! defined _STDLIB_H && (defined __STDC__ || defined __C99__FUNC__ \
859 > #   if ! defined free && ! defined EXIT_SUCCESS && (defined __STDC__ || defined __C99__FUNC__ \
860       || defined __cplusplus || defined _MSC_VER)
861   void free (void *); /* INFRINGES ON USER NAME SPACE */
862   #   endif
# Line 936 | Line 885 | union yyalloc
885       ((N) * (sizeof (yytype_int16) + sizeof (YYSTYPE)) \
886        + YYSTACK_GAP_MAXIMUM)
887  
888 < /* Copy COUNT objects from FROM to TO.  The source and destination do
940 <   not overlap.  */
941 < # ifndef YYCOPY
942 < #  if defined __GNUC__ && 1 < __GNUC__
943 < #   define YYCOPY(To, From, Count) \
944 <      __builtin_memcpy (To, From, (Count) * sizeof (*(From)))
945 < #  else
946 < #   define YYCOPY(To, From, Count)              \
947 <      do                                        \
948 <        {                                       \
949 <          YYSIZE_T yyi;                         \
950 <          for (yyi = 0; yyi < (Count); yyi++)   \
951 <            (To)[yyi] = (From)[yyi];            \
952 <        }                                       \
953 <      while (YYID (0))
954 < #  endif
955 < # endif
888 > # define YYCOPY_NEEDED 1
889  
890   /* Relocate STACK from its old location to the new one.  The
891     local variables YYSIZE and YYSTACKSIZE give the old and new number of
# Line 972 | Line 905 | union yyalloc
905  
906   #endif
907  
908 + #if defined YYCOPY_NEEDED && YYCOPY_NEEDED
909 + /* Copy COUNT objects from SRC to DST.  The source and destination do
910 +   not overlap.  */
911 + # ifndef YYCOPY
912 + #  if defined __GNUC__ && 1 < __GNUC__
913 + #   define YYCOPY(Dst, Src, Count) \
914 +      __builtin_memcpy (Dst, Src, (Count) * sizeof (*(Src)))
915 + #  else
916 + #   define YYCOPY(Dst, Src, Count)              \
917 +      do                                        \
918 +        {                                       \
919 +          YYSIZE_T yyi;                         \
920 +          for (yyi = 0; yyi < (Count); yyi++)   \
921 +            (Dst)[yyi] = (Src)[yyi];            \
922 +        }                                       \
923 +      while (YYID (0))
924 + #  endif
925 + # endif
926 + #endif /* !YYCOPY_NEEDED */
927 +
928   /* YYFINAL -- State number of the termination state.  */
929   #define YYFINAL  2
930   /* YYLAST -- Last index in YYTABLE.  */
931 < #define YYLAST   1413
931 > #define YYLAST   1228
932  
933   /* YYNTOKENS -- Number of terminals.  */
934 < #define YYNTOKENS  267
934 > #define YYNTOKENS  229
935   /* YYNNTS -- Number of nonterminals.  */
936 < #define YYNNTS  346
936 > #define YYNNTS  286
937   /* YYNRULES -- Number of rules.  */
938 < #define YYNRULES  743
938 > #define YYNRULES  644
939   /* YYNRULES -- Number of states.  */
940 < #define YYNSTATES  1494
940 > #define YYNSTATES  1260
941  
942   /* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX.  */
943   #define YYUNDEFTOK  2
944 < #define YYMAXUTOK   516
944 > #define YYMAXUTOK   477
945  
946   #define YYTRANSLATE(YYX)                                                \
947    ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK)
948  
949   /* YYTRANSLATE[YYLEX] -- Bison symbol number corresponding to YYLEX.  */
950 < static const yytype_uint16 yytranslate[] =
950 > static const yytype_uint8 yytranslate[] =
951   {
952         0,     2,     2,     2,     2,     2,     2,     2,     2,     2,
953         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
954         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
955         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
956 <       2,     2,     2,     2,   266,     2,     2,     2,     2,     2,
957 <       2,     2,     2,     2,     2,     2,     2,     2,     2,   262,
958 <       2,   265,     2,     2,     2,     2,     2,     2,     2,     2,
956 >       2,     2,     2,     2,   227,     2,     2,     2,     2,     2,
957 >       2,     2,     2,     2,     2,     2,     2,     2,   228,   223,
958 >       2,   226,     2,     2,     2,     2,     2,     2,     2,     2,
959         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
960         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
961         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
962         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
963         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
964 <       2,     2,     2,   264,     2,   263,     2,     2,     2,     2,
964 >       2,     2,     2,   225,     2,   224,     2,     2,     2,     2,
965         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
966         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
967         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
# Line 1043 | Line 996 | static const yytype_uint16 yytranslate[]
996       185,   186,   187,   188,   189,   190,   191,   192,   193,   194,
997       195,   196,   197,   198,   199,   200,   201,   202,   203,   204,
998       205,   206,   207,   208,   209,   210,   211,   212,   213,   214,
999 <     215,   216,   217,   218,   219,   220,   221,   222,   223,   224,
1047 <     225,   226,   227,   228,   229,   230,   231,   232,   233,   234,
1048 <     235,   236,   237,   238,   239,   240,   241,   242,   243,   244,
1049 <     245,   246,   247,   248,   249,   250,   251,   252,   253,   254,
1050 <     255,   256,   257,   258,   259,   260,   261
999 >     215,   216,   217,   218,   219,   220,   221,   222
1000   };
1001  
1002   #if YYDEBUG
# Line 1057 | Line 1006 | static const yytype_uint16 yyprhs[] =
1006   {
1007         0,     0,     3,     4,     7,     9,    11,    13,    15,    17,
1008        19,    21,    23,    25,    27,    29,    31,    33,    35,    37,
1009 <      39,    41,    43,    45,    47,    50,    53,    54,    56,    59,
1010 <      63,    67,    71,    75,    79,    80,    82,    85,    89,    93,
1011 <      97,   103,   106,   108,   110,   112,   115,   120,   125,   131,
1012 <     134,   136,   138,   140,   142,   144,   146,   148,   150,   152,
1013 <     154,   156,   158,   160,   163,   164,   170,   174,   176,   178,
1014 <     180,   185,   190,   195,   200,   205,   210,   215,   220,   225,
1015 <     230,   235,   241,   244,   246,   248,   250,   252,   255,   260,
1016 <     265,   270,   276,   279,   281,   283,   285,   287,   289,   291,
1017 <     293,   295,   297,   299,   301,   303,   305,   308,   313,   318,
1018 <     323,   328,   333,   338,   343,   348,   353,   358,   363,   368,
1019 <     373,   378,   383,   388,   393,   398,   399,   407,   408,   410,
1020 <     413,   415,   417,   419,   421,   423,   425,   427,   429,   431,
1021 <     433,   435,   437,   439,   441,   443,   445,   447,   449,   451,
1022 <     453,   455,   457,   459,   462,   467,   469,   474,   479,   484,
1023 <     489,   494,   495,   501,   505,   507,   509,   511,   513,   515,
1024 <     517,   519,   521,   523,   525,   527,   529,   531,   533,   535,
1025 <     537,   539,   541,   543,   545,   550,   555,   560,   565,   570,
1026 <     575,   580,   585,   590,   595,   600,   605,   610,   615,   616,
1027 <     622,   626,   628,   629,   633,   634,   637,   639,   641,   643,
1028 <     645,   647,   649,   651,   653,   655,   657,   659,   661,   663,
1029 <     665,   667,   669,   670,   678,   679,   681,   684,   686,   688,
1030 <     690,   692,   694,   696,   698,   700,   702,   704,   706,   708,
1031 <     710,   712,   715,   720,   722,   727,   732,   737,   742,   747,
1032 <     752,   757,   762,   767,   772,   777,   782,   783,   790,   791,
1033 <     797,   801,   803,   805,   807,   809,   812,   814,   816,   818,
1034 <     820,   822,   825,   826,   832,   836,   838,   840,   844,   849,
1035 <     854,   855,   862,   865,   867,   869,   871,   873,   875,   877,
1036 <     879,   881,   883,   885,   887,   889,   891,   893,   895,   897,
1037 <     899,   902,   907,   912,   917,   922,   927,   928,   934,   938,
1038 <     940,   941,   945,   946,   949,   951,   953,   955,   957,   959,
1039 <     961,   963,   965,   967,   969,   974,   979,   984,   989,   994,
1040 <     999,  1004,  1009,  1014,  1019,  1020,  1027,  1030,  1032,  1034,
1041 <    1036,  1038,  1041,  1046,  1051,  1056,  1057,  1064,  1067,  1069,
1042 <    1071,  1073,  1075,  1078,  1083,  1088,  1089,  1095,  1099,  1101,
1043 <    1103,  1105,  1107,  1109,  1111,  1113,  1115,  1117,  1119,  1121,
1044 <    1123,  1124,  1131,  1134,  1136,  1138,  1140,  1143,  1148,  1149,
1045 <    1155,  1159,  1161,  1163,  1165,  1167,  1169,  1171,  1173,  1175,
1046 <    1177,  1179,  1181,  1183,  1184,  1192,  1193,  1195,  1198,  1200,
1047 <    1202,  1204,  1206,  1208,  1210,  1212,  1214,  1216,  1218,  1220,
1048 <    1222,  1224,  1226,  1228,  1230,  1232,  1234,  1236,  1238,  1241,
1049 <    1246,  1248,  1253,  1258,  1263,  1268,  1273,  1278,  1283,  1288,
1050 <    1289,  1295,  1299,  1301,  1302,  1306,  1307,  1310,  1312,  1314,
1051 <    1316,  1318,  1320,  1325,  1330,  1335,  1340,  1345,  1350,  1355,
1052 <    1360,  1365,  1370,  1371,  1378,  1379,  1385,  1389,  1391,  1393,
1053 <    1396,  1398,  1400,  1402,  1404,  1406,  1411,  1416,  1417,  1424,
1054 <    1427,  1429,  1431,  1433,  1435,  1440,  1445,  1451,  1454,  1456,
1055 <    1458,  1460,  1465,  1466,  1473,  1474,  1480,  1484,  1486,  1488,
1056 <    1491,  1493,  1495,  1497,  1499,  1501,  1506,  1511,  1517,  1520,
1057 <    1522,  1524,  1526,  1528,  1530,  1532,  1534,  1536,  1538,  1540,
1058 <    1542,  1544,  1546,  1548,  1550,  1552,  1554,  1556,  1558,  1560,
1059 <    1562,  1564,  1566,  1568,  1570,  1572,  1574,  1576,  1578,  1580,
1060 <    1582,  1584,  1586,  1588,  1590,  1592,  1594,  1596,  1598,  1600,
1061 <    1602,  1604,  1606,  1608,  1610,  1612,  1614,  1616,  1618,  1620,
1062 <    1622,  1624,  1626,  1628,  1630,  1632,  1634,  1636,  1641,  1646,
1063 <    1651,  1656,  1661,  1666,  1671,  1676,  1681,  1686,  1691,  1696,
1064 <    1701,  1706,  1711,  1716,  1721,  1726,  1731,  1736,  1741,  1746,
1065 <    1751,  1756,  1761,  1766,  1771,  1776,  1781,  1786,  1791,  1796,
1066 <    1801,  1806,  1811,  1816,  1821,  1826,  1831,  1836,  1841,  1846,
1067 <    1851,  1856,  1861,  1866,  1871,  1876,  1881,  1886,  1891,  1892,
1068 <    1898,  1902,  1904,  1906,  1908,  1910,  1912,  1914,  1916,  1918,
1069 <    1920,  1922,  1924,  1926,  1928,  1930,  1932,  1934,  1936,  1938,
1070 <    1940,  1942,  1943,  1949,  1953,  1955,  1957,  1959,  1961,  1963,
1071 <    1965,  1967,  1969,  1971,  1973,  1975,  1977,  1979,  1981,  1983,
1123 <    1985,  1987,  1989,  1991,  1993,  1998,  2003,  2008,  2013,  2018,
1124 <    2019,  2026,  2029,  2031,  2033,  2035,  2037,  2039,  2041,  2043,
1125 <    2045,  2050,  2055,  2056,  2062,  2066,  2068,  2070,  2072,  2077,
1126 <    2082,  2083,  2089,  2093,  2095,  2097,  2099,  2105,  2108,  2110,
1127 <    2112,  2114,  2116,  2118,  2120,  2122,  2124,  2126,  2128,  2130,
1128 <    2132,  2134,  2136,  2138,  2140,  2142,  2144,  2146,  2148,  2153,
1129 <    2158,  2163,  2168,  2173,  2178,  2183,  2188,  2193,  2198,  2203,
1130 <    2208,  2213,  2218,  2223,  2228,  2233,  2238,  2244,  2247,  2249,
1131 <    2251,  2253,  2255,  2257,  2259,  2261,  2263,  2265,  2270,  2275,
1132 <    2280,  2285,  2290,  2295
1009 >      39,    41,    43,    45,    47,    49,    52,    55,    56,    58,
1010 >      61,    65,    69,    73,    77,    81,    85,    89,    90,    92,
1011 >      95,    99,   103,   107,   113,   116,   118,   120,   122,   125,
1012 >     130,   135,   141,   144,   146,   148,   150,   152,   154,   156,
1013 >     158,   160,   162,   164,   166,   168,   170,   172,   174,   176,
1014 >     178,   180,   183,   188,   193,   197,   199,   201,   203,   207,
1015 >     209,   211,   213,   218,   223,   228,   233,   238,   243,   248,
1016 >     253,   258,   263,   268,   273,   278,   283,   288,   294,   297,
1017 >     299,   301,   303,   305,   308,   313,   318,   323,   324,   331,
1018 >     334,   336,   338,   340,   343,   348,   353,   359,   362,   364,
1019 >     366,   368,   371,   376,   377,   384,   387,   389,   391,   393,
1020 >     395,   398,   403,   408,   413,   414,   420,   424,   426,   428,
1021 >     430,   432,   434,   436,   438,   440,   441,   448,   451,   453,
1022 >     455,   457,   459,   461,   463,   465,   467,   469,   472,   477,
1023 >     482,   487,   492,   497,   502,   503,   509,   513,   515,   517,
1024 >     519,   521,   523,   525,   527,   529,   531,   533,   535,   537,
1025 >     539,   541,   543,   545,   547,   549,   551,   553,   555,   557,
1026 >     558,   564,   568,   570,   574,   576,   580,   582,   586,   588,
1027 >     590,   592,   594,   596,   598,   600,   602,   604,   606,   608,
1028 >     610,   612,   614,   616,   618,   620,   622,   623,   630,   633,
1029 >     635,   637,   639,   641,   643,   645,   647,   649,   651,   653,
1030 >     655,   657,   659,   661,   663,   665,   667,   670,   675,   680,
1031 >     685,   690,   695,   700,   705,   710,   715,   720,   725,   730,
1032 >     735,   740,   745,   746,   752,   756,   758,   760,   762,   763,
1033 >     770,   771,   777,   781,   783,   785,   787,   789,   792,   794,
1034 >     796,   798,   800,   802,   805,   806,   812,   816,   818,   820,
1035 >     824,   829,   834,   835,   842,   845,   847,   849,   851,   853,
1036 >     855,   857,   859,   861,   863,   866,   871,   876,   881,   886,
1037 >     887,   893,   897,   899,   901,   903,   905,   907,   909,   911,
1038 >     913,   915,   917,   919,   924,   929,   934,   935,   942,   945,
1039 >     947,   949,   951,   953,   956,   961,   966,   971,   977,   980,
1040 >     982,   984,   986,   991,   992,   999,  1002,  1004,  1006,  1008,
1041 >    1010,  1013,  1018,  1023,  1024,  1030,  1034,  1036,  1038,  1040,
1042 >    1042,  1044,  1046,  1048,  1050,  1052,  1054,  1056,  1057,  1064,
1043 >    1067,  1069,  1071,  1073,  1076,  1081,  1082,  1088,  1092,  1094,
1044 >    1096,  1098,  1100,  1102,  1104,  1106,  1108,  1110,  1112,  1114,
1045 >    1115,  1122,  1125,  1127,  1129,  1131,  1133,  1135,  1137,  1139,
1046 >    1141,  1143,  1145,  1147,  1149,  1151,  1153,  1156,  1161,  1166,
1047 >    1171,  1176,  1181,  1186,  1191,  1196,  1197,  1203,  1207,  1209,
1048 >    1211,  1213,  1218,  1223,  1228,  1233,  1238,  1239,  1246,  1249,
1049 >    1251,  1253,  1255,  1257,  1262,  1267,  1268,  1275,  1278,  1280,
1050 >    1282,  1284,  1286,  1291,  1296,  1302,  1305,  1307,  1309,  1311,
1051 >    1316,  1317,  1324,  1327,  1329,  1331,  1333,  1335,  1340,  1345,
1052 >    1351,  1354,  1356,  1358,  1360,  1362,  1364,  1366,  1368,  1370,
1053 >    1372,  1374,  1376,  1378,  1380,  1382,  1384,  1386,  1388,  1390,
1054 >    1392,  1394,  1396,  1398,  1400,  1402,  1404,  1406,  1408,  1410,
1055 >    1412,  1414,  1416,  1418,  1420,  1422,  1424,  1426,  1428,  1430,
1056 >    1432,  1434,  1436,  1438,  1440,  1442,  1444,  1446,  1448,  1450,
1057 >    1452,  1454,  1459,  1464,  1469,  1474,  1479,  1484,  1489,  1494,
1058 >    1499,  1504,  1509,  1514,  1519,  1524,  1529,  1534,  1539,  1544,
1059 >    1549,  1554,  1559,  1564,  1569,  1574,  1579,  1584,  1589,  1594,
1060 >    1599,  1604,  1609,  1614,  1619,  1624,  1629,  1634,  1639,  1644,
1061 >    1649,  1654,  1659,  1664,  1669,  1674,  1679,  1680,  1686,  1690,
1062 >    1692,  1694,  1696,  1698,  1700,  1702,  1704,  1706,  1708,  1710,
1063 >    1712,  1714,  1716,  1718,  1720,  1722,  1724,  1726,  1728,  1730,
1064 >    1732,  1734,  1735,  1741,  1745,  1747,  1749,  1751,  1753,  1755,
1065 >    1757,  1759,  1761,  1763,  1765,  1767,  1769,  1771,  1773,  1775,
1066 >    1777,  1779,  1781,  1783,  1785,  1787,  1789,  1794,  1799,  1804,
1067 >    1810,  1813,  1815,  1817,  1819,  1821,  1823,  1825,  1827,  1829,
1068 >    1831,  1833,  1835,  1837,  1839,  1841,  1846,  1851,  1856,  1861,
1069 >    1866,  1871,  1876,  1881,  1886,  1891,  1896,  1901,  1907,  1910,
1070 >    1912,  1914,  1916,  1918,  1920,  1922,  1924,  1926,  1928,  1933,
1071 >    1938,  1943,  1948,  1953,  1958
1072   };
1073  
1074   /* YYRHS -- A `-1'-separated list of the rules' RHS.  */
1075   static const yytype_int16 yyrhs[] =
1076   {
1077 <     268,     0,    -1,    -1,   268,   269,    -1,   297,    -1,   303,
1078 <      -1,   318,    -1,   582,    -1,   355,    -1,   374,    -1,   388,
1079 <      -1,   279,    -1,   603,    -1,   414,    -1,   421,    -1,   431,
1080 <      -1,   440,    -1,   471,    -1,   481,    -1,   487,    -1,   501,
1081 <      -1,   566,    -1,   491,    -1,   274,    -1,     1,   262,    -1,
1082 <       1,   263,    -1,    -1,   271,    -1,   133,   270,    -1,   133,
1083 <     175,   270,    -1,   133,   176,   270,    -1,   133,   177,   270,
1084 <      -1,   133,   178,   270,    -1,   133,   179,   270,    -1,    -1,
1085 <     273,    -1,   133,   272,    -1,   133,    14,   272,    -1,   133,
1086 <      15,   272,    -1,   133,    16,   272,    -1,   121,   264,   275,
1087 <     263,   262,    -1,   275,   276,    -1,   276,    -1,   277,    -1,
1088 <     278,    -1,     1,   262,    -1,   120,   265,   155,   262,    -1,
1089 <     150,   265,   155,   262,    -1,   183,   264,   280,   263,   262,
1090 <      -1,   280,   281,    -1,   281,    -1,   288,    -1,   293,    -1,
1091 <     296,    -1,   290,    -1,   291,    -1,   292,    -1,   295,    -1,
1092 <     287,    -1,   294,    -1,   289,    -1,   286,    -1,   282,    -1,
1093 <       1,   262,    -1,    -1,   170,   283,   265,   284,   262,    -1,
1094 <     284,   266,   285,    -1,   285,    -1,   171,    -1,   172,    -1,
1095 <     169,   265,   155,   262,    -1,   167,   265,   155,   262,    -1,
1096 <     122,   265,   155,   262,    -1,   185,   265,   155,   262,    -1,
1097 <      37,   265,   155,   262,    -1,   125,   265,   155,   262,    -1,
1098 <     124,   265,   155,   262,    -1,   257,   265,   155,   262,    -1,
1099 <     258,   265,   155,   262,    -1,   229,   265,   133,   262,    -1,
1100 <      86,   265,   199,   262,    -1,     5,   264,   298,   263,   262,
1101 <      -1,   298,   299,    -1,   299,    -1,   300,    -1,   302,    -1,
1102 <     301,    -1,     1,   262,    -1,   122,   265,   155,   262,    -1,
1103 <      48,   265,   155,   262,    -1,    37,   265,   155,   262,    -1,
1104 <     104,   264,   304,   263,   262,    -1,   304,   305,    -1,   305,
1105 <      -1,   306,    -1,   307,    -1,   316,    -1,   317,    -1,   308,
1106 <      -1,   310,    -1,   312,    -1,   313,    -1,   315,    -1,   311,
1107 <      -1,   314,    -1,   309,    -1,     1,   262,    -1,   221,   265,
1108 <     155,   262,    -1,   140,   265,   155,   262,    -1,    64,   265,
1109 <     155,   262,    -1,    57,   265,   155,   262,    -1,    62,   265,
1110 <     155,   262,    -1,    63,   265,   155,   262,    -1,    60,   265,
1111 <     155,   262,    -1,    59,   265,   155,   262,    -1,    61,   265,
1112 <     155,   262,    -1,    58,   265,   155,   262,    -1,   105,   265,
1113 <     222,   262,    -1,   105,   265,   224,   262,    -1,   105,   265,
1114 <     228,   262,    -1,   105,   265,   226,   262,    -1,   105,   265,
1115 <     227,   262,    -1,   105,   265,   225,   262,    -1,   105,   265,
1116 <     223,   262,    -1,   255,   265,   199,   262,    -1,    -1,   138,
1117 <     319,   320,   264,   321,   263,   262,    -1,    -1,   324,    -1,
1118 <     321,   322,    -1,   322,    -1,   323,    -1,   325,    -1,   326,
1119 <      -1,   345,    -1,   346,    -1,   330,    -1,   329,    -1,   334,
1120 <      -1,   335,    -1,   337,    -1,   338,    -1,   339,    -1,   340,
1121 <      -1,   341,    -1,   336,    -1,   342,    -1,   343,    -1,   344,
1122 <      -1,   347,    -1,   327,    -1,   328,    -1,   348,    -1,     1,
1123 <     262,    -1,   122,   265,   155,   262,    -1,   155,    -1,   250,
1124 <     265,   155,   262,    -1,   149,   265,   155,   262,    -1,    50,
1125 <     265,   199,   262,    -1,   168,   265,   155,   262,    -1,    26,
1126 <     265,   155,   262,    -1,    -1,   238,   331,   265,   332,   262,
1127 <      -1,   332,   266,   333,    -1,   333,    -1,   206,    -1,   209,
1128 <      -1,   210,    -1,   212,    -1,   213,    -1,   216,    -1,   235,
1129 <      -1,   230,    -1,   232,    -1,   239,    -1,   236,    -1,   215,
1130 <      -1,   231,    -1,   234,    -1,   217,    -1,   242,    -1,   207,
1131 <      -1,   208,    -1,   220,    -1,    74,   265,   199,   262,    -1,
1132 <     163,   265,   199,   262,    -1,   164,   265,   199,   262,    -1,
1133 <      94,   265,   199,   262,    -1,   259,   265,   199,   262,    -1,
1134 <     249,   265,   199,   262,    -1,    67,   265,   199,   262,    -1,
1135 <     127,   265,   199,   262,    -1,    38,   265,   199,   262,    -1,
1136 <     161,   265,   199,   262,    -1,     5,   265,   199,   262,    -1,
1137 <      79,   265,   199,   262,    -1,    81,   265,   199,   262,    -1,
1138 <     231,   265,   199,   262,    -1,    -1,    55,   349,   265,   350,
1139 <     262,    -1,   350,   266,   351,    -1,   351,    -1,    -1,   132,
1140 <     352,   354,    -1,    -1,   353,   354,    -1,    74,    -1,   163,
1141 <      -1,    94,    -1,   249,    -1,   259,    -1,    67,    -1,    38,
1142 <      -1,   161,    -1,     5,    -1,    79,    -1,   127,    -1,   231,
1143 <      -1,   143,    -1,    81,    -1,   164,    -1,    50,    -1,    -1,
1144 <      26,   356,   357,   264,   358,   263,   262,    -1,    -1,   361,
1145 <      -1,   358,   359,    -1,   359,    -1,   360,    -1,   371,    -1,
1146 <     372,    -1,   362,    -1,   363,    -1,   373,    -1,   364,    -1,
1147 <     365,    -1,   366,    -1,   367,    -1,   368,    -1,   369,    -1,
1148 <     370,    -1,     1,   262,    -1,   122,   265,   155,   262,    -1,
1149 <     155,    -1,   152,   265,   271,   262,    -1,   153,   265,   271,
1150 <     262,    -1,   136,   265,   133,   262,    -1,    30,   265,   271,
1151 <     262,    -1,   114,   265,   133,   262,    -1,   109,   265,   133,
1152 <     262,    -1,   111,   265,   133,   262,    -1,   110,   265,   133,
1153 <     262,    -1,   180,   265,   273,   262,    -1,    23,   265,   133,
1154 <     262,    -1,    24,   265,   133,   262,    -1,   135,   265,   133,
1155 <     262,    -1,    -1,   102,   375,   264,   380,   263,   262,    -1,
1156 <      -1,    55,   377,   265,   378,   262,    -1,   378,   266,   379,
1157 <      -1,   379,    -1,   237,    -1,    78,    -1,   233,    -1,   380,
1158 <     381,    -1,   381,    -1,   382,    -1,   376,    -1,   386,    -1,
1159 <     387,    -1,     1,   262,    -1,    -1,   154,   265,   384,   383,
1160 <     262,    -1,   384,   266,   385,    -1,   385,    -1,   133,    -1,
1161 <     133,   204,   133,    -1,    91,   265,   155,   262,    -1,    85,
1162 <     265,   155,   262,    -1,    -1,    75,   389,   264,   390,   263,
1163 <     262,    -1,   390,   391,    -1,   391,    -1,   392,    -1,   393,
1164 <      -1,   395,    -1,   397,    -1,   404,    -1,   405,    -1,   406,
1165 <      -1,   408,    -1,   409,    -1,   410,    -1,   394,    -1,   411,
1166 <      -1,   412,    -1,   407,    -1,   413,    -1,   396,    -1,     1,
1167 <     262,    -1,   250,   265,   155,   262,    -1,   149,   265,   155,
1168 <     262,    -1,   193,   265,   199,   262,    -1,    26,   265,   155,
1169 <     262,    -1,    50,   265,   199,   262,    -1,    -1,    55,   398,
1170 <     265,   399,   262,    -1,   399,   266,   400,    -1,   400,    -1,
1171 <      -1,   132,   401,   403,    -1,    -1,   402,   403,    -1,   193,
1172 <      -1,    51,    -1,    95,    -1,    76,    -1,    20,    -1,    21,
1173 <      -1,   131,    -1,    69,    -1,   174,    -1,   123,    -1,    95,
1174 <     265,   199,   262,    -1,    76,   265,   199,   262,    -1,    51,
1175 <     265,   199,   262,    -1,    20,   265,   199,   262,    -1,   131,
1176 <     265,   199,   262,    -1,    69,   265,   199,   262,    -1,   192,
1177 <     265,   155,   262,    -1,   159,   265,   155,   262,    -1,   158,
1178 <     265,   133,   262,    -1,   123,   265,   199,   262,    -1,    -1,
1179 <     173,   415,   264,   416,   263,   262,    -1,   416,   417,    -1,
1180 <     417,    -1,   418,    -1,   419,    -1,   420,    -1,     1,   262,
1181 <      -1,   157,   265,   155,   262,    -1,    22,   265,   155,   262,
1182 <      -1,   126,   265,   155,   262,    -1,    -1,   187,   422,   264,
1183 <     423,   263,   262,    -1,   423,   424,    -1,   424,    -1,   425,
1184 <      -1,   426,    -1,   427,    -1,     1,   262,    -1,   122,   265,
1185 <     155,   262,    -1,   250,   265,   155,   262,    -1,    -1,   189,
1186 <     428,   265,   429,   262,    -1,   429,   266,   430,    -1,   430,
1187 <      -1,    94,    -1,   246,    -1,   249,    -1,   259,    -1,   247,
1188 <      -1,   241,    -1,   173,    -1,   248,    -1,   240,    -1,   220,
1189 <      -1,   205,    -1,    -1,   188,   432,   264,   433,   263,   262,
1190 <      -1,   433,   434,    -1,   434,    -1,   435,    -1,   436,    -1,
1191 <       1,   262,    -1,   122,   265,   155,   262,    -1,    -1,   189,
1192 <     437,   265,   438,   262,    -1,   438,   266,   439,    -1,   439,
1193 <      -1,    94,    -1,   246,    -1,   249,    -1,   259,    -1,   247,
1194 <      -1,   241,    -1,   173,    -1,   248,    -1,   240,    -1,   220,
1195 <      -1,   205,    -1,    -1,    29,   441,   442,   264,   443,   263,
1196 <     262,    -1,    -1,   446,    -1,   443,   444,    -1,   444,    -1,
1197 <     445,    -1,   447,    -1,   448,    -1,   449,    -1,   450,    -1,
1198 <     452,    -1,   451,    -1,   453,    -1,   454,    -1,   467,    -1,
1199 <     468,    -1,   469,    -1,   465,    -1,   462,    -1,   464,    -1,
1200 <     463,    -1,   461,    -1,   470,    -1,   466,    -1,     1,   262,
1201 <      -1,   122,   265,   155,   262,    -1,   155,    -1,    85,   265,
1202 <     155,   262,    -1,   257,   265,   155,   262,    -1,   181,   265,
1203 <     155,   262,    -1,     3,   265,   155,   262,    -1,   154,   265,
1204 <     133,   262,    -1,     6,   265,   218,   262,    -1,     6,   265,
1205 <     219,   262,    -1,    54,   265,   155,   262,    -1,    -1,    55,
1206 <     455,   265,   456,   262,    -1,   456,   266,   457,    -1,   457,
1207 <      -1,    -1,   132,   458,   460,    -1,    -1,   459,   460,    -1,
1208 <      27,    -1,    31,    -1,    10,    -1,    12,    -1,   244,    -1,
1209 <     168,   265,   155,   262,    -1,    50,   265,   199,   262,    -1,
1210 <      31,   265,   199,   262,    -1,    27,   265,   199,   262,    -1,
1211 <      10,   265,   199,   262,    -1,   244,   265,   199,   262,    -1,
1212 <      87,   265,   155,   262,    -1,   100,   265,   155,   262,    -1,
1213 <      26,   265,   155,   262,    -1,    25,   265,   155,   262,    -1,
1214 <      -1,    92,   472,   264,   477,   263,   262,    -1,    -1,   189,
1215 <     474,   265,   475,   262,    -1,   475,   266,   476,    -1,   476,
1216 <      -1,   160,    -1,   477,   478,    -1,   478,    -1,   479,    -1,
1217 <     480,    -1,   473,    -1,     1,    -1,   250,   265,   155,   262,
1218 <      -1,   157,   265,   155,   262,    -1,    -1,    36,   482,   264,
1219 <     483,   263,   262,    -1,   483,   484,    -1,   484,    -1,   485,
1220 <      -1,   486,    -1,     1,    -1,    91,   265,   155,   262,    -1,
1221 <     157,   265,   155,   262,    -1,    52,   264,   488,   263,   262,
1222 <      -1,   488,   489,    -1,   489,    -1,   490,    -1,     1,    -1,
1223 <      91,   265,   155,   262,    -1,    -1,    65,   492,   264,   497,
1224 <     263,   262,    -1,    -1,   189,   494,   265,   495,   262,    -1,
1225 <     495,   266,   496,    -1,   496,    -1,   160,    -1,   497,   498,
1226 <      -1,   498,    -1,   499,    -1,   500,    -1,   493,    -1,     1,
1227 <      -1,   122,   265,   155,   262,    -1,   157,   265,   155,   262,
1228 <      -1,    66,   264,   502,   263,   262,    -1,   502,   503,    -1,
1229 <     503,    -1,   512,    -1,   513,    -1,   515,    -1,   516,    -1,
1230 <     517,    -1,   518,    -1,   519,    -1,   520,    -1,   521,    -1,
1231 <     522,    -1,   511,    -1,   524,    -1,   525,    -1,   526,    -1,
1232 <     527,    -1,   543,    -1,   529,    -1,   531,    -1,   533,    -1,
1233 <     532,    -1,   536,    -1,   530,    -1,   537,    -1,   538,    -1,
1234 <     539,    -1,   540,    -1,   542,    -1,   541,    -1,   557,    -1,
1235 <     544,    -1,   548,    -1,   549,    -1,   553,    -1,   534,    -1,
1236 <     535,    -1,   563,    -1,   561,    -1,   562,    -1,   545,    -1,
1237 <     514,    -1,   546,    -1,   547,    -1,   564,    -1,   552,    -1,
1238 <     523,    -1,   565,    -1,   550,    -1,   551,    -1,   507,    -1,
1239 <     510,    -1,   505,    -1,   506,    -1,   508,    -1,   509,    -1,
1240 <     528,    -1,   504,    -1,     1,    -1,   116,   265,   133,   262,
1241 <      -1,    72,   265,   133,   262,    -1,    73,   265,   133,   262,
1242 <      -1,    12,   265,   199,   262,    -1,   256,   265,   199,   262,
1243 <      -1,   162,   265,   271,   262,    -1,   186,   265,   199,   262,
1244 <      -1,    93,   265,   133,   262,    -1,    84,   265,   199,   262,
1245 <      -1,    89,   265,   199,   262,    -1,    43,   265,   199,   262,
1246 <      -1,    53,   265,   199,   262,    -1,     8,   265,   199,   262,
1247 <      -1,   113,   265,   271,   262,    -1,   112,   265,   133,   262,
1248 <      -1,   106,   265,   133,   262,    -1,     9,   265,   271,   262,
1249 <      -1,   203,   265,   271,   262,    -1,   202,   265,   271,   262,
1250 <      -1,    77,   265,   133,   262,    -1,    97,   265,   199,   262,
1251 <      -1,    96,   265,   155,   262,    -1,    90,   265,   199,   262,
1252 <      -1,   261,   265,   199,   262,    -1,   194,   265,   199,   262,
1253 <      -1,   197,   265,   199,   262,    -1,   198,   265,   199,   262,
1254 <      -1,   196,   265,   199,   262,    -1,   196,   265,   200,   262,
1255 <      -1,   195,   265,   199,   262,    -1,   195,   265,   200,   262,
1256 <      -1,   147,   265,   271,   262,    -1,    19,   265,   271,   262,
1257 <      -1,   139,   265,   199,   262,    -1,   148,   265,   271,   262,
1258 <      -1,   190,   265,   199,   262,    -1,   130,   265,   199,   262,
1259 <      -1,   245,   265,   199,   262,    -1,   142,   265,   199,   262,
1260 <      -1,   117,   265,   155,   262,    -1,    88,   265,   271,   262,
1261 <      -1,    45,   265,   133,   262,    -1,   115,   265,   133,   262,
1262 <      -1,   184,   265,   155,   262,    -1,    32,   265,   155,   262,
1263 <      -1,    28,   265,   133,   262,    -1,   251,   265,   199,   262,
1264 <      -1,    47,   265,   155,   262,    -1,   151,   265,   199,   262,
1265 <      -1,    39,   265,   199,   262,    -1,   243,   265,   271,   262,
1266 <      -1,    -1,   144,   554,   265,   555,   262,    -1,   555,   266,
1267 <     556,    -1,   556,    -1,   206,    -1,   209,    -1,   210,    -1,
1268 <     212,    -1,   213,    -1,   216,    -1,   235,    -1,   230,    -1,
1269 <     232,    -1,   239,    -1,   236,    -1,   215,    -1,   231,    -1,
1270 <     234,    -1,   217,    -1,   242,    -1,   207,    -1,   208,    -1,
1271 <     220,    -1,    -1,   141,   558,   265,   559,   262,    -1,   559,
1272 <     266,   560,    -1,   560,    -1,   206,    -1,   209,    -1,   210,
1273 <      -1,   212,    -1,   213,    -1,   216,    -1,   235,    -1,   230,
1335 <      -1,   232,    -1,   239,    -1,   236,    -1,   215,    -1,   231,
1336 <      -1,   234,    -1,   217,    -1,   242,    -1,   207,    -1,   208,
1337 <      -1,   220,    -1,   118,   265,   133,   262,    -1,   119,   265,
1338 <     133,   262,    -1,    33,   265,   133,   262,    -1,   211,   265,
1339 <     273,   262,    -1,    44,   265,   199,   262,    -1,    -1,    68,
1340 <     567,   264,   568,   263,   262,    -1,   568,   569,    -1,   569,
1341 <      -1,   570,    -1,   571,    -1,   572,    -1,   576,    -1,   577,
1342 <      -1,   578,    -1,     1,    -1,    49,   265,   199,   262,    -1,
1343 <      46,   265,   271,   262,    -1,    -1,   104,   573,   265,   574,
1344 <     262,    -1,   574,   266,   575,    -1,   575,    -1,   201,    -1,
1345 <      11,    -1,   250,   265,   155,   262,    -1,   122,   265,   155,
1346 <     262,    -1,    -1,     4,   579,   265,   580,   262,    -1,   580,
1347 <     266,   581,    -1,   581,    -1,   201,    -1,    11,    -1,    22,
1348 <     264,   583,   263,   262,    -1,   583,   584,    -1,   584,    -1,
1349 <     587,    -1,   588,    -1,   589,    -1,   590,    -1,   595,    -1,
1350 <     591,    -1,   592,    -1,   593,    -1,   594,    -1,   596,    -1,
1351 <     597,    -1,   598,    -1,   586,    -1,   599,    -1,   600,    -1,
1352 <     601,    -1,   602,    -1,   585,    -1,     1,    -1,    40,   265,
1353 <     199,   262,    -1,   165,   265,   199,   262,    -1,    42,   265,
1354 <     199,   262,    -1,   252,   265,   199,   262,    -1,   253,   265,
1355 <     199,   262,    -1,   254,   265,   199,   262,    -1,    98,   265,
1356 <     271,   262,    -1,    99,   265,   271,   262,    -1,   108,   265,
1357 <     133,   262,    -1,   156,   265,   199,   262,    -1,   107,   265,
1358 <     133,   262,    -1,    35,   265,   133,   262,    -1,    34,   265,
1359 <     133,   262,    -1,   128,   265,   199,   262,    -1,   129,   265,
1360 <     199,   262,    -1,    13,   265,   199,   262,    -1,   145,   265,
1361 <     133,   262,    -1,   146,   265,   271,   262,    -1,   182,   264,
1362 <     604,   263,   262,    -1,   604,   605,    -1,   605,    -1,   606,
1363 <      -1,   607,    -1,   609,    -1,   611,    -1,   610,    -1,   608,
1364 <      -1,   612,    -1,     1,    -1,    56,   265,   199,   262,    -1,
1365 <      83,   265,   199,   262,    -1,    80,   265,   155,   262,    -1,
1366 <     101,   265,   271,   262,    -1,    78,   265,   199,   262,    -1,
1367 <      41,   265,   199,   262,    -1,    82,   265,   199,   262,    -1
1077 >     230,     0,    -1,    -1,   230,   231,    -1,   265,    -1,   277,
1078 >      -1,   291,    -1,   490,    -1,   309,    -1,   332,    -1,   346,
1079 >      -1,   241,    -1,   505,    -1,   361,    -1,   368,    -1,   372,
1080 >      -1,   382,    -1,   391,    -1,   411,    -1,   417,    -1,   423,
1081 >      -1,   433,    -1,   427,    -1,   236,    -1,   271,    -1,     1,
1082 >     223,    -1,     1,   224,    -1,    -1,   233,    -1,   107,   232,
1083 >      -1,   107,   134,   232,    -1,   107,   135,   232,    -1,   107,
1084 >     136,   232,    -1,   107,   137,   232,    -1,   107,   138,   232,
1085 >      -1,   107,   139,   232,    -1,   107,   140,   232,    -1,    -1,
1086 >     235,    -1,   107,   234,    -1,   107,     9,   234,    -1,   107,
1087 >      10,   234,    -1,   107,    11,   234,    -1,    95,   225,   237,
1088 >     224,   223,    -1,   237,   238,    -1,   238,    -1,   239,    -1,
1089 >     240,    -1,     1,   223,    -1,    94,   226,   122,   223,    -1,
1090 >     118,   226,   122,   223,    -1,   144,   225,   242,   224,   223,
1091 >      -1,   242,   243,    -1,   243,    -1,   254,    -1,   259,    -1,
1092 >     264,    -1,   256,    -1,   257,    -1,   258,    -1,   261,    -1,
1093 >     262,    -1,   263,    -1,   252,    -1,   251,    -1,   260,    -1,
1094 >     255,    -1,   250,    -1,   244,    -1,   245,    -1,   253,    -1,
1095 >       1,   223,    -1,   193,   226,   246,   223,    -1,   194,   226,
1096 >     248,   223,    -1,   246,   227,   247,    -1,   247,    -1,   195,
1097 >      -1,   196,    -1,   248,   227,   249,    -1,   249,    -1,   195,
1098 >      -1,   196,    -1,   149,   226,   122,   223,    -1,   132,   226,
1099 >     122,   223,    -1,   150,   226,   122,   223,    -1,   192,   226,
1100 >     122,   223,    -1,    97,   226,   122,   223,    -1,    63,   226,
1101 >     122,   223,    -1,    24,   226,   122,   223,    -1,   101,   226,
1102 >     122,   223,    -1,   100,   226,   122,   223,    -1,   219,   226,
1103 >     122,   223,    -1,   220,   226,   122,   223,    -1,   174,   226,
1104 >     107,   223,    -1,    85,   226,   107,   223,    -1,    89,   226,
1105 >     107,   223,    -1,    56,   226,   206,   223,    -1,     4,   225,
1106 >     266,   224,   223,    -1,   266,   267,    -1,   267,    -1,   268,
1107 >      -1,   270,    -1,   269,    -1,     1,   223,    -1,    97,   226,
1108 >     122,   223,    -1,    31,   226,   122,   223,    -1,    24,   226,
1109 >     122,   223,    -1,    -1,    96,   272,   225,   273,   224,   223,
1110 >      -1,   273,   274,    -1,   274,    -1,   275,    -1,   276,    -1,
1111 >       1,   223,    -1,    75,   226,   122,   223,    -1,   166,   226,
1112 >     122,   223,    -1,   173,   225,   278,   224,   223,    -1,   278,
1113 >     279,    -1,   279,    -1,   280,    -1,   281,    -1,     1,   223,
1114 >      -1,   217,   226,   206,   223,    -1,    -1,   282,   166,   225,
1115 >     283,   224,   223,    -1,   283,   284,    -1,   284,    -1,   285,
1116 >      -1,   287,    -1,   286,    -1,     1,   223,    -1,    97,   226,
1117 >     122,   223,    -1,   187,   226,   235,   223,    -1,   187,   226,
1118 >     200,   223,    -1,    -1,   214,   288,   226,   289,   223,    -1,
1119 >     289,   227,   290,    -1,   290,    -1,   218,    -1,   113,    -1,
1120 >      39,    -1,   163,    -1,    68,    -1,    66,    -1,   162,    -1,
1121 >      -1,   113,   292,   225,   293,   224,   223,    -1,   293,   294,
1122 >      -1,   294,    -1,   295,    -1,   296,    -1,   297,    -1,   301,
1123 >      -1,   300,    -1,   298,    -1,   299,    -1,   305,    -1,     1,
1124 >     223,    -1,    97,   226,   122,   223,    -1,   218,   226,   122,
1125 >     223,    -1,   117,   226,   122,   223,    -1,    32,   226,   206,
1126 >     223,    -1,   133,   226,   122,   223,    -1,    17,   226,   122,
1127 >     223,    -1,    -1,   197,   302,   226,   303,   223,    -1,   303,
1128 >     227,   304,    -1,   304,    -1,   157,    -1,   159,    -1,   161,
1129 >      -1,   162,    -1,   167,    -1,    48,    -1,   188,    -1,   175,
1130 >      -1,   179,    -1,   198,    -1,   190,    -1,   164,    -1,   177,
1131 >      -1,   184,    -1,   169,    -1,   203,    -1,   189,    -1,   158,
1132 >      -1,   172,    -1,   176,    -1,   165,    -1,    -1,    62,   306,
1133 >     226,   307,   223,    -1,   307,   227,   308,    -1,   308,    -1,
1134 >      66,   228,   128,    -1,    66,    -1,    18,   228,   128,    -1,
1135 >      18,    -1,   148,   228,   128,    -1,   148,    -1,    68,    -1,
1136 >     215,    -1,   163,    -1,   199,    -1,   222,    -1,    39,    -1,
1137 >      25,    -1,   180,    -1,   127,    -1,     4,    -1,   177,    -1,
1138 >     168,    -1,   204,    -1,   172,    -1,   129,    -1,   185,    -1,
1139 >      94,    -1,    -1,    17,   310,   225,   311,   224,   223,    -1,
1140 >     311,   312,    -1,   312,    -1,   313,    -1,   323,    -1,   324,
1141 >      -1,   314,    -1,   325,    -1,   315,    -1,   316,    -1,   317,
1142 >      -1,   318,    -1,   319,    -1,   320,    -1,   321,    -1,   322,
1143 >      -1,   326,    -1,   327,    -1,   328,    -1,     1,   223,    -1,
1144 >      97,   226,   122,   223,    -1,   120,   226,   233,   223,    -1,
1145 >     109,   226,   107,   223,    -1,    19,   226,   233,   223,    -1,
1146 >      87,   226,   107,   223,    -1,    80,   226,   107,   223,    -1,
1147 >      83,   226,   107,   223,    -1,    81,   226,   107,   223,    -1,
1148 >     142,   226,   235,   223,    -1,   178,   226,   235,   223,    -1,
1149 >      15,   226,   107,   223,    -1,    16,   226,   107,   223,    -1,
1150 >     108,   226,   107,   223,    -1,    91,   226,   233,   223,    -1,
1151 >      82,   226,   233,   223,    -1,    -1,    62,   329,   226,   330,
1152 >     223,    -1,   330,   227,   331,    -1,   331,    -1,   123,    -1,
1153 >      50,    -1,    -1,    74,   333,   225,   338,   224,   223,    -1,
1154 >      -1,    62,   335,   226,   336,   223,    -1,   336,   227,   337,
1155 >      -1,   337,    -1,   191,    -1,    48,    -1,   181,    -1,   338,
1156 >     339,    -1,   339,    -1,   340,    -1,   334,    -1,   344,    -1,
1157 >     345,    -1,     1,   223,    -1,    -1,   121,   226,   342,   341,
1158 >     223,    -1,   342,   227,   343,    -1,   343,    -1,   107,    -1,
1159 >     107,   213,   107,    -1,    60,   226,   122,   223,    -1,    55,
1160 >     226,   122,   223,    -1,    -1,    61,   347,   225,   348,   224,
1161 >     223,    -1,   348,   349,    -1,   349,    -1,   350,    -1,   351,
1162 >      -1,   352,    -1,   354,    -1,   358,    -1,   359,    -1,   360,
1163 >      -1,   353,    -1,     1,   223,    -1,   218,   226,   122,   223,
1164 >      -1,   117,   226,   122,   223,    -1,    17,   226,   122,   223,
1165 >      -1,    32,   226,   206,   223,    -1,    -1,    62,   355,   226,
1166 >     356,   223,    -1,   356,   227,   357,    -1,   357,    -1,   147,
1167 >      -1,    33,    -1,    69,    -1,    98,    -1,    13,    -1,   106,
1168 >      -1,    42,    -1,   131,    -1,   205,    -1,    99,    -1,   146,
1169 >     226,   122,   223,    -1,   126,   226,   122,   223,    -1,   125,
1170 >     226,   107,   223,    -1,    -1,   130,   362,   225,   363,   224,
1171 >     223,    -1,   363,   364,    -1,   364,    -1,   365,    -1,   366,
1172 >      -1,   367,    -1,     1,   223,    -1,    75,   226,   122,   223,
1173 >      -1,   124,   226,   122,   223,    -1,    34,   226,   122,   223,
1174 >      -1,   182,   225,   369,   224,   223,    -1,   369,   370,    -1,
1175 >     370,    -1,   371,    -1,     1,    -1,    97,   226,   122,   223,
1176 >      -1,    -1,   186,   373,   225,   374,   224,   223,    -1,   374,
1177 >     375,    -1,   375,    -1,   376,    -1,   377,    -1,   378,    -1,
1178 >       1,   223,    -1,    97,   226,   122,   223,    -1,   218,   226,
1179 >     122,   223,    -1,    -1,   214,   379,   226,   380,   223,    -1,
1180 >     380,   227,   381,    -1,   381,    -1,    68,    -1,   215,    -1,
1181 >     163,    -1,   199,    -1,   222,    -1,   202,    -1,   130,    -1,
1182 >     201,    -1,   172,    -1,   156,    -1,    -1,   160,   383,   225,
1183 >     384,   224,   223,    -1,   384,   385,    -1,   385,    -1,   386,
1184 >      -1,   387,    -1,     1,   223,    -1,    97,   226,   122,   223,
1185 >      -1,    -1,   214,   388,   226,   389,   223,    -1,   389,   227,
1186 >     390,    -1,   390,    -1,    68,    -1,   215,    -1,   163,    -1,
1187 >     199,    -1,   222,    -1,   202,    -1,   130,    -1,   201,    -1,
1188 >     172,    -1,   156,    -1,    -1,    18,   392,   225,   393,   224,
1189 >     223,    -1,   393,   394,    -1,   394,    -1,   395,    -1,   396,
1190 >      -1,   397,    -1,   398,    -1,   399,    -1,   401,    -1,   400,
1191 >      -1,   410,    -1,   402,    -1,   407,    -1,   408,    -1,   409,
1192 >      -1,   406,    -1,     1,   223,    -1,    97,   226,   122,   223,
1193 >      -1,    55,   226,   122,   223,    -1,   219,   226,   122,   223,
1194 >      -1,   141,   226,   122,   223,    -1,     3,   226,   122,   223,
1195 >      -1,   121,   226,   107,   223,    -1,     5,   226,   170,   223,
1196 >      -1,     5,   226,   171,   223,    -1,    -1,    62,   403,   226,
1197 >     404,   223,    -1,   404,   227,   405,    -1,   405,    -1,     8,
1198 >      -1,   191,    -1,    32,   226,   206,   223,    -1,    57,   226,
1199 >     122,   223,    -1,    72,   226,   122,   223,    -1,    17,   226,
1200 >     122,   223,    -1,   192,   226,   122,   223,    -1,    -1,    66,
1201 >     412,   225,   413,   224,   223,    -1,   413,   414,    -1,   414,
1202 >      -1,   415,    -1,   416,    -1,     1,    -1,   218,   226,   122,
1203 >     223,    -1,   124,   226,   122,   223,    -1,    -1,    23,   418,
1204 >     225,   419,   224,   223,    -1,   419,   420,    -1,   420,    -1,
1205 >     421,    -1,   422,    -1,     1,    -1,    60,   226,   122,   223,
1206 >      -1,   124,   226,   122,   223,    -1,    34,   225,   424,   224,
1207 >     223,    -1,   424,   425,    -1,   425,    -1,   426,    -1,     1,
1208 >      -1,    60,   226,   122,   223,    -1,    -1,    37,   428,   225,
1209 >     429,   224,   223,    -1,   429,   430,    -1,   430,    -1,   431,
1210 >      -1,   432,    -1,     1,    -1,    97,   226,   122,   223,    -1,
1211 >     124,   226,   122,   223,    -1,    38,   225,   434,   224,   223,
1212 >      -1,   434,   435,    -1,   435,    -1,   444,    -1,   445,    -1,
1213 >     447,    -1,   448,    -1,   449,    -1,   450,    -1,   451,    -1,
1214 >     452,    -1,   453,    -1,   454,    -1,   443,    -1,   456,    -1,
1215 >     457,    -1,   471,    -1,   459,    -1,   461,    -1,   463,    -1,
1216 >     462,    -1,   466,    -1,   460,    -1,   467,    -1,   468,    -1,
1217 >     469,    -1,   470,    -1,   483,    -1,   472,    -1,   473,    -1,
1218 >     474,    -1,   479,    -1,   464,    -1,   465,    -1,   489,    -1,
1219 >     487,    -1,   488,    -1,   446,    -1,   478,    -1,   455,    -1,
1220 >     476,    -1,   477,    -1,   442,    -1,   437,    -1,   438,    -1,
1221 >     439,    -1,   440,    -1,   441,    -1,   458,    -1,   436,    -1,
1222 >     475,    -1,     1,    -1,    90,   226,   107,   223,    -1,    41,
1223 >     226,   206,   223,    -1,    40,   226,   233,   223,    -1,    45,
1224 >     226,   233,   223,    -1,    43,   226,   107,   223,    -1,    44,
1225 >     226,   107,   223,    -1,   208,   226,   206,   223,    -1,    67,
1226 >     226,   233,   223,    -1,    54,   226,   206,   223,    -1,    58,
1227 >     226,   206,   223,    -1,    28,   226,   206,   223,    -1,    35,
1228 >     226,   206,   223,    -1,     6,   226,   206,   223,    -1,    86,
1229 >     226,   233,   223,    -1,    84,   226,   107,   223,    -1,    76,
1230 >     226,   107,   223,    -1,     7,   226,   233,   223,    -1,   212,
1231 >     226,   233,   223,    -1,   211,   226,   233,   223,    -1,    47,
1232 >     226,   107,   223,    -1,    59,   226,   206,   223,    -1,   221,
1233 >     226,   206,   223,    -1,   151,   226,   206,   223,    -1,   154,
1234 >     226,   206,   223,    -1,   155,   226,   206,   223,    -1,   153,
1235 >     226,   206,   223,    -1,   153,   226,   209,   223,    -1,   152,
1236 >     226,   206,   223,    -1,   152,   226,   209,   223,    -1,   115,
1237 >     226,   233,   223,    -1,    12,   226,   233,   223,    -1,   114,
1238 >     226,   206,   223,    -1,   116,   226,   233,   223,    -1,   145,
1239 >     226,   206,   223,    -1,   105,   226,   206,   223,    -1,   210,
1240 >     226,   206,   223,    -1,   111,   226,   206,   223,    -1,    29,
1241 >     226,   107,   223,    -1,    88,   226,   107,   223,    -1,   216,
1242 >     226,   206,   223,    -1,    30,   226,   122,   223,    -1,   183,
1243 >     226,   122,   223,    -1,   119,   226,   206,   223,    -1,    26,
1244 >     226,   206,   223,    -1,   207,   226,   233,   223,    -1,    -1,
1245 >     112,   480,   226,   481,   223,    -1,   481,   227,   482,    -1,
1246 >     482,    -1,   157,    -1,   159,    -1,   161,    -1,   162,    -1,
1247 >     167,    -1,    48,    -1,   188,    -1,   175,    -1,   179,    -1,
1248 >     198,    -1,   190,    -1,   164,    -1,   177,    -1,   184,    -1,
1249 >     169,    -1,   203,    -1,   189,    -1,   158,    -1,   172,    -1,
1250 >     176,    -1,   165,    -1,    -1,   110,   484,   226,   485,   223,
1251 >      -1,   485,   227,   486,    -1,   486,    -1,   157,    -1,   159,
1252 >      -1,   161,    -1,   162,    -1,   167,    -1,   188,    -1,    48,
1253 >      -1,   175,    -1,   179,    -1,   198,    -1,   190,    -1,   164,
1254 >      -1,   177,    -1,   184,    -1,   169,    -1,   203,    -1,   189,
1255 >      -1,   158,    -1,   172,    -1,   176,    -1,   165,    -1,    92,
1256 >     226,   107,   223,    -1,    93,   226,   107,   223,    -1,    20,
1257 >     226,   107,   223,    -1,    14,   225,   491,   224,   223,    -1,
1258 >     491,   492,    -1,   492,    -1,   498,    -1,   494,    -1,   495,
1259 >      -1,   496,    -1,   497,    -1,   499,    -1,   500,    -1,   501,
1260 >      -1,   502,    -1,   503,    -1,   504,    -1,   493,    -1,     1,
1261 >      -1,    27,   226,   206,   223,    -1,    70,   226,   233,   223,
1262 >      -1,    71,   226,   233,   223,    -1,    79,   226,   107,   223,
1263 >      -1,    78,   226,   107,   223,    -1,    77,   226,   107,   223,
1264 >      -1,    22,   226,   107,   223,    -1,    21,   226,   107,   223,
1265 >      -1,   103,   226,   206,   223,    -1,   104,   226,   206,   223,
1266 >      -1,    64,   226,   107,   223,    -1,    65,   226,   233,   223,
1267 >      -1,   143,   225,   506,   224,   223,    -1,   506,   507,    -1,
1268 >     507,    -1,   508,    -1,   509,    -1,   510,    -1,   512,    -1,
1269 >     513,    -1,   511,    -1,   514,    -1,     1,    -1,    36,   226,
1270 >     206,   223,    -1,    52,   226,   206,   223,    -1,    53,   226,
1271 >     206,   223,    -1,    49,   226,   122,   223,    -1,    73,   226,
1272 >     233,   223,    -1,    48,   226,   206,   223,    -1,    51,   226,
1273 >     206,   223,    -1
1274   };
1275  
1276   /* YYRLINE[YYN] -- source line where rule number YYN was defined.  */
1277   static const yytype_uint16 yyrline[] =
1278   {
1279 <       0,   403,   403,   404,   407,   408,   409,   410,   411,   412,
1280 <     413,   414,   415,   416,   417,   418,   419,   420,   421,   422,
1281 <     423,   424,   425,   426,   427,   428,   432,   432,   433,   437,
1282 <     441,   445,   449,   453,   459,   459,   460,   461,   462,   463,
1283 <     470,   473,   473,   474,   474,   474,   476,   484,   493,   495,
1284 <     495,   496,   496,   497,   497,   498,   498,   499,   500,   500,
1285 <     501,   501,   502,   503,   507,   506,   521,   521,   522,   526,
1286 <     532,   566,   626,   640,   655,   664,   678,   687,   715,   745,
1287 <     768,   790,   792,   792,   793,   793,   794,   794,   796,   805,
1288 <     814,   827,   829,   830,   832,   832,   833,   834,   834,   835,
1289 <     835,   836,   836,   837,   837,   838,   839,   841,   845,   849,
1290 <     856,   863,   870,   877,   884,   891,   898,   905,   909,   913,
1291 <     917,   921,   925,   929,   935,   945,   944,  1038,  1038,  1039,
1292 <    1039,  1040,  1040,  1040,  1040,  1041,  1041,  1042,  1042,  1042,
1293 <    1043,  1043,  1043,  1044,  1044,  1044,  1045,  1045,  1045,  1045,
1294 <    1046,  1046,  1047,  1047,  1049,  1061,  1073,  1107,  1119,  1130,
1295 <    1172,  1182,  1181,  1187,  1187,  1188,  1192,  1196,  1200,  1204,
1296 <    1208,  1212,  1216,  1220,  1224,  1228,  1232,  1236,  1240,  1244,
1297 <    1248,  1252,  1256,  1260,  1266,  1277,  1288,  1299,  1310,  1321,
1298 <    1332,  1343,  1354,  1365,  1376,  1387,  1398,  1409,  1421,  1420,
1299 <    1424,  1424,  1425,  1425,  1426,  1426,  1428,  1435,  1442,  1449,
1300 <    1456,  1463,  1470,  1477,  1484,  1491,  1498,  1505,  1512,  1519,
1301 <    1526,  1533,  1547,  1546,  1596,  1596,  1598,  1598,  1599,  1600,
1302 <    1600,  1601,  1602,  1603,  1604,  1605,  1606,  1607,  1608,  1609,
1303 <    1610,  1611,  1613,  1622,  1631,  1637,  1643,  1649,  1655,  1661,
1304 <    1667,  1673,  1679,  1685,  1691,  1697,  1707,  1706,  1723,  1722,
1305 <    1727,  1727,  1728,  1732,  1736,  1744,  1744,  1745,  1745,  1745,
1306 <    1745,  1745,  1747,  1747,  1749,  1749,  1751,  1765,  1785,  1794,
1307 <    1807,  1806,  1875,  1875,  1876,  1876,  1876,  1876,  1877,  1877,
1308 <    1878,  1878,  1878,  1879,  1879,  1880,  1880,  1880,  1881,  1881,
1309 <    1881,  1883,  1920,  1933,  1944,  1953,  1965,  1964,  1968,  1968,
1310 <    1969,  1969,  1970,  1970,  1972,  1980,  1987,  1994,  2001,  2008,
1311 <    2015,  2022,  2029,  2036,  2045,  2056,  2067,  2078,  2089,  2100,
1312 <    2112,  2131,  2141,  2150,  2166,  2165,  2181,  2181,  2182,  2182,
1313 <    2182,  2182,  2184,  2193,  2208,  2222,  2221,  2237,  2237,  2238,
1314 <    2238,  2238,  2238,  2240,  2249,  2272,  2271,  2277,  2277,  2278,
1315 <    2282,  2286,  2290,  2294,  2298,  2302,  2306,  2310,  2314,  2318,
1316 <    2328,  2327,  2344,  2344,  2345,  2345,  2345,  2347,  2354,  2353,
1317 <    2359,  2359,  2360,  2364,  2368,  2372,  2376,  2380,  2384,  2388,
1318 <    2392,  2396,  2400,  2410,  2409,  2555,  2555,  2556,  2556,  2557,
1319 <    2557,  2557,  2558,  2558,  2559,  2559,  2560,  2560,  2560,  2561,
1320 <    2561,  2561,  2562,  2562,  2562,  2563,  2563,  2564,  2564,  2566,
1321 <    2578,  2590,  2599,  2625,  2643,  2661,  2667,  2671,  2679,  2689,
1322 <    2688,  2692,  2692,  2693,  2693,  2694,  2694,  2696,  2707,  2714,
1323 <    2721,  2728,  2738,  2779,  2790,  2801,  2816,  2827,  2838,  2851,
1324 <    2864,  2873,  2909,  2908,  2972,  2971,  2975,  2975,  2976,  2982,
1325 <    2982,  2983,  2983,  2983,  2983,  2985,  3004,  3014,  3013,  3036,
1326 <    3036,  3037,  3037,  3037,  3039,  3045,  3054,  3056,  3056,  3057,
1327 <    3057,  3059,  3078,  3077,  3125,  3124,  3128,  3128,  3129,  3135,
1328 <    3135,  3136,  3136,  3136,  3136,  3138,  3144,  3153,  3156,  3156,
1329 <    3157,  3157,  3158,  3158,  3159,  3159,  3160,  3160,  3161,  3161,
1330 <    3162,  3162,  3163,  3163,  3164,  3164,  3165,  3165,  3166,  3166,
1331 <    3167,  3167,  3168,  3168,  3169,  3169,  3170,  3170,  3171,  3171,
1332 <    3172,  3172,  3173,  3173,  3174,  3174,  3175,  3175,  3176,  3176,
1333 <    3177,  3178,  3178,  3179,  3179,  3180,  3180,  3181,  3181,  3182,
1334 <    3182,  3183,  3183,  3184,  3184,  3185,  3186,  3189,  3194,  3199,
1335 <    3204,  3209,  3214,  3219,  3224,  3229,  3234,  3239,  3244,  3249,
1336 <    3254,  3259,  3264,  3269,  3274,  3279,  3285,  3296,  3301,  3310,
1337 <    3315,  3320,  3325,  3330,  3335,  3338,  3343,  3346,  3351,  3356,
1338 <    3361,  3366,  3371,  3376,  3381,  3386,  3391,  3402,  3407,  3412,
1339 <    3417,  3426,  3458,  3476,  3481,  3490,  3495,  3500,  3506,  3505,
1340 <    3510,  3510,  3511,  3514,  3517,  3520,  3523,  3526,  3529,  3532,
1341 <    3535,  3538,  3541,  3544,  3547,  3550,  3553,  3556,  3559,  3562,
1342 <    3565,  3571,  3570,  3575,  3575,  3576,  3579,  3582,  3585,  3588,
1343 <    3591,  3594,  3597,  3600,  3603,  3606,  3609,  3612,  3615,  3618,
1438 <    3621,  3624,  3627,  3630,  3635,  3640,  3645,  3650,  3655,  3664,
1439 <    3663,  3687,  3687,  3688,  3689,  3690,  3691,  3692,  3693,  3694,
1440 <    3696,  3702,  3709,  3708,  3713,  3713,  3714,  3718,  3724,  3758,
1441 <    3768,  3767,  3817,  3817,  3818,  3822,  3831,  3834,  3834,  3835,
1442 <    3835,  3836,  3836,  3837,  3837,  3838,  3838,  3839,  3839,  3840,
1443 <    3841,  3841,  3842,  3842,  3843,  3843,  3844,  3844,  3846,  3851,
1444 <    3856,  3861,  3866,  3871,  3876,  3881,  3886,  3891,  3896,  3901,
1445 <    3906,  3911,  3916,  3921,  3926,  3931,  3939,  3942,  3942,  3943,
1446 <    3943,  3944,  3945,  3946,  3946,  3947,  3948,  3950,  3956,  3962,
1447 <    3971,  3985,  3991,  3997
1279 >       0,   365,   365,   366,   369,   370,   371,   372,   373,   374,
1280 >     375,   376,   377,   378,   379,   380,   381,   382,   383,   384,
1281 >     385,   386,   387,   388,   389,   390,   391,   395,   395,   396,
1282 >     400,   404,   408,   412,   416,   420,   424,   430,   430,   431,
1283 >     432,   433,   434,   441,   444,   444,   445,   445,   445,   447,
1284 >     453,   460,   462,   462,   463,   463,   464,   464,   465,   465,
1285 >     466,   466,   467,   467,   468,   468,   469,   469,   470,   470,
1286 >     471,   472,   475,   476,   478,   478,   479,   485,   493,   493,
1287 >     494,   500,   508,   550,   609,   637,   645,   660,   675,   684,
1288 >     698,   707,   735,   765,   790,   812,   834,   843,   845,   845,
1289 >     846,   846,   847,   847,   849,   858,   867,   880,   879,   897,
1290 >     897,   898,   898,   898,   900,   906,   915,   916,   916,   918,
1291 >     918,   919,   921,   928,   928,   941,   942,   944,   944,   945,
1292 >     945,   947,   955,   958,   964,   963,   969,   969,   970,   974,
1293 >     978,   982,   986,   990,   994,  1005,  1004,  1081,  1081,  1082,
1294 >    1082,  1082,  1083,  1083,  1083,  1084,  1084,  1084,  1086,  1092,
1295 >    1098,  1104,  1115,  1121,  1128,  1127,  1133,  1133,  1134,  1138,
1296 >    1142,  1146,  1150,  1154,  1158,  1162,  1166,  1170,  1174,  1178,
1297 >    1182,  1186,  1190,  1194,  1198,  1202,  1206,  1210,  1214,  1221,
1298 >    1220,  1226,  1226,  1227,  1231,  1235,  1239,  1243,  1247,  1251,
1299 >    1255,  1259,  1263,  1267,  1271,  1275,  1279,  1283,  1287,  1291,
1300 >    1295,  1299,  1303,  1307,  1311,  1315,  1326,  1325,  1386,  1386,
1301 >    1387,  1388,  1388,  1389,  1390,  1391,  1392,  1393,  1394,  1395,
1302 >    1396,  1397,  1397,  1398,  1399,  1400,  1401,  1403,  1409,  1415,
1303 >    1421,  1427,  1433,  1439,  1445,  1451,  1457,  1464,  1470,  1476,
1304 >    1482,  1491,  1501,  1500,  1506,  1506,  1507,  1511,  1522,  1521,
1305 >    1528,  1527,  1532,  1532,  1533,  1537,  1541,  1547,  1547,  1548,
1306 >    1548,  1548,  1548,  1548,  1550,  1550,  1552,  1552,  1554,  1568,
1307 >    1588,  1594,  1604,  1603,  1645,  1645,  1646,  1646,  1646,  1646,
1308 >    1647,  1647,  1647,  1648,  1648,  1650,  1656,  1662,  1668,  1680,
1309 >    1679,  1685,  1685,  1686,  1690,  1694,  1698,  1702,  1706,  1710,
1310 >    1714,  1718,  1722,  1728,  1742,  1751,  1765,  1764,  1779,  1779,
1311 >    1780,  1780,  1780,  1780,  1782,  1788,  1794,  1804,  1806,  1806,
1312 >    1807,  1807,  1809,  1825,  1824,  1849,  1849,  1850,  1850,  1850,
1313 >    1850,  1852,  1858,  1878,  1877,  1883,  1883,  1884,  1888,  1892,
1314 >    1896,  1900,  1904,  1908,  1912,  1916,  1920,  1930,  1929,  1950,
1315 >    1950,  1951,  1951,  1951,  1953,  1960,  1959,  1965,  1965,  1966,
1316 >    1970,  1974,  1978,  1982,  1986,  1990,  1994,  1998,  2002,  2012,
1317 >    2011,  2077,  2077,  2078,  2078,  2078,  2079,  2079,  2080,  2080,
1318 >    2080,  2081,  2081,  2081,  2082,  2082,  2083,  2085,  2091,  2097,
1319 >    2103,  2116,  2129,  2135,  2139,  2148,  2147,  2152,  2152,  2153,
1320 >    2157,  2163,  2174,  2180,  2186,  2192,  2208,  2207,  2233,  2233,
1321 >    2234,  2234,  2234,  2236,  2256,  2266,  2265,  2292,  2292,  2293,
1322 >    2293,  2293,  2295,  2301,  2310,  2312,  2312,  2313,  2313,  2315,
1323 >    2333,  2332,  2355,  2355,  2356,  2356,  2356,  2358,  2364,  2373,
1324 >    2376,  2376,  2377,  2377,  2378,  2378,  2379,  2379,  2380,  2380,
1325 >    2381,  2381,  2382,  2383,  2384,  2384,  2385,  2385,  2386,  2386,
1326 >    2387,  2387,  2388,  2388,  2389,  2389,  2390,  2390,  2391,  2391,
1327 >    2392,  2392,  2393,  2393,  2394,  2394,  2395,  2396,  2396,  2397,
1328 >    2398,  2399,  2399,  2400,  2400,  2401,  2402,  2403,  2404,  2404,
1329 >    2405,  2408,  2413,  2419,  2425,  2431,  2436,  2441,  2446,  2451,
1330 >    2456,  2461,  2466,  2471,  2476,  2481,  2486,  2491,  2496,  2501,
1331 >    2507,  2518,  2523,  2528,  2533,  2538,  2543,  2546,  2551,  2554,
1332 >    2559,  2564,  2569,  2574,  2579,  2584,  2589,  2594,  2599,  2604,
1333 >    2609,  2614,  2623,  2632,  2637,  2642,  2648,  2647,  2652,  2652,
1334 >    2653,  2656,  2659,  2662,  2665,  2668,  2671,  2674,  2677,  2680,
1335 >    2683,  2686,  2689,  2692,  2695,  2698,  2701,  2704,  2707,  2710,
1336 >    2713,  2719,  2718,  2723,  2723,  2724,  2727,  2730,  2733,  2736,
1337 >    2739,  2742,  2745,  2748,  2751,  2754,  2757,  2760,  2763,  2766,
1338 >    2769,  2772,  2775,  2778,  2781,  2784,  2789,  2794,  2799,  2808,
1339 >    2811,  2811,  2812,  2813,  2813,  2814,  2814,  2815,  2816,  2817,
1340 >    2818,  2819,  2819,  2820,  2820,  2822,  2827,  2832,  2837,  2842,
1341 >    2847,  2852,  2857,  2862,  2867,  2872,  2877,  2885,  2888,  2888,
1342 >    2889,  2889,  2890,  2891,  2892,  2892,  2893,  2894,  2896,  2902,
1343 >    2908,  2914,  2923,  2937,  2943
1344   };
1345   #endif
1346  
1347 < #if YYDEBUG || YYERROR_VERBOSE || YYTOKEN_TABLE
1347 > #if YYDEBUG || YYERROR_VERBOSE || 0
1348   /* YYTNAME[SYMBOL-NUM] -- String name of the symbol SYMBOL-NUM.
1349     First, the terminals, then, starting at YYNTOKENS, nonterminals.  */
1350   static const char *const yytname[] =
1351   {
1352 <  "$end", "error", "$undefined", "ACCEPT_PASSWORD", "ACTION", "ADMIN",
1353 <  "AFTYPE", "T_ALLOW", "ANTI_NICK_FLOOD", "ANTI_SPAM_EXIT_MESSAGE_TIME",
1354 <  "AUTOCONN", "T_BLOCK", "BURST_AWAY", "BURST_TOPICWHO", "BYTES", "KBYTES",
1355 <  "MBYTES", "GBYTES", "TBYTES", "CALLER_ID_WAIT", "CAN_FLOOD", "CAN_IDLE",
1356 <  "CHANNEL", "CIDR_BITLEN_IPV4", "CIDR_BITLEN_IPV6", "CIPHER_PREFERENCE",
1357 <  "CLASS", "COMPRESSED", "COMPRESSION_LEVEL", "CONNECT", "CONNECTFREQ",
1358 <  "CRYPTLINK", "DEFAULT_CIPHER_PREFERENCE", "DEFAULT_FLOODCOUNT",
1359 <  "DEFAULT_SPLIT_SERVER_COUNT", "DEFAULT_SPLIT_USER_COUNT", "DENY",
1360 <  "DESCRIPTION", "DIE", "DISABLE_AUTH", "DISABLE_FAKE_CHANNELS",
1361 <  "DISABLE_HIDDEN", "DISABLE_LOCAL_CHANNELS", "DISABLE_REMOTE_COMMANDS",
1362 <  "DOT_IN_IP6_ADDR", "DOTS_IN_IDENT", "DURATION", "EGDPOOL_PATH", "EMAIL",
1363 <  "ENABLE", "ENCRYPTED", "EXCEED_LIMIT", "EXEMPT", "FAILED_OPER_NOTICE",
1364 <  "FAKENAME", "IRCD_FLAGS", "FLATTEN_LINKS", "FFAILED_OPERLOG", "FKILLLOG",
1365 <  "FKLINELOG", "FGLINELOG", "FIOERRLOG", "FOPERLOG", "FOPERSPYLOG",
1366 <  "FUSERLOG", "GECOS", "GENERAL", "GLINE", "GLINES", "GLINE_EXEMPT",
1367 <  "GLINE_LOG", "GLINE_TIME", "GLINE_MIN_CIDR", "GLINE_MIN_CIDR6",
1368 <  "GLOBAL_KILL", "IRCD_AUTH", "NEED_IDENT", "HAVENT_READ_CONF", "HIDDEN",
1369 <  "HIDDEN_ADMIN", "HIDDEN_NAME", "HIDDEN_OPER", "HIDE_SERVER_IPS",
1370 <  "HIDE_SERVERS", "HIDE_SPOOF_IPS", "HOST", "HUB", "HUB_MASK", "IDLETIME",
1371 <  "IGNORE_BOGUS_TS", "INVISIBLE_ON_CONNECT", "IP", "KILL",
1372 <  "KILL_CHASE_TIME_LIMIT", "KLINE", "KLINE_EXEMPT", "KLINE_REASON",
1373 <  "KLINE_WITH_REASON", "KNOCK_DELAY", "KNOCK_DELAY_CHANNEL", "LEAF_MASK",
1374 <  "LINKS_DELAY", "LISTEN", "T_LOG", "LOGGING", "LOG_LEVEL", "MAX_ACCEPT",
1375 <  "MAX_BANS", "MAX_CHANS_PER_USER", "MAX_GLOBAL", "MAX_IDENT", "MAX_LOCAL",
1376 <  "MAX_NICK_CHANGES", "MAX_NICK_TIME", "MAX_NUMBER", "MAX_TARGETS",
1377 <  "MAX_WATCH", "MESSAGE_LOCALE", "MIN_NONWILDCARD",
1378 <  "MIN_NONWILDCARD_SIMPLE", "MODULE", "MODULES", "NAME", "NEED_PASSWORD",
1379 <  "NETWORK_DESC", "NETWORK_NAME", "NICK", "NICK_CHANGES",
1380 <  "NO_CREATE_ON_SPLIT", "NO_JOIN_ON_SPLIT", "NO_OPER_FLOOD", "NO_TILDE",
1381 <  "NOT", "NUMBER", "NUMBER_PER_IDENT", "NUMBER_PER_CIDR", "NUMBER_PER_IP",
1382 <  "NUMBER_PER_IP_GLOBAL", "OPERATOR", "OPERS_BYPASS_CALLERID", "OPER_LOG",
1383 <  "OPER_ONLY_UMODES", "OPER_PASS_RESV", "OPER_SPY_T", "OPER_UMODES",
1384 <  "JOIN_FLOOD_COUNT", "JOIN_FLOOD_TIME", "PACE_WAIT", "PACE_WAIT_SIMPLE",
1385 <  "PASSWORD", "PATH", "PING_COOKIE", "PING_TIME", "PING_WARNING", "PORT",
1386 <  "QSTRING", "QUIET_ON_BAN", "REASON", "REDIRPORT", "REDIRSERV", "REGEX_T",
1387 <  "REHASH", "TREJECT_HOLD_TIME", "REMOTE", "REMOTEBAN",
1388 <  "RESTRICT_CHANNELS", "RESTRICTED", "RSA_PRIVATE_KEY_FILE",
1389 <  "RSA_PUBLIC_KEY_FILE", "SSL_CERTIFICATE_FILE", "T_SSL_CONNECTION_METHOD",
1390 <  "T_SSLV3", "T_TLSV1", "RESV", "RESV_EXEMPT", "SECONDS", "MINUTES",
1391 <  "HOURS", "DAYS", "WEEKS", "SENDQ", "SEND_PASSWORD", "SERVERHIDE",
1392 <  "SERVERINFO", "SERVLINK_PATH", "IRCD_SID", "TKLINE_EXPIRE_NOTICES",
1393 <  "T_SHARED", "T_CLUSTER", "TYPE", "SHORT_MOTD", "SILENT", "SPOOF",
1394 <  "SPOOF_NOTICE", "STATS_E_DISABLED", "STATS_I_OPER_ONLY",
1395 <  "STATS_K_OPER_ONLY", "STATS_O_OPER_ONLY", "STATS_P_OPER_ONLY", "TBOOL",
1396 <  "TMASKED", "T_REJECT", "TS_MAX_DELTA", "TS_WARN_DELTA", "TWODOTS",
1397 <  "T_ALL", "T_BOTS", "T_SOFTCALLERID", "T_CALLERID", "T_CCONN",
1398 <  "T_CCONN_FULL", "T_CLIENT_FLOOD", "T_DEAF", "T_DEBUG", "T_DRONE",
1399 <  "T_EXTERNAL", "T_FULL", "T_INVISIBLE", "T_IPV4", "T_IPV6", "T_LOCOPS",
1400 <  "T_LOGPATH", "T_L_CRIT", "T_L_DEBUG", "T_L_ERROR", "T_L_INFO",
1505 <  "T_L_NOTICE", "T_L_TRACE", "T_L_WARN", "T_MAX_CLIENTS", "T_NCHANGE",
1506 <  "T_OPERWALL", "T_REJ", "T_SERVER", "T_SERVNOTICE", "T_SKILL", "T_SPY",
1507 <  "T_SSL", "T_UMODES", "T_UNAUTH", "T_UNRESV", "T_UNXLINE", "T_WALLOP",
1508 <  "THROTTLE_TIME", "TOPICBURST", "TRUE_NO_OPER_FLOOD", "TKLINE", "TXLINE",
1509 <  "TRESV", "UNKLINE", "USER", "USE_EGD", "USE_EXCEPT", "USE_INVEX",
1510 <  "USE_KNOCK", "USE_LOGGING", "USE_WHOIS_ACTUALLY", "VHOST", "VHOST6",
1511 <  "XLINE", "WARN", "WARN_NO_NLINE", "';'", "'}'", "'{'", "'='", "','",
1352 >  "$end", "error", "$undefined", "ACCEPT_PASSWORD", "ADMIN", "AFTYPE",
1353 >  "ANTI_NICK_FLOOD", "ANTI_SPAM_EXIT_MESSAGE_TIME", "AUTOCONN", "BYTES",
1354 >  "KBYTES", "MBYTES", "CALLER_ID_WAIT", "CAN_FLOOD", "CHANNEL",
1355 >  "CIDR_BITLEN_IPV4", "CIDR_BITLEN_IPV6", "CLASS", "CONNECT",
1356 >  "CONNECTFREQ", "DEFAULT_FLOODCOUNT", "DEFAULT_SPLIT_SERVER_COUNT",
1357 >  "DEFAULT_SPLIT_USER_COUNT", "DENY", "DESCRIPTION", "DIE", "DISABLE_AUTH",
1358 >  "DISABLE_FAKE_CHANNELS", "DISABLE_REMOTE_COMMANDS", "DOTS_IN_IDENT",
1359 >  "EGDPOOL_PATH", "EMAIL", "ENCRYPTED", "EXCEED_LIMIT", "EXEMPT",
1360 >  "FAILED_OPER_NOTICE", "FLATTEN_LINKS", "GECOS", "GENERAL", "GLINE",
1361 >  "GLINE_DURATION", "GLINE_ENABLE", "GLINE_EXEMPT", "GLINE_MIN_CIDR",
1362 >  "GLINE_MIN_CIDR6", "GLINE_REQUEST_DURATION", "GLOBAL_KILL",
1363 >  "HAVENT_READ_CONF", "HIDDEN", "HIDDEN_NAME", "HIDE_IDLE_FROM_OPERS",
1364 >  "HIDE_SERVER_IPS", "HIDE_SERVERS", "HIDE_SERVICES", "HIDE_SPOOF_IPS",
1365 >  "HOST", "HUB", "HUB_MASK", "IGNORE_BOGUS_TS", "INVISIBLE_ON_CONNECT",
1366 >  "IP", "IRCD_AUTH", "IRCD_FLAGS", "IRCD_SID", "JOIN_FLOOD_COUNT",
1367 >  "JOIN_FLOOD_TIME", "KILL", "KILL_CHASE_TIME_LIMIT", "KLINE",
1368 >  "KLINE_EXEMPT", "KNOCK_DELAY", "KNOCK_DELAY_CHANNEL", "LEAF_MASK",
1369 >  "LINKS_DELAY", "LISTEN", "MASK", "MAX_ACCEPT", "MAX_BANS",
1370 >  "MAX_CHANS_PER_OPER", "MAX_CHANS_PER_USER", "MAX_GLOBAL", "MAX_IDENT",
1371 >  "MAX_IDLE", "MAX_LOCAL", "MAX_NICK_CHANGES", "MAX_NICK_LENGTH",
1372 >  "MAX_NICK_TIME", "MAX_NUMBER", "MAX_TARGETS", "MAX_TOPIC_LENGTH",
1373 >  "MAX_WATCH", "MIN_IDLE", "MIN_NONWILDCARD", "MIN_NONWILDCARD_SIMPLE",
1374 >  "MODULE", "MODULES", "MOTD", "NAME", "NEED_IDENT", "NEED_PASSWORD",
1375 >  "NETWORK_DESC", "NETWORK_NAME", "NICK", "NO_CREATE_ON_SPLIT",
1376 >  "NO_JOIN_ON_SPLIT", "NO_OPER_FLOOD", "NO_TILDE", "NUMBER",
1377 >  "NUMBER_PER_CIDR", "NUMBER_PER_IP", "OPER_ONLY_UMODES", "OPER_PASS_RESV",
1378 >  "OPER_UMODES", "OPERATOR", "OPERS_BYPASS_CALLERID", "PACE_WAIT",
1379 >  "PACE_WAIT_SIMPLE", "PASSWORD", "PATH", "PING_COOKIE", "PING_TIME",
1380 >  "PORT", "QSTRING", "RANDOM_IDLE", "REASON", "REDIRPORT", "REDIRSERV",
1381 >  "REHASH", "REMOTE", "REMOTEBAN", "RESV", "RESV_EXEMPT",
1382 >  "RSA_PRIVATE_KEY_FILE", "RSA_PUBLIC_KEY_FILE", "SECONDS", "MINUTES",
1383 >  "HOURS", "DAYS", "WEEKS", "MONTHS", "YEARS", "SEND_PASSWORD", "SENDQ",
1384 >  "SERVERHIDE", "SERVERINFO", "SHORT_MOTD", "SPOOF", "SPOOF_NOTICE",
1385 >  "SQUIT", "SSL_CERTIFICATE_FILE", "SSL_DH_PARAM_FILE", "STATS_E_DISABLED",
1386 >  "STATS_I_OPER_ONLY", "STATS_K_OPER_ONLY", "STATS_O_OPER_ONLY",
1387 >  "STATS_P_OPER_ONLY", "T_ALL", "T_BOTS", "T_CALLERID", "T_CCONN",
1388 >  "T_CLUSTER", "T_DEAF", "T_DEBUG", "T_DLINE", "T_EXTERNAL",
1389 >  "T_FARCONNECT", "T_FILE", "T_FULL", "T_GLOBOPS", "T_INVISIBLE", "T_IPV4",
1390 >  "T_IPV6", "T_LOCOPS", "T_LOG", "T_MAX_CLIENTS", "T_NCHANGE",
1391 >  "T_NONONREG", "T_OPERWALL", "T_RECVQ", "T_REJ", "T_RESTART", "T_SERVER",
1392 >  "T_SERVICE", "T_SERVICES_NAME", "T_SERVNOTICE", "T_SET", "T_SHARED",
1393 >  "T_SIZE", "T_SKILL", "T_SOFTCALLERID", "T_SPY", "T_SSL",
1394 >  "T_SSL_CIPHER_LIST", "T_SSL_CLIENT_METHOD", "T_SSL_SERVER_METHOD",
1395 >  "T_SSLV3", "T_TLSV1", "T_UMODES", "T_UNAUTH", "T_UNDLINE", "T_UNLIMITED",
1396 >  "T_UNRESV", "T_UNXLINE", "T_WALLOP", "T_WALLOPS", "T_WEBIRC", "TBOOL",
1397 >  "THROTTLE_TIME", "TKLINE_EXPIRE_NOTICES", "TMASKED",
1398 >  "TRUE_NO_OPER_FLOOD", "TS_MAX_DELTA", "TS_WARN_DELTA", "TWODOTS", "TYPE",
1399 >  "UNKLINE", "USE_EGD", "USE_LOGGING", "USER", "VHOST", "VHOST6",
1400 >  "WARN_NO_NLINE", "XLINE", "';'", "'}'", "'{'", "'='", "','", "':'",
1401    "$accept", "conf", "conf_item", "timespec_", "timespec", "sizespec_",
1402    "sizespec", "modules_entry", "modules_items", "modules_item",
1403    "modules_module", "modules_path", "serverinfo_entry", "serverinfo_items",
1404 <  "serverinfo_item", "serverinfo_ssl_connection_method", "$@1",
1405 <  "method_types", "method_type_item", "serverinfo_ssl_certificate_file",
1406 <  "serverinfo_rsa_private_key_file", "serverinfo_name", "serverinfo_sid",
1404 >  "serverinfo_item", "serverinfo_ssl_client_method",
1405 >  "serverinfo_ssl_server_method", "client_method_types",
1406 >  "client_method_type_item", "server_method_types",
1407 >  "server_method_type_item", "serverinfo_ssl_certificate_file",
1408 >  "serverinfo_rsa_private_key_file", "serverinfo_ssl_dh_param_file",
1409 >  "serverinfo_ssl_cipher_list", "serverinfo_name", "serverinfo_sid",
1410    "serverinfo_description", "serverinfo_network_name",
1411    "serverinfo_network_desc", "serverinfo_vhost", "serverinfo_vhost6",
1412 <  "serverinfo_max_clients", "serverinfo_hub", "admin_entry", "admin_items",
1413 <  "admin_item", "admin_name", "admin_email", "admin_description",
1414 <  "logging_entry", "logging_items", "logging_item", "logging_path",
1415 <  "logging_oper_log", "logging_fuserlog", "logging_ffailed_operlog",
1416 <  "logging_foperlog", "logging_foperspylog", "logging_fglinelog",
1417 <  "logging_fklinelog", "logging_ioerrlog", "logging_killlog",
1418 <  "logging_log_level", "logging_use_logging", "oper_entry", "$@2",
1419 <  "oper_name_b", "oper_items", "oper_item", "oper_name", "oper_name_t",
1420 <  "oper_user", "oper_password", "oper_encrypted",
1421 <  "oper_rsa_public_key_file", "oper_class", "oper_umodes", "$@3",
1422 <  "oper_umodes_items", "oper_umodes_item", "oper_global_kill",
1423 <  "oper_remote", "oper_remoteban", "oper_kline", "oper_xline",
1424 <  "oper_unkline", "oper_gline", "oper_nick_changes", "oper_die",
1425 <  "oper_rehash", "oper_admin", "oper_hidden_admin", "oper_hidden_oper",
1426 <  "oper_operwall", "oper_flags", "$@4", "oper_flags_items",
1427 <  "oper_flags_item", "$@5", "$@6", "oper_flags_item_atom", "class_entry",
1428 <  "$@7", "class_name_b", "class_items", "class_item", "class_name",
1537 <  "class_name_t", "class_ping_time", "class_ping_warning",
1538 <  "class_number_per_ip", "class_connectfreq", "class_max_number",
1539 <  "class_max_global", "class_max_local", "class_max_ident", "class_sendq",
1412 >  "serverinfo_max_clients", "serverinfo_max_nick_length",
1413 >  "serverinfo_max_topic_length", "serverinfo_hub", "admin_entry",
1414 >  "admin_items", "admin_item", "admin_name", "admin_email",
1415 >  "admin_description", "motd_entry", "$@1", "motd_items", "motd_item",
1416 >  "motd_mask", "motd_file", "logging_entry", "logging_items",
1417 >  "logging_item", "logging_use_logging", "logging_file_entry", "$@2",
1418 >  "logging_file_items", "logging_file_item", "logging_file_name",
1419 >  "logging_file_size", "logging_file_type", "$@3",
1420 >  "logging_file_type_items", "logging_file_type_item", "oper_entry", "$@4",
1421 >  "oper_items", "oper_item", "oper_name", "oper_user", "oper_password",
1422 >  "oper_encrypted", "oper_rsa_public_key_file", "oper_class",
1423 >  "oper_umodes", "$@5", "oper_umodes_items", "oper_umodes_item",
1424 >  "oper_flags", "$@6", "oper_flags_items", "oper_flags_item",
1425 >  "class_entry", "$@7", "class_items", "class_item", "class_name",
1426 >  "class_ping_time", "class_number_per_ip", "class_connectfreq",
1427 >  "class_max_number", "class_max_global", "class_max_local",
1428 >  "class_max_ident", "class_sendq", "class_recvq",
1429    "class_cidr_bitlen_ipv4", "class_cidr_bitlen_ipv6",
1430 <  "class_number_per_cidr", "listen_entry", "$@8", "listen_flags", "$@9",
1431 <  "listen_flags_items", "listen_flags_item", "listen_items", "listen_item",
1432 <  "listen_port", "$@10", "port_items", "port_item", "listen_address",
1433 <  "listen_host", "auth_entry", "$@11", "auth_items", "auth_item",
1434 <  "auth_user", "auth_passwd", "auth_spoof_notice", "auth_class",
1435 <  "auth_encrypted", "auth_flags", "$@12", "auth_flags_items",
1436 <  "auth_flags_item", "$@13", "$@14", "auth_flags_item_atom",
1437 <  "auth_kline_exempt", "auth_need_ident", "auth_exceed_limit",
1438 <  "auth_can_flood", "auth_no_tilde", "auth_gline_exempt", "auth_spoof",
1439 <  "auth_redir_serv", "auth_redir_port", "auth_need_password", "resv_entry",
1440 <  "$@15", "resv_items", "resv_item", "resv_creason", "resv_channel",
1441 <  "resv_nick", "shared_entry", "$@16", "shared_items", "shared_item",
1442 <  "shared_name", "shared_user", "shared_type", "$@17", "shared_types",
1443 <  "shared_type_item", "cluster_entry", "$@18", "cluster_items",
1444 <  "cluster_item", "cluster_name", "cluster_type", "$@19", "cluster_types",
1445 <  "cluster_type_item", "connect_entry", "$@20", "connect_name_b",
1557 <  "connect_items", "connect_item", "connect_name", "connect_name_t",
1430 >  "class_number_per_cidr", "class_min_idle", "class_max_idle",
1431 >  "class_flags", "$@8", "class_flags_items", "class_flags_item",
1432 >  "listen_entry", "$@9", "listen_flags", "$@10", "listen_flags_items",
1433 >  "listen_flags_item", "listen_items", "listen_item", "listen_port",
1434 >  "$@11", "port_items", "port_item", "listen_address", "listen_host",
1435 >  "auth_entry", "$@12", "auth_items", "auth_item", "auth_user",
1436 >  "auth_passwd", "auth_class", "auth_encrypted", "auth_flags", "$@13",
1437 >  "auth_flags_items", "auth_flags_item", "auth_spoof", "auth_redir_serv",
1438 >  "auth_redir_port", "resv_entry", "$@14", "resv_items", "resv_item",
1439 >  "resv_mask", "resv_reason", "resv_exempt", "service_entry",
1440 >  "service_items", "service_item", "service_name", "shared_entry", "$@15",
1441 >  "shared_items", "shared_item", "shared_name", "shared_user",
1442 >  "shared_type", "$@16", "shared_types", "shared_type_item",
1443 >  "cluster_entry", "$@17", "cluster_items", "cluster_item", "cluster_name",
1444 >  "cluster_type", "$@18", "cluster_types", "cluster_type_item",
1445 >  "connect_entry", "$@19", "connect_items", "connect_item", "connect_name",
1446    "connect_host", "connect_vhost", "connect_send_password",
1447    "connect_accept_password", "connect_port", "connect_aftype",
1448 <  "connect_fakename", "connect_flags", "$@21", "connect_flags_items",
1449 <  "connect_flags_item", "$@22", "$@23", "connect_flags_item_atom",
1450 <  "connect_rsa_public_key_file", "connect_encrypted", "connect_cryptlink",
1451 <  "connect_compressed", "connect_auto", "connect_topicburst",
1452 <  "connect_hub_mask", "connect_leaf_mask", "connect_class",
1453 <  "connect_cipher_preference", "kill_entry", "$@24", "kill_type", "$@25",
1454 <  "kill_type_items", "kill_type_item", "kill_items", "kill_item",
1455 <  "kill_user", "kill_reason", "deny_entry", "$@26", "deny_items",
1456 <  "deny_item", "deny_ip", "deny_reason", "exempt_entry", "exempt_items",
1457 <  "exempt_item", "exempt_ip", "gecos_entry", "$@27", "gecos_flags", "$@28",
1458 <  "gecos_flags_items", "gecos_flags_item", "gecos_items", "gecos_item",
1459 <  "gecos_name", "gecos_reason", "general_entry", "general_items",
1460 <  "general_item", "general_max_watch", "general_gline_min_cidr",
1461 <  "general_gline_min_cidr6", "general_burst_away",
1462 <  "general_use_whois_actually", "general_reject_hold_time",
1463 <  "general_tkline_expire_notices", "general_kill_chase_time_limit",
1464 <  "general_hide_spoof_ips", "general_ignore_bogus_ts",
1465 <  "general_disable_remote_commands", "general_failed_oper_notice",
1466 <  "general_anti_nick_flood", "general_max_nick_time",
1467 <  "general_max_nick_changes", "general_max_accept",
1468 <  "general_anti_spam_exit_message_time", "general_ts_warn_delta",
1469 <  "general_ts_max_delta", "general_havent_read_conf",
1470 <  "general_kline_with_reason", "general_kline_reason",
1471 <  "general_invisible_on_connect", "general_warn_no_nline",
1472 <  "general_stats_e_disabled", "general_stats_o_oper_only",
1473 <  "general_stats_P_oper_only", "general_stats_k_oper_only",
1474 <  "general_stats_i_oper_only", "general_pace_wait",
1587 <  "general_caller_id_wait", "general_opers_bypass_callerid",
1588 <  "general_pace_wait_simple", "general_short_motd",
1589 <  "general_no_oper_flood", "general_true_no_oper_flood",
1590 <  "general_oper_pass_resv", "general_message_locale", "general_idletime",
1591 <  "general_dots_in_ident", "general_max_targets", "general_servlink_path",
1592 <  "general_default_cipher_preference", "general_compression_level",
1593 <  "general_use_egd", "general_egdpool_path", "general_ping_cookie",
1448 >  "connect_flags", "$@20", "connect_flags_items", "connect_flags_item",
1449 >  "connect_encrypted", "connect_hub_mask", "connect_leaf_mask",
1450 >  "connect_class", "connect_ssl_cipher_list", "kill_entry", "$@21",
1451 >  "kill_items", "kill_item", "kill_user", "kill_reason", "deny_entry",
1452 >  "$@22", "deny_items", "deny_item", "deny_ip", "deny_reason",
1453 >  "exempt_entry", "exempt_items", "exempt_item", "exempt_ip",
1454 >  "gecos_entry", "$@23", "gecos_items", "gecos_item", "gecos_name",
1455 >  "gecos_reason", "general_entry", "general_items", "general_item",
1456 >  "general_max_watch", "general_gline_enable", "general_gline_duration",
1457 >  "general_gline_request_duration", "general_gline_min_cidr",
1458 >  "general_gline_min_cidr6", "general_tkline_expire_notices",
1459 >  "general_kill_chase_time_limit", "general_hide_spoof_ips",
1460 >  "general_ignore_bogus_ts", "general_disable_remote_commands",
1461 >  "general_failed_oper_notice", "general_anti_nick_flood",
1462 >  "general_max_nick_time", "general_max_nick_changes",
1463 >  "general_max_accept", "general_anti_spam_exit_message_time",
1464 >  "general_ts_warn_delta", "general_ts_max_delta",
1465 >  "general_havent_read_conf", "general_invisible_on_connect",
1466 >  "general_warn_no_nline", "general_stats_e_disabled",
1467 >  "general_stats_o_oper_only", "general_stats_P_oper_only",
1468 >  "general_stats_k_oper_only", "general_stats_i_oper_only",
1469 >  "general_pace_wait", "general_caller_id_wait",
1470 >  "general_opers_bypass_callerid", "general_pace_wait_simple",
1471 >  "general_short_motd", "general_no_oper_flood",
1472 >  "general_true_no_oper_flood", "general_oper_pass_resv",
1473 >  "general_dots_in_ident", "general_max_targets", "general_use_egd",
1474 >  "general_egdpool_path", "general_services_name", "general_ping_cookie",
1475    "general_disable_auth", "general_throttle_time", "general_oper_umodes",
1476 <  "$@29", "umode_oitems", "umode_oitem", "general_oper_only_umodes",
1477 <  "$@30", "umode_items", "umode_item", "general_min_nonwildcard",
1476 >  "$@24", "umode_oitems", "umode_oitem", "general_oper_only_umodes",
1477 >  "$@25", "umode_items", "umode_item", "general_min_nonwildcard",
1478    "general_min_nonwildcard_simple", "general_default_floodcount",
1479 <  "general_client_flood", "general_dot_in_ip6_addr", "gline_entry", "$@31",
1480 <  "gline_items", "gline_item", "gline_enable", "gline_duration",
1481 <  "gline_logging", "$@32", "gline_logging_types",
1482 <  "gline_logging_type_item", "gline_user", "gline_server", "gline_action",
1602 <  "$@33", "gdeny_types", "gdeny_type_item", "channel_entry",
1603 <  "channel_items", "channel_item", "channel_disable_fake_channels",
1604 <  "channel_restrict_channels", "channel_disable_local_channels",
1605 <  "channel_use_except", "channel_use_invex", "channel_use_knock",
1606 <  "channel_knock_delay", "channel_knock_delay_channel",
1607 <  "channel_max_chans_per_user", "channel_quiet_on_ban", "channel_max_bans",
1479 >  "channel_entry", "channel_items", "channel_item",
1480 >  "channel_disable_fake_channels", "channel_knock_delay",
1481 >  "channel_knock_delay_channel", "channel_max_chans_per_user",
1482 >  "channel_max_chans_per_oper", "channel_max_bans",
1483    "channel_default_split_user_count", "channel_default_split_server_count",
1484    "channel_no_create_on_split", "channel_no_join_on_split",
1485 <  "channel_burst_topicwho", "channel_jflood_count", "channel_jflood_time",
1486 <  "serverhide_entry", "serverhide_items", "serverhide_item",
1487 <  "serverhide_flatten_links", "serverhide_hide_servers",
1485 >  "channel_jflood_count", "channel_jflood_time", "serverhide_entry",
1486 >  "serverhide_items", "serverhide_item", "serverhide_flatten_links",
1487 >  "serverhide_hide_servers", "serverhide_hide_services",
1488    "serverhide_hidden_name", "serverhide_links_delay", "serverhide_hidden",
1489 <  "serverhide_disable_hidden", "serverhide_hide_server_ips", 0
1489 >  "serverhide_hide_server_ips", YY_NULL
1490   };
1491   #endif
1492  
# Line 1642 | Line 1517 | static const yytype_uint16 yytoknum[] =
1517       445,   446,   447,   448,   449,   450,   451,   452,   453,   454,
1518       455,   456,   457,   458,   459,   460,   461,   462,   463,   464,
1519       465,   466,   467,   468,   469,   470,   471,   472,   473,   474,
1520 <     475,   476,   477,   478,   479,   480,   481,   482,   483,   484,
1646 <     485,   486,   487,   488,   489,   490,   491,   492,   493,   494,
1647 <     495,   496,   497,   498,   499,   500,   501,   502,   503,   504,
1648 <     505,   506,   507,   508,   509,   510,   511,   512,   513,   514,
1649 <     515,   516,    59,   125,   123,    61,    44
1520 >     475,   476,   477,    59,   125,   123,    61,    44,    58
1521   };
1522   # endif
1523  
1524   /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives.  */
1525   static const yytype_uint16 yyr1[] =
1526   {
1527 <       0,   267,   268,   268,   269,   269,   269,   269,   269,   269,
1528 <     269,   269,   269,   269,   269,   269,   269,   269,   269,   269,
1529 <     269,   269,   269,   269,   269,   269,   270,   270,   271,   271,
1530 <     271,   271,   271,   271,   272,   272,   273,   273,   273,   273,
1531 <     274,   275,   275,   276,   276,   276,   277,   278,   279,   280,
1532 <     280,   281,   281,   281,   281,   281,   281,   281,   281,   281,
1533 <     281,   281,   281,   281,   283,   282,   284,   284,   285,   285,
1534 <     286,   287,   288,   289,   290,   291,   292,   293,   294,   295,
1535 <     296,   297,   298,   298,   299,   299,   299,   299,   300,   301,
1536 <     302,   303,   304,   304,   305,   305,   305,   305,   305,   305,
1537 <     305,   305,   305,   305,   305,   305,   305,   306,   307,   308,
1538 <     309,   310,   311,   312,   313,   314,   315,   316,   316,   316,
1539 <     316,   316,   316,   316,   317,   319,   318,   320,   320,   321,
1540 <     321,   322,   322,   322,   322,   322,   322,   322,   322,   322,
1541 <     322,   322,   322,   322,   322,   322,   322,   322,   322,   322,
1542 <     322,   322,   322,   322,   323,   324,   325,   326,   327,   328,
1543 <     329,   331,   330,   332,   332,   333,   333,   333,   333,   333,
1544 <     333,   333,   333,   333,   333,   333,   333,   333,   333,   333,
1545 <     333,   333,   333,   333,   334,   335,   336,   337,   338,   339,
1546 <     340,   341,   342,   343,   344,   345,   346,   347,   349,   348,
1547 <     350,   350,   352,   351,   353,   351,   354,   354,   354,   354,
1548 <     354,   354,   354,   354,   354,   354,   354,   354,   354,   354,
1549 <     354,   354,   356,   355,   357,   357,   358,   358,   359,   359,
1550 <     359,   359,   359,   359,   359,   359,   359,   359,   359,   359,
1551 <     359,   359,   360,   361,   362,   363,   364,   365,   366,   367,
1552 <     368,   369,   370,   371,   372,   373,   375,   374,   377,   376,
1553 <     378,   378,   379,   379,   379,   380,   380,   381,   381,   381,
1554 <     381,   381,   383,   382,   384,   384,   385,   385,   386,   387,
1555 <     389,   388,   390,   390,   391,   391,   391,   391,   391,   391,
1556 <     391,   391,   391,   391,   391,   391,   391,   391,   391,   391,
1557 <     391,   392,   393,   394,   395,   396,   398,   397,   399,   399,
1558 <     401,   400,   402,   400,   403,   403,   403,   403,   403,   403,
1559 <     403,   403,   403,   403,   404,   405,   406,   407,   408,   409,
1560 <     410,   411,   412,   413,   415,   414,   416,   416,   417,   417,
1561 <     417,   417,   418,   419,   420,   422,   421,   423,   423,   424,
1562 <     424,   424,   424,   425,   426,   428,   427,   429,   429,   430,
1563 <     430,   430,   430,   430,   430,   430,   430,   430,   430,   430,
1564 <     432,   431,   433,   433,   434,   434,   434,   435,   437,   436,
1565 <     438,   438,   439,   439,   439,   439,   439,   439,   439,   439,
1566 <     439,   439,   439,   441,   440,   442,   442,   443,   443,   444,
1567 <     444,   444,   444,   444,   444,   444,   444,   444,   444,   444,
1568 <     444,   444,   444,   444,   444,   444,   444,   444,   444,   445,
1569 <     446,   447,   448,   449,   450,   451,   452,   452,   453,   455,
1570 <     454,   456,   456,   458,   457,   459,   457,   460,   460,   460,
1571 <     460,   460,   461,   462,   463,   464,   465,   466,   467,   468,
1572 <     469,   470,   472,   471,   474,   473,   475,   475,   476,   477,
1573 <     477,   478,   478,   478,   478,   479,   480,   482,   481,   483,
1574 <     483,   484,   484,   484,   485,   486,   487,   488,   488,   489,
1575 <     489,   490,   492,   491,   494,   493,   495,   495,   496,   497,
1576 <     497,   498,   498,   498,   498,   499,   500,   501,   502,   502,
1577 <     503,   503,   503,   503,   503,   503,   503,   503,   503,   503,
1578 <     503,   503,   503,   503,   503,   503,   503,   503,   503,   503,
1579 <     503,   503,   503,   503,   503,   503,   503,   503,   503,   503,
1580 <     503,   503,   503,   503,   503,   503,   503,   503,   503,   503,
1581 <     503,   503,   503,   503,   503,   503,   503,   503,   503,   503,
1582 <     503,   503,   503,   503,   503,   503,   503,   504,   505,   506,
1583 <     507,   508,   509,   510,   511,   512,   513,   514,   515,   516,
1584 <     517,   518,   519,   520,   521,   522,   523,   524,   525,   526,
1585 <     527,   528,   529,   530,   531,   531,   532,   532,   533,   534,
1586 <     535,   536,   537,   538,   539,   540,   541,   542,   543,   544,
1587 <     545,   546,   547,   548,   549,   550,   551,   552,   554,   553,
1588 <     555,   555,   556,   556,   556,   556,   556,   556,   556,   556,
1589 <     556,   556,   556,   556,   556,   556,   556,   556,   556,   556,
1590 <     556,   558,   557,   559,   559,   560,   560,   560,   560,   560,
1591 <     560,   560,   560,   560,   560,   560,   560,   560,   560,   560,
1721 <     560,   560,   560,   560,   561,   562,   563,   564,   565,   567,
1722 <     566,   568,   568,   569,   569,   569,   569,   569,   569,   569,
1723 <     570,   571,   573,   572,   574,   574,   575,   575,   576,   577,
1724 <     579,   578,   580,   580,   581,   581,   582,   583,   583,   584,
1725 <     584,   584,   584,   584,   584,   584,   584,   584,   584,   584,
1726 <     584,   584,   584,   584,   584,   584,   584,   584,   585,   586,
1727 <     587,   588,   589,   590,   591,   592,   593,   594,   595,   596,
1728 <     597,   598,   599,   600,   601,   602,   603,   604,   604,   605,
1729 <     605,   605,   605,   605,   605,   605,   605,   606,   607,   608,
1730 <     609,   610,   611,   612
1527 >       0,   229,   230,   230,   231,   231,   231,   231,   231,   231,
1528 >     231,   231,   231,   231,   231,   231,   231,   231,   231,   231,
1529 >     231,   231,   231,   231,   231,   231,   231,   232,   232,   233,
1530 >     233,   233,   233,   233,   233,   233,   233,   234,   234,   235,
1531 >     235,   235,   235,   236,   237,   237,   238,   238,   238,   239,
1532 >     240,   241,   242,   242,   243,   243,   243,   243,   243,   243,
1533 >     243,   243,   243,   243,   243,   243,   243,   243,   243,   243,
1534 >     243,   243,   244,   245,   246,   246,   247,   247,   248,   248,
1535 >     249,   249,   250,   251,   252,   253,   254,   255,   256,   257,
1536 >     258,   259,   260,   261,   262,   263,   264,   265,   266,   266,
1537 >     267,   267,   267,   267,   268,   269,   270,   272,   271,   273,
1538 >     273,   274,   274,   274,   275,   276,   277,   278,   278,   279,
1539 >     279,   279,   280,   282,   281,   283,   283,   284,   284,   284,
1540 >     284,   285,   286,   286,   288,   287,   289,   289,   290,   290,
1541 >     290,   290,   290,   290,   290,   292,   291,   293,   293,   294,
1542 >     294,   294,   294,   294,   294,   294,   294,   294,   295,   296,
1543 >     297,   298,   299,   300,   302,   301,   303,   303,   304,   304,
1544 >     304,   304,   304,   304,   304,   304,   304,   304,   304,   304,
1545 >     304,   304,   304,   304,   304,   304,   304,   304,   304,   306,
1546 >     305,   307,   307,   308,   308,   308,   308,   308,   308,   308,
1547 >     308,   308,   308,   308,   308,   308,   308,   308,   308,   308,
1548 >     308,   308,   308,   308,   308,   308,   310,   309,   311,   311,
1549 >     312,   312,   312,   312,   312,   312,   312,   312,   312,   312,
1550 >     312,   312,   312,   312,   312,   312,   312,   313,   314,   315,
1551 >     316,   317,   318,   319,   320,   321,   322,   323,   324,   325,
1552 >     326,   327,   329,   328,   330,   330,   331,   331,   333,   332,
1553 >     335,   334,   336,   336,   337,   337,   337,   338,   338,   339,
1554 >     339,   339,   339,   339,   341,   340,   342,   342,   343,   343,
1555 >     344,   345,   347,   346,   348,   348,   349,   349,   349,   349,
1556 >     349,   349,   349,   349,   349,   350,   351,   352,   353,   355,
1557 >     354,   356,   356,   357,   357,   357,   357,   357,   357,   357,
1558 >     357,   357,   357,   358,   359,   360,   362,   361,   363,   363,
1559 >     364,   364,   364,   364,   365,   366,   367,   368,   369,   369,
1560 >     370,   370,   371,   373,   372,   374,   374,   375,   375,   375,
1561 >     375,   376,   377,   379,   378,   380,   380,   381,   381,   381,
1562 >     381,   381,   381,   381,   381,   381,   381,   383,   382,   384,
1563 >     384,   385,   385,   385,   386,   388,   387,   389,   389,   390,
1564 >     390,   390,   390,   390,   390,   390,   390,   390,   390,   392,
1565 >     391,   393,   393,   394,   394,   394,   394,   394,   394,   394,
1566 >     394,   394,   394,   394,   394,   394,   394,   395,   396,   397,
1567 >     398,   399,   400,   401,   401,   403,   402,   404,   404,   405,
1568 >     405,   406,   407,   408,   409,   410,   412,   411,   413,   413,
1569 >     414,   414,   414,   415,   416,   418,   417,   419,   419,   420,
1570 >     420,   420,   421,   422,   423,   424,   424,   425,   425,   426,
1571 >     428,   427,   429,   429,   430,   430,   430,   431,   432,   433,
1572 >     434,   434,   435,   435,   435,   435,   435,   435,   435,   435,
1573 >     435,   435,   435,   435,   435,   435,   435,   435,   435,   435,
1574 >     435,   435,   435,   435,   435,   435,   435,   435,   435,   435,
1575 >     435,   435,   435,   435,   435,   435,   435,   435,   435,   435,
1576 >     435,   435,   435,   435,   435,   435,   435,   435,   435,   435,
1577 >     435,   436,   437,   438,   439,   440,   441,   442,   443,   444,
1578 >     445,   446,   447,   448,   449,   450,   451,   452,   453,   454,
1579 >     455,   456,   457,   458,   459,   460,   461,   461,   462,   462,
1580 >     463,   464,   465,   466,   467,   468,   469,   470,   471,   472,
1581 >     473,   474,   475,   476,   477,   478,   480,   479,   481,   481,
1582 >     482,   482,   482,   482,   482,   482,   482,   482,   482,   482,
1583 >     482,   482,   482,   482,   482,   482,   482,   482,   482,   482,
1584 >     482,   484,   483,   485,   485,   486,   486,   486,   486,   486,
1585 >     486,   486,   486,   486,   486,   486,   486,   486,   486,   486,
1586 >     486,   486,   486,   486,   486,   486,   487,   488,   489,   490,
1587 >     491,   491,   492,   492,   492,   492,   492,   492,   492,   492,
1588 >     492,   492,   492,   492,   492,   493,   494,   495,   496,   497,
1589 >     498,   499,   500,   501,   502,   503,   504,   505,   506,   506,
1590 >     507,   507,   507,   507,   507,   507,   507,   507,   508,   509,
1591 >     510,   511,   512,   513,   514
1592   };
1593  
1594   /* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN.  */
# Line 1735 | Line 1596 | static const yytype_uint8 yyr2[] =
1596   {
1597         0,     2,     0,     2,     1,     1,     1,     1,     1,     1,
1598         1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1599 <       1,     1,     1,     1,     2,     2,     0,     1,     2,     3,
1600 <       3,     3,     3,     3,     0,     1,     2,     3,     3,     3,
1601 <       5,     2,     1,     1,     1,     2,     4,     4,     5,     2,
1741 <       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1742 <       1,     1,     1,     2,     0,     5,     3,     1,     1,     1,
1743 <       4,     4,     4,     4,     4,     4,     4,     4,     4,     4,
1744 <       4,     5,     2,     1,     1,     1,     1,     2,     4,     4,
1599 >       1,     1,     1,     1,     1,     2,     2,     0,     1,     2,
1600 >       3,     3,     3,     3,     3,     3,     3,     0,     1,     2,
1601 >       3,     3,     3,     5,     2,     1,     1,     1,     2,     4,
1602         4,     5,     2,     1,     1,     1,     1,     1,     1,     1,
1746       1,     1,     1,     1,     1,     1,     2,     4,     4,     4,
1747       4,     4,     4,     4,     4,     4,     4,     4,     4,     4,
1748       4,     4,     4,     4,     4,     0,     7,     0,     1,     2,
1749       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1750       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1751       1,     1,     1,     2,     4,     1,     4,     4,     4,     4,
1752       4,     0,     5,     3,     1,     1,     1,     1,     1,     1,
1753       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1754       1,     1,     1,     1,     4,     4,     4,     4,     4,     4,
1755       4,     4,     4,     4,     4,     4,     4,     4,     0,     5,
1756       3,     1,     0,     3,     0,     2,     1,     1,     1,     1,
1603         1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1604 <       1,     1,     0,     7,     0,     1,     2,     1,     1,     1,
1605 <       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1606 <       1,     2,     4,     1,     4,     4,     4,     4,     4,     4,
1607 <       4,     4,     4,     4,     4,     4,     0,     6,     0,     5,
1608 <       3,     1,     1,     1,     1,     2,     1,     1,     1,     1,
1609 <       1,     2,     0,     5,     3,     1,     1,     3,     4,     4,
1610 <       0,     6,     2,     1,     1,     1,     1,     1,     1,     1,
1611 <       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1612 <       2,     4,     4,     4,     4,     4,     0,     5,     3,     1,
1613 <       0,     3,     0,     2,     1,     1,     1,     1,     1,     1,
1768 <       1,     1,     1,     1,     4,     4,     4,     4,     4,     4,
1769 <       4,     4,     4,     4,     0,     6,     2,     1,     1,     1,
1770 <       1,     2,     4,     4,     4,     0,     6,     2,     1,     1,
1771 <       1,     1,     2,     4,     4,     0,     5,     3,     1,     1,
1604 >       1,     2,     4,     4,     3,     1,     1,     1,     3,     1,
1605 >       1,     1,     4,     4,     4,     4,     4,     4,     4,     4,
1606 >       4,     4,     4,     4,     4,     4,     4,     5,     2,     1,
1607 >       1,     1,     1,     2,     4,     4,     4,     0,     6,     2,
1608 >       1,     1,     1,     2,     4,     4,     5,     2,     1,     1,
1609 >       1,     2,     4,     0,     6,     2,     1,     1,     1,     1,
1610 >       2,     4,     4,     4,     0,     5,     3,     1,     1,     1,
1611 >       1,     1,     1,     1,     1,     0,     6,     2,     1,     1,
1612 >       1,     1,     1,     1,     1,     1,     1,     2,     4,     4,
1613 >       4,     4,     4,     4,     0,     5,     3,     1,     1,     1,
1614         1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1615 <       0,     6,     2,     1,     1,     1,     2,     4,     0,     5,
1616 <       3,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1775 <       1,     1,     1,     0,     7,     0,     1,     2,     1,     1,
1615 >       1,     1,     1,     1,     1,     1,     1,     1,     1,     0,
1616 >       5,     3,     1,     3,     1,     3,     1,     3,     1,     1,
1617         1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1618 <       1,     1,     1,     1,     1,     1,     1,     1,     2,     4,
1778 <       1,     4,     4,     4,     4,     4,     4,     4,     4,     0,
1779 <       5,     3,     1,     0,     3,     0,     2,     1,     1,     1,
1780 <       1,     1,     4,     4,     4,     4,     4,     4,     4,     4,
1781 <       4,     4,     0,     6,     0,     5,     3,     1,     1,     2,
1782 <       1,     1,     1,     1,     1,     4,     4,     0,     6,     2,
1783 <       1,     1,     1,     1,     4,     4,     5,     2,     1,     1,
1784 <       1,     4,     0,     6,     0,     5,     3,     1,     1,     2,
1785 <       1,     1,     1,     1,     1,     4,     4,     5,     2,     1,
1618 >       1,     1,     1,     1,     1,     1,     0,     6,     2,     1,
1619         1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1620 +       1,     1,     1,     1,     1,     1,     2,     4,     4,     4,
1621 +       4,     4,     4,     4,     4,     4,     4,     4,     4,     4,
1622 +       4,     4,     0,     5,     3,     1,     1,     1,     0,     6,
1623 +       0,     5,     3,     1,     1,     1,     1,     2,     1,     1,
1624 +       1,     1,     1,     2,     0,     5,     3,     1,     1,     3,
1625 +       4,     4,     0,     6,     2,     1,     1,     1,     1,     1,
1626 +       1,     1,     1,     1,     2,     4,     4,     4,     4,     0,
1627 +       5,     3,     1,     1,     1,     1,     1,     1,     1,     1,
1628 +       1,     1,     1,     4,     4,     4,     0,     6,     2,     1,
1629 +       1,     1,     1,     2,     4,     4,     4,     5,     2,     1,
1630 +       1,     1,     4,     0,     6,     2,     1,     1,     1,     1,
1631 +       2,     4,     4,     0,     5,     3,     1,     1,     1,     1,
1632 +       1,     1,     1,     1,     1,     1,     1,     0,     6,     2,
1633 +       1,     1,     1,     2,     4,     0,     5,     3,     1,     1,
1634 +       1,     1,     1,     1,     1,     1,     1,     1,     1,     0,
1635 +       6,     2,     1,     1,     1,     1,     1,     1,     1,     1,
1636 +       1,     1,     1,     1,     1,     1,     2,     4,     4,     4,
1637 +       4,     4,     4,     4,     4,     0,     5,     3,     1,     1,
1638 +       1,     4,     4,     4,     4,     4,     0,     6,     2,     1,
1639 +       1,     1,     1,     4,     4,     0,     6,     2,     1,     1,
1640 +       1,     1,     4,     4,     5,     2,     1,     1,     1,     4,
1641 +       0,     6,     2,     1,     1,     1,     1,     4,     4,     5,
1642 +       2,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1643         1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1644         1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1645         1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1646         1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1647 <       1,     1,     1,     1,     1,     1,     1,     4,     4,     4,
1792 <       4,     4,     4,     4,     4,     4,     4,     4,     4,     4,
1647 >       1,     4,     4,     4,     4,     4,     4,     4,     4,     4,
1648         4,     4,     4,     4,     4,     4,     4,     4,     4,     4,
1649         4,     4,     4,     4,     4,     4,     4,     4,     4,     4,
1650         4,     4,     4,     4,     4,     4,     4,     4,     4,     4,
1651 <       4,     4,     4,     4,     4,     4,     4,     4,     0,     5,
1797 <       3,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1651 >       4,     4,     4,     4,     4,     4,     0,     5,     3,     1,
1652         1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1799       1,     0,     5,     3,     1,     1,     1,     1,     1,     1,
1653         1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1654 <       1,     1,     1,     1,     4,     4,     4,     4,     4,     0,
1802 <       6,     2,     1,     1,     1,     1,     1,     1,     1,     1,
1803 <       4,     4,     0,     5,     3,     1,     1,     1,     4,     4,
1804 <       0,     5,     3,     1,     1,     1,     5,     2,     1,     1,
1654 >       1,     0,     5,     3,     1,     1,     1,     1,     1,     1,
1655         1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1656 +       1,     1,     1,     1,     1,     1,     4,     4,     4,     5,
1657 +       2,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1658 +       1,     1,     1,     1,     1,     4,     4,     4,     4,     4,
1659 +       4,     4,     4,     4,     4,     4,     4,     5,     2,     1,
1660         1,     1,     1,     1,     1,     1,     1,     1,     4,     4,
1661 <       4,     4,     4,     4,     4,     4,     4,     4,     4,     4,
1808 <       4,     4,     4,     4,     4,     4,     5,     2,     1,     1,
1809 <       1,     1,     1,     1,     1,     1,     1,     4,     4,     4,
1810 <       4,     4,     4,     4
1661 >       4,     4,     4,     4,     4
1662   };
1663  
1664 < /* YYDEFACT[STATE-NAME] -- Default rule to reduce with in state
1665 <   STATE-NUM when YYTABLE doesn't specify something else to do.  Zero
1664 > /* YYDEFACT[STATE-NAME] -- Default reduction number in state STATE-NUM.
1665 >   Performed when YYTABLE doesn't specify something else to do.  Zero
1666     means the default is an error.  */
1667   static const yytype_uint16 yydefact[] =
1668   {
1669 <       2,     0,     1,     0,     0,     0,   222,   393,   467,     0,
1670 <     482,     0,   659,   280,   452,   256,     0,     0,   125,   334,
1671 <       0,     0,   345,   370,     3,    23,    11,     4,     5,     6,
1672 <       8,     9,    10,    13,    14,    15,    16,    17,    18,    19,
1673 <      22,    20,    21,     7,    12,    24,    25,     0,     0,   224,
1823 <     395,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1824 <       0,   127,     0,     0,     0,     0,     0,     0,     0,     0,
1825 <       0,     0,    83,    84,    86,    85,   707,     0,     0,     0,
1826 <       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1827 <       0,     0,     0,     0,     0,     0,   688,   706,   701,   689,
1828 <     690,   691,   692,   694,   695,   696,   697,   693,   698,   699,
1829 <     700,   702,   703,   704,   705,   243,     0,   225,   420,     0,
1830 <     396,     0,   480,     0,     0,   478,   479,     0,   556,     0,
1831 <       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1832 <       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1833 <       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1834 <       0,     0,   631,     0,   608,     0,     0,     0,     0,     0,
1835 <       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1836 <       0,     0,     0,     0,     0,     0,   499,   555,   550,   551,
1837 <     548,   552,   553,   549,   510,   500,   501,   539,   502,   503,
1838 <     504,   505,   506,   507,   508,   509,   544,   511,   512,   513,
1839 <     514,   554,   516,   521,   517,   519,   518,   533,   534,   520,
1840 <     522,   523,   524,   525,   527,   526,   515,   529,   538,   540,
1841 <     541,   530,   531,   546,   547,   543,   532,   528,   536,   537,
1842 <     535,   542,   545,     0,     0,     0,     0,     0,     0,     0,
1669 >       2,     0,     1,     0,     0,     0,   216,   379,   425,     0,
1670 >     440,     0,   282,   416,   258,     0,   107,   145,   316,     0,
1671 >       0,   357,     0,     0,   333,     3,    23,    11,     4,    24,
1672 >       5,     6,     8,     9,    10,    13,    14,    15,    16,    17,
1673 >      18,    19,    20,    22,    21,     7,    12,    25,    26,     0,
1674         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1844       0,    93,    94,    95,    98,   105,    99,   103,   100,   101,
1845     104,   102,    96,    97,     0,     0,     0,     0,    42,    43,
1846      44,   155,     0,   128,     0,   736,     0,     0,     0,     0,
1847       0,     0,     0,     0,   728,   729,   730,   734,   731,   733,
1848     732,   735,     0,     0,     0,     0,     0,     0,     0,     0,
1849      64,     0,     0,     0,     0,     0,    50,    62,    61,    58,
1850      51,    60,    54,    55,    56,    52,    59,    57,    53,     0,
1851       0,    87,     0,     0,     0,     0,    82,     0,     0,     0,
1675         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1676 <       0,     0,     0,     0,     0,     0,   687,     0,     0,   473,
1854 <       0,     0,     0,   470,   471,   472,     0,     0,   477,   494,
1855 <       0,     0,   484,   493,     0,   490,   491,   492,     0,     0,
1676 >       0,     0,     0,     0,     0,    99,   100,   102,   101,   614,
1677         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1678 +       0,     0,     0,   601,   613,   603,   604,   605,   606,   602,
1679 +     607,   608,   609,   610,   611,   612,     0,     0,     0,   438,
1680 +       0,     0,   436,   437,     0,   500,     0,     0,     0,     0,
1681         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1682         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1683 +       0,     0,     0,   571,     0,   546,     0,     0,     0,     0,
1684         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1685 +       0,     0,     0,     0,     0,   451,   498,   492,   493,   494,
1686 +     495,   496,   491,   462,   452,   453,   486,   454,   455,   456,
1687 +     457,   458,   459,   460,   461,   488,   463,   464,   497,   466,
1688 +     471,   467,   469,   468,   481,   482,   470,   472,   473,   474,
1689 +     475,   465,   477,   478,   479,   499,   489,   490,   487,   480,
1690 +     476,   484,   485,   483,     0,     0,     0,     0,     0,     0,
1691 +       0,    45,    46,    47,     0,     0,     0,   637,     0,     0,
1692 +       0,     0,     0,     0,     0,     0,   629,   630,   631,   632,
1693 +     635,   633,   634,   636,     0,     0,     0,     0,     0,     0,
1694         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1695 <       0,     0,     0,     0,     0,   498,   669,   680,     0,     0,
1696 <     672,     0,     0,     0,   662,   663,   664,   665,   666,   667,
1697 <     668,     0,     0,     0,     0,     0,   306,     0,     0,     0,
1698 <       0,     0,     0,     0,     0,     0,     0,     0,     0,   283,
1699 <     284,   285,   294,   286,   299,   287,   288,   289,   290,   297,
1700 <     291,   292,   293,   295,   296,   298,   464,     0,   454,     0,
1867 <     463,     0,   460,   461,   462,     0,   258,     0,     0,     0,
1868 <     268,     0,   266,   267,   269,   270,   106,     0,     0,     0,
1695 >       0,     0,     0,    53,    68,    69,    67,    64,    63,    70,
1696 >      54,    66,    57,    58,    59,    55,    65,    60,    61,    62,
1697 >      56,     0,     0,     0,     0,   118,   119,   120,     0,   331,
1698 >       0,     0,   329,   330,     0,   103,     0,     0,     0,     0,
1699 >      98,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1700 >       0,     0,     0,     0,   600,     0,     0,     0,     0,   252,
1701         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1702 <      92,    45,     0,     0,     0,    41,     0,     0,     0,     0,
1703 <       0,     0,   337,   338,   339,   340,     0,     0,     0,     0,
1704 <       0,     0,     0,     0,   727,    63,     0,     0,     0,     0,
1705 <       0,     0,     0,     0,     0,     0,     0,     0,     0,    49,
1706 <       0,     0,   355,     0,     0,   348,   349,   350,   351,     0,
1707 <       0,   378,     0,   373,   374,   375,     0,     0,     0,    81,
1708 <       0,     0,     0,     0,     0,    26,     0,     0,     0,     0,
1877 <       0,     0,     0,     0,     0,     0,     0,     0,     0,   686,
1702 >       0,     0,     0,   219,   220,   223,   225,   226,   227,   228,
1703 >     229,   230,   231,   232,   221,   222,   224,   233,   234,   235,
1704 >       0,     0,     0,     0,     0,     0,     0,   405,     0,     0,
1705 >       0,     0,     0,     0,     0,   382,   383,   384,   385,   386,
1706 >     387,   389,   388,   391,   395,   392,   393,   394,   390,   431,
1707 >       0,     0,     0,   428,   429,   430,     0,     0,   435,   446,
1708 >       0,     0,     0,   443,   444,   445,     0,     0,     0,     0,
1709         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1879       0,     0,     0,     0,     0,   227,   228,   231,   232,   234,
1880     235,   236,   237,   238,   239,   240,   229,   230,   233,     0,
1881       0,     0,     0,     0,     0,     0,     0,     0,     0,   429,
1710         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1883     398,   399,   400,   401,   402,   403,   405,   404,   406,   407,
1884     415,   412,   414,   413,   411,   417,   408,   409,   410,   416,
1885       0,     0,     0,   469,     0,   476,     0,     0,     0,     0,
1886     489,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1711         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1712         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1713 +       0,     0,     0,     0,     0,   450,     0,     0,     0,   299,
1714 +       0,     0,     0,     0,     0,     0,   285,   286,   287,   288,
1715 +     293,   289,   290,   291,   292,   422,     0,     0,     0,   419,
1716 +     420,   421,     0,     0,     0,   260,     0,   270,     0,   268,
1717 +     269,   271,   272,    48,     0,     0,     0,    44,     0,     0,
1718 +       0,     0,   110,   111,   112,     0,     0,     0,   189,     0,
1719 +       0,     0,   164,     0,     0,   148,   149,   150,   151,   154,
1720 +     155,   153,   152,   156,     0,     0,     0,     0,     0,   319,
1721 +     320,   321,   322,     0,     0,     0,     0,     0,     0,     0,
1722 +       0,   628,    71,     0,     0,     0,     0,     0,     0,     0,
1723         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1724 +       0,    52,     0,     0,   365,     0,   360,   361,   362,   121,
1725 +       0,     0,   117,     0,     0,     0,   328,     0,     0,   343,
1726 +       0,     0,   336,   337,   338,   339,     0,     0,     0,    97,
1727 +       0,     0,     0,     0,    27,     0,     0,     0,     0,     0,
1728 +       0,     0,     0,   599,   236,     0,     0,     0,     0,     0,
1729         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1730 <       0,     0,     0,    34,     0,     0,     0,     0,     0,     0,
1731 <     497,     0,     0,     0,     0,     0,     0,     0,   661,   300,
1730 >       0,     0,   218,   396,     0,     0,     0,     0,     0,     0,
1731 >       0,     0,     0,     0,     0,     0,     0,     0,   381,     0,
1732 >       0,     0,   427,     0,   434,     0,     0,     0,   442,     0,
1733         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1894       0,     0,     0,     0,     0,     0,     0,   282,     0,     0,
1895       0,     0,   459,   271,     0,     0,     0,     0,     0,   265,
1734         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1897       0,     0,     0,     0,     0,     0,     0,     0,    91,     0,
1898       0,    40,     0,     0,     0,     0,     0,   198,     0,     0,
1735         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1900       0,   161,     0,     0,     0,     0,   130,   131,   132,   133,
1901     150,   151,   137,   136,   138,   139,   145,   140,   141,   142,
1902     143,   144,   146,   147,   148,   134,   135,   149,   152,   341,
1903       0,     0,     0,     0,   336,     0,     0,     0,     0,     0,
1904       0,     0,   726,     0,     0,     0,     0,     0,     0,     0,
1905       0,     0,     0,     0,     0,    48,   352,     0,     0,     0,
1906       0,   347,   376,     0,     0,     0,   372,    90,    89,    88,
1907     723,   720,   719,   708,   710,    26,    26,    26,    26,    26,
1908      28,    27,   714,   715,   718,   716,   721,   722,   724,   725,
1909     717,   709,   711,   712,   713,   241,     0,     0,     0,     0,
1736         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1737 <     226,   418,     0,     0,     0,     0,     0,     0,     0,     0,
1737 >       0,     0,     0,     0,     0,     0,     0,     0,     0,   449,
1738 >     294,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1739 >     284,     0,     0,     0,   418,   273,     0,     0,     0,     0,
1740 >       0,   267,     0,     0,    43,   113,     0,     0,     0,   109,
1741 >     157,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1742 >     147,   323,     0,     0,     0,     0,   318,     0,     0,     0,
1743 >       0,     0,     0,     0,   627,     0,     0,     0,     0,     0,
1744 >       0,     0,     0,     0,     0,     0,     0,     0,    76,    77,
1745 >       0,    75,    80,    81,     0,    79,     0,     0,    51,   363,
1746 >       0,     0,     0,   359,     0,   116,     0,     0,   327,   340,
1747 >       0,     0,     0,     0,   335,   106,   105,   104,   622,   621,
1748 >     615,   625,    27,    27,    27,    27,    27,    27,    27,    29,
1749 >      28,   626,   616,   617,   620,   619,   618,   623,   624,     0,
1750         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1751 <       0,     0,   397,     0,     0,   468,   481,     0,     0,     0,
1914 <     483,   569,   573,   560,   589,   602,   601,   656,   606,   567,
1915 <     658,   598,   604,   568,   558,   559,   576,   565,   597,   566,
1916 <     579,   564,   578,   577,   572,   571,   570,   599,   557,   596,
1917 <     654,   655,   593,   590,   635,   651,   652,   636,   637,   638,
1918 <     639,   646,   640,   649,   653,   642,   647,   643,   648,   641,
1919 <     645,   644,   650,     0,   634,   595,   612,   628,   629,   613,
1920 <     614,   615,   616,   623,   617,   626,   630,   619,   624,   620,
1921 <     625,   618,   622,   621,   627,     0,   611,   588,   591,   605,
1922 <     562,   600,   563,   592,   581,   586,   587,   584,   585,   582,
1923 <     583,   575,   574,    34,    34,    34,    36,    35,   657,   607,
1924 <     594,   603,   561,   580,     0,     0,     0,     0,     0,     0,
1925 <     660,     0,     0,     0,     0,   312,     0,     0,     0,     0,
1926 <       0,     0,     0,     0,     0,     0,     0,   281,     0,     0,
1927 <       0,   453,     0,     0,     0,   276,   272,   275,   257,   110,
1928 <     116,   114,   113,   115,   111,   112,   109,   117,   123,   118,
1929 <     122,   120,   121,   119,   108,   107,   124,    46,    47,   153,
1751 >       0,     0,     0,    37,     0,     0,   217,     0,     0,     0,
1752         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1753 <       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1754 <       0,     0,     0,   129,     0,     0,     0,   335,   742,   737,
1755 <     741,   739,   743,   738,   740,    74,    80,    72,    76,    75,
1756 <      71,    70,    68,    69,     0,    67,    73,    79,    77,    78,
1757 <       0,     0,     0,   346,     0,     0,   371,    29,    30,    31,
1758 <      32,    33,     0,     0,     0,     0,     0,     0,     0,     0,
1759 <       0,     0,     0,     0,     0,   223,     0,     0,     0,     0,
1760 <       0,     0,     0,     0,     0,     0,   435,     0,     0,     0,
1761 <       0,     0,     0,     0,     0,     0,   394,   474,   475,   495,
1762 <     496,   488,     0,   487,   632,     0,   609,     0,    37,    38,
1763 <      39,   685,   684,     0,   683,   671,   670,   677,   676,     0,
1764 <     675,   679,   678,   327,   304,   305,   326,   310,     0,   309,
1765 <       0,   329,   325,   324,   333,   328,   302,   332,   331,   330,
1766 <     303,   301,   466,   458,     0,   457,   465,   263,   264,   262,
1767 <       0,   261,   279,   278,     0,     0,     0,     0,     0,     0,
1768 <       0,   204,     0,     0,     0,     0,     0,     0,     0,     0,
1769 <       0,     0,     0,     0,     0,     0,     0,     0,     0,   126,
1770 <     343,   344,   342,    65,     0,   353,   359,   365,   369,   368,
1771 <     367,   364,   360,   363,   366,   361,   362,     0,   358,   354,
1772 <     377,   382,   388,   392,   391,   390,   387,   383,   386,   389,
1773 <     384,   385,     0,   381,   253,   254,   247,   249,   251,   250,
1774 <     248,   242,   255,   246,   244,   245,   252,   424,   426,   427,
1775 <     446,   451,   450,   445,   444,   443,   428,   433,     0,   432,
1776 <       0,   421,   448,   449,   419,   425,   442,   423,   447,   422,
1777 <     485,     0,   633,   610,   681,     0,   673,     0,     0,   307,
1778 <     312,   318,   319,   315,   321,   317,   316,   323,   320,   322,
1779 <     314,   313,   455,     0,   259,     0,   277,   274,   273,   194,
1780 <     160,   192,   158,   202,     0,   201,     0,   190,   184,   195,
1781 <     196,   187,   154,   191,   157,   193,   185,   186,   159,   197,
1782 <     165,   181,   182,   166,   167,   168,   169,   176,   170,   179,
1783 <     183,   172,   177,   173,   178,   171,   175,   174,   180,     0,
1784 <     164,   189,   156,   188,    66,   356,     0,   379,     0,     0,
1785 <     430,   435,   439,   440,   437,   438,   441,   436,   486,   682,
1786 <     674,   311,   308,   456,   260,     0,   199,   204,   214,   212,
1787 <     221,   211,   206,   215,   219,   208,   216,   218,   213,   207,
1788 <     220,   217,   209,   210,   205,   162,     0,   357,   380,   434,
1789 <     431,   203,   200,   163
1753 >       0,   380,     0,     0,   426,   439,     0,     0,   441,   513,
1754 >     517,   531,   598,   544,   511,   538,   541,   512,   503,   502,
1755 >     505,   506,   504,   520,   509,   510,   521,   508,   516,   515,
1756 >     514,   539,   501,   596,   597,   535,   581,   575,   592,   576,
1757 >     577,   578,   586,   595,   579,   589,   593,   582,   594,   587,
1758 >     583,   588,   580,   591,   585,   584,   590,     0,   574,   537,
1759 >     555,   550,   567,   551,   552,   553,   561,   570,   554,   564,
1760 >     568,   557,   569,   562,   558,   563,   556,   566,   560,   559,
1761 >     565,     0,   549,   532,   530,   533,   543,   534,   523,   528,
1762 >     529,   526,   527,   524,   525,   542,   545,   507,   536,   519,
1763 >     518,   540,   522,     0,     0,     0,     0,     0,     0,     0,
1764 >       0,   283,     0,     0,   417,     0,     0,     0,   278,   274,
1765 >     277,   259,    49,    50,     0,     0,   108,     0,     0,     0,
1766 >       0,     0,     0,     0,     0,   146,     0,     0,     0,   317,
1767 >     638,   643,   641,   644,   639,   640,   642,    88,    96,    87,
1768 >      94,    95,    86,    90,    89,    83,    82,    84,    93,    85,
1769 >      72,     0,    73,     0,    91,    92,     0,     0,   358,   122,
1770 >       0,     0,     0,   134,     0,   126,   127,   129,   128,   332,
1771 >       0,     0,     0,   334,    30,    31,    32,    33,    34,    35,
1772 >      36,   247,   248,   240,   257,   256,     0,   255,   242,   244,
1773 >     251,   243,   241,   250,   237,   249,   239,   238,    37,    37,
1774 >      37,    39,    38,   245,   246,   401,   403,   404,   414,   411,
1775 >     398,   412,   409,   410,     0,   408,   413,   397,   402,   400,
1776 >     415,   399,   432,   433,   447,   448,   572,     0,   547,     0,
1777 >     297,   298,   307,   304,   309,   305,   306,   312,   308,   310,
1778 >     303,   311,     0,   302,   296,   315,   314,   313,   295,   424,
1779 >     423,   281,   280,   265,   266,   264,     0,   263,     0,     0,
1780 >       0,   114,   115,   163,   161,   208,   196,   205,   204,   194,
1781 >     199,   215,   207,   213,   198,   201,   210,   212,   209,   206,
1782 >     214,   202,   211,   200,   203,     0,   192,   158,   160,   162,
1783 >     173,   168,   185,   169,   170,   171,   179,   188,   172,   182,
1784 >     186,   175,   187,   180,   176,   181,   174,   184,   178,   177,
1785 >     183,     0,   167,   159,   326,   324,   325,    74,    78,   364,
1786 >     369,   375,   378,   371,   377,   372,   376,   374,   370,   373,
1787 >       0,   368,   130,     0,     0,     0,     0,   125,   341,   347,
1788 >     353,   356,   349,   355,   350,   354,   352,   348,   351,     0,
1789 >     346,   342,   253,     0,    40,    41,    42,   406,     0,   573,
1790 >     548,   300,     0,   261,     0,   279,   276,   275,     0,     0,
1791 >       0,   190,     0,   165,     0,   366,     0,     0,     0,     0,
1792 >       0,   124,   344,     0,   254,   407,   301,   262,   195,   193,
1793 >     197,   191,   166,   367,   131,   133,   132,   140,   143,   142,
1794 >     139,   144,   141,   138,     0,   137,   345,   135,     0,   136
1795   };
1796  
1797   /* YYDEFGOTO[NTERM-NUM].  */
1798   static const yytype_int16 yydefgoto[] =
1799   {
1800 <      -1,     1,    24,   900,   901,  1056,  1057,    25,   277,   278,
1801 <     279,   280,    26,   315,   316,   317,   553,  1164,  1165,   318,
1802 <     319,   320,   321,   322,   323,   324,   325,   326,   327,   328,
1803 <      27,    71,    72,    73,    74,    75,    28,   260,   261,   262,
1804 <     263,   264,   265,   266,   267,   268,   269,   270,   271,   272,
1805 <     273,    29,    61,   282,   825,   826,   827,   283,   828,   829,
1806 <     830,   831,   832,   833,  1138,  1439,  1440,   834,   835,   836,
1807 <     837,   838,   839,   840,   841,   842,   843,   844,   845,   846,
1808 <     847,   848,  1124,  1404,  1405,  1465,  1406,  1484,    30,    49,
1809 <     116,   614,   615,   616,   117,   617,   618,   619,   620,   621,
1810 <     622,   623,   624,   625,   626,   627,   628,    31,    58,   500,
1811 <     774,  1270,  1271,   501,   502,   503,  1276,  1096,  1097,   504,
1812 <     505,    32,    56,   468,   469,   470,   471,   472,   473,   474,
1813 <     475,   754,  1248,  1249,  1378,  1250,  1391,   476,   477,   478,
1814 <     479,   480,   481,   482,   483,   484,   485,    33,    62,   531,
1815 <     532,   533,   534,   535,    34,    65,   564,   565,   566,   567,
1816 <     568,   878,  1317,  1318,    35,    66,   572,   573,   574,   575,
1817 <     884,  1332,  1333,    36,    50,   119,   649,   650,   651,   120,
1818 <     652,   653,   654,   655,   656,   657,   658,   659,   941,  1358,
1819 <    1359,  1449,  1360,  1457,   660,   661,   662,   663,   664,   665,
1820 <     666,   667,   668,   669,    37,    57,   490,   769,  1264,  1265,
1821 <     491,   492,   493,   494,    38,    51,   362,   363,   364,   365,
1822 <      39,   124,   125,   126,    40,    53,   373,   678,  1222,  1223,
1823 <     374,   375,   376,   377,    41,   185,   186,   187,   188,   189,
1824 <     190,   191,   192,   193,   194,   195,   196,   197,   198,   199,
1825 <     200,   201,   202,   203,   204,   205,   206,   207,   208,   209,
1826 <     210,   211,   212,   213,   214,   215,   216,   217,   218,   219,
1827 <     220,   221,   222,   223,   224,   225,   226,   227,   228,   229,
1828 <     230,   231,   232,   233,   234,   235,   236,   413,  1035,  1036,
2002 <     237,   411,  1013,  1014,   238,   239,   240,   241,   242,    42,
2003 <      55,   443,   444,   445,   446,   447,   744,  1239,  1240,   448,
2004 <     449,   450,   741,  1233,  1234,    43,    95,    96,    97,    98,
2005 <      99,   100,   101,   102,   103,   104,   105,   106,   107,   108,
2006 <     109,   110,   111,   112,   113,   114,    44,   293,   294,   295,
2007 <     296,   297,   298,   299,   300,   301
1800 >      -1,     1,    25,   799,   800,  1051,  1052,    26,   220,   221,
1801 >     222,   223,    27,   262,   263,   264,   265,   760,   761,   764,
1802 >     765,   266,   267,   268,   269,   270,   271,   272,   273,   274,
1803 >     275,   276,   277,   278,   279,   280,    28,    74,    75,    76,
1804 >      77,    78,    29,    61,   491,   492,   493,   494,    30,   284,
1805 >     285,   286,   287,   288,  1014,  1015,  1016,  1017,  1018,  1185,
1806 >    1254,  1255,    31,    62,   504,   505,   506,   507,   508,   509,
1807 >     510,   511,   512,   727,  1161,  1162,   513,   723,  1135,  1136,
1808 >      32,    51,   332,   333,   334,   335,   336,   337,   338,   339,
1809 >     340,   341,   342,   343,   344,   345,   346,   347,   348,   349,
1810 >     598,  1036,  1037,    33,    59,   477,   708,  1106,  1107,   478,
1811 >     479,   480,  1110,   959,   960,   481,   482,    34,    57,   455,
1812 >     456,   457,   458,   459,   460,   461,   693,  1092,  1093,   462,
1813 >     463,   464,    35,    63,   518,   519,   520,   521,   522,    36,
1814 >     291,   292,   293,    37,    69,   571,   572,   573,   574,   575,
1815 >     781,  1199,  1200,    38,    66,   555,   556,   557,   558,   771,
1816 >    1180,  1181,    39,    52,   364,   365,   366,   367,   368,   369,
1817 >     370,   371,   372,   373,   620,  1064,  1065,   374,   375,   376,
1818 >     377,   378,    40,    58,   468,   469,   470,   471,    41,    53,
1819 >     382,   383,   384,   385,    42,   111,   112,   113,    43,    55,
1820 >     392,   393,   394,   395,    44,   164,   165,   166,   167,   168,
1821 >     169,   170,   171,   172,   173,   174,   175,   176,   177,   178,
1822 >     179,   180,   181,   182,   183,   184,   185,   186,   187,   188,
1823 >     189,   190,   191,   192,   193,   194,   195,   196,   197,   198,
1824 >     199,   200,   201,   202,   203,   204,   205,   206,   207,   208,
1825 >     209,   425,   921,   922,   210,   423,   897,   898,   211,   212,
1826 >     213,    45,    92,    93,    94,    95,    96,    97,    98,    99,
1827 >     100,   101,   102,   103,   104,   105,    46,   235,   236,   237,
1828 >     238,   239,   240,   241,   242,   243
1829   };
1830  
1831   /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
1832     STATE-NUM.  */
1833 < #define YYPACT_NINF -952
1833 > #define YYPACT_NINF -1010
1834   static const yytype_int16 yypact[] =
1835   {
1836 <    -952,   888,  -952,  -233,  -260,  -258,  -952,  -952,  -952,  -255,
1837 <    -952,  -253,  -952,  -952,  -952,  -952,  -250,  -237,  -952,  -952,
1838 <    -228,  -226,  -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,
1839 <    -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,
1840 <    -952,  -952,  -952,  -952,  -952,  -952,  -952,   302,   766,  -136,
1841 <    -112,  -199,    17,  -193,   475,  -190,  -187,  -173,  -167,   702,
1842 <       2,   -46,  -149,   361,   520,  -140,  -134,  -130,  -121,  -102,
1843 <     -84,     4,  -952,  -952,  -952,  -952,  -952,   -82,   -77,   -62,
1844 <     -57,   -51,   -33,   -30,   -25,   -16,    -5,    -4,    20,    24,
1845 <      37,    40,    46,    49,    59,   286,  -952,  -952,  -952,  -952,
1846 <    -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,
1847 <    -952,  -952,  -952,  -952,  -952,  -952,    36,  -952,  -952,    63,
1848 <    -952,    19,  -952,    70,     7,  -952,  -952,   159,  -952,    71,
1849 <      76,    79,    84,    91,    98,   104,   105,   107,   108,   109,
1850 <     112,   113,   114,   116,   117,   118,   121,   125,   126,   130,
1851 <     132,   136,   140,   142,   144,   146,   148,   153,   155,   157,
1852 <     161,   164,  -952,   165,  -952,   169,   170,   171,   172,   173,
1853 <     181,   184,   185,   194,   196,   198,   199,   200,   201,   204,
1854 <     206,   209,   210,   212,   213,    23,  -952,  -952,  -952,  -952,
1855 <    -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,
1856 <    -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,
1857 <    -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,
1858 <    -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,
1859 <    -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,
1860 <    -952,  -952,  -952,   552,   784,    93,    88,   217,   215,   216,
1861 <     220,   224,   225,   226,   227,   231,   232,   234,   235,   239,
1862 <     133,  -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,
1863 <    -952,  -952,  -952,  -952,   243,   241,   245,    27,  -952,  -952,
1864 <    -952,  -952,   247,  -952,    25,  -952,   248,   250,   252,   259,
1865 <     260,   261,   266,    45,  -952,  -952,  -952,  -952,  -952,  -952,
1866 <    -952,  -952,   271,   269,   270,   272,   276,   278,   279,   280,
1867 <    -952,   281,   285,   289,   290,   303,  -952,  -952,  -952,  -952,
1868 <    -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,    56,
1869 <      62,  -952,   357,   381,   396,   296,  -952,   363,   434,   436,
1870 <     374,   375,   444,   444,   449,   450,   387,   390,   462,   444,
1871 <     397,   400,   403,   404,   405,   318,  -952,   634,   703,  -952,
1872 <     342,   343,    15,  -952,  -952,  -952,   454,   348,  -952,  -952,
1873 <     346,   353,  -952,  -952,   158,  -952,  -952,  -952,   414,   444,
1874 <     421,   444,   494,   476,   497,   433,   435,   437,   500,   483,
1875 <     440,   510,   513,   514,   451,   444,   452,   453,   516,   499,
1876 <     461,   529,   530,   444,   533,   542,   512,   543,   546,   481,
1877 <     482,   417,   484,   419,   444,   444,   486,   444,   536,   489,
1878 <     493,   495,  -150,  -141,   496,   498,   444,   444,   560,   444,
1879 <     501,   503,   509,   511,   455,  -952,  -952,  -952,   446,   456,
1880 <    -952,   457,   459,    44,  -952,  -952,  -952,  -952,  -952,  -952,
1881 <    -952,   463,   467,   468,   485,   487,  -952,   490,   506,   507,
1882 <     508,   519,   524,   526,   527,   531,   532,   544,   160,  -952,
1883 <    -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,
1884 <    -952,  -952,  -952,  -952,  -952,  -952,  -952,   548,  -952,   550,
1885 <    -952,    12,  -952,  -952,  -952,   465,  -952,   551,   553,   554,
1886 <    -952,    14,  -952,  -952,  -952,  -952,  -952,   557,   559,   561,
1887 <     564,   585,   586,   591,   592,   230,   596,   613,   577,   537,
1888 <    -952,  -952,   640,   643,   549,  -952,   574,   555,   556,   562,
1889 <     563,    32,  -952,  -952,  -952,  -952,   623,   630,   631,   665,
1890 <     632,   633,   444,   575,  -952,  -952,   681,   639,   685,   688,
1891 <     689,   690,   691,   582,   693,   565,   694,   695,   589,  -952,
1892 <     590,   593,  -952,   594,     9,  -952,  -952,  -952,  -952,   601,
1893 <     607,  -952,    33,  -952,  -952,  -952,   604,   614,   615,  -952,
1894 <     616,   619,   620,   624,   625,   189,   628,   629,   635,   636,
1895 <     637,   638,   641,   642,   644,   646,   647,   651,   654,  -952,
1896 <     656,   610,   618,   627,   655,   660,   661,   662,   663,   664,
1897 <     667,   669,   670,   671,   223,  -952,  -952,  -952,  -952,  -952,
1898 <    -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,   657,
1899 <     672,   673,   674,   676,   679,   680,   683,   684,   686,  -952,
1900 <     687,   696,   697,   699,   700,   701,   704,   705,   706,   238,
1901 <    -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,
1902 <    -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,
1903 <     730,   741,   659,  -952,   668,  -952,   746,   747,   707,   711,
1904 <    -952,   712,   713,   716,   717,   719,   720,   721,   722,   723,
1905 <     724,   725,   726,   727,   729,   731,   732,   733,   734,   735,
1906 <     736,   737,   738,   739,   740,   742,   743,   744,   745,   748,
1907 <     749,   750,   751,   752,   815,   753,   871,   754,   755,   767,
1908 <     771,   774,   775,   776,   777,   778,   779,   780,   781,   782,
1909 <     786,   790,   791,   315,   793,   794,   796,   797,   798,   800,
1910 <    -952,   799,   444,   756,   801,   795,   803,   805,  -952,  -952,
1911 <     760,   812,   769,   804,   807,   809,   864,   866,   869,   870,
1912 <     918,   566,   919,   927,   886,   934,   828,  -952,   937,   829,
1913 <     938,   833,  -952,  -952,   831,   942,   943,   772,   837,  -952,
1914 <     838,   842,   846,   847,   849,   850,   857,   860,   865,   867,
1915 <     868,   872,   873,   874,   875,   879,   883,   884,  -952,   887,
1916 <     889,  -952,   890,   861,   891,   892,   893,  -952,   894,   895,
1917 <     896,   897,   898,   899,   900,   901,   902,   903,   904,   905,
1918 <     906,  -952,   907,   909,   910,   149,  -952,  -952,  -952,  -952,
1919 <    -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,
1920 <    -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,
1921 <     976,   977,   978,   911,  -952,   914,   915,   916,   917,   920,
1922 <     921,   922,  -952,   923,   924,   925,   926,   928,   929,   930,
1923 <     -15,   931,   932,   933,   935,  -952,  -952,   993,   936,   998,
1924 <     940,  -952,  -952,   999,   939,   941,  -952,  -952,  -952,  -952,
1925 <    -952,  -952,  -952,  -952,  -952,   444,   444,   444,   444,   444,
1926 <    -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,
1927 <    -952,  -952,  -952,  -952,  -952,  -952,   813,  1022,   444,  1047,
1928 <    1048,  1056,  1063,  1043,  1066,  1067,   444,   444,   560,   944,
1929 <    -952,  -952,  1050,   -13,  1008,  1053,  1054,  1011,  1012,  1013,
1930 <    1058,   949,  1060,  1061,  1062,  1064,  1085,  1065,  1068,  1023,
1931 <    1069,   959,  -952,   963,   964,  -952,  -952,   965,   966,  1070,
1932 <    -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,
1933 <    -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,
1934 <    -952,  -952,  -952,  -952,  -952,  -952,  -952,  -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,  -245,  -952,  -952,  -952,  -952,  -952,  -952,
1938 <    -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,
1939 <    -952,  -952,  -952,  -952,  -952,  -202,  -952,  -952,  -952,  -952,
1940 <    -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,
1941 <    -952,  -952,  -952,   560,   560,   560,  -952,  -952,  -952,  -952,
1942 <    -952,  -952,  -952,  -952,     1,   967,   969,    11,   970,   971,
1943 <    -952,   972,   973,   974,   975,  1106,   979,   980,   981,   982,
1944 <     983,   984,   985,   986,   987,   988,   989,  -952,   990,  1079,
1945 <     991,  -952,     0,   992,   994,   650,   995,  -952,  -952,  -952,
1946 <    -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,
1947 <    -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,
1948 <    1041,  1100,  1059,  1071,   997,  1072,  1073,  1074,  1075,  1076,
1949 <    1102,  1077,  1104,  1078,  1080,  1081,  1105,  1082,  1000,  1083,
1950 <    1108,  1084,  1002,  -952,  1004,  1005,  1006,  -952,  -952,  -952,
1951 <    -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,
1952 <    -952,  -952,  -952,  -952,  -174,  -952,  -952,  -952,  -952,  -952,
1953 <    1007,   534,  1016,  -952,  1024,   621,  -952,  -952,  -952,  -952,
1954 <    -952,  -952,  1025,  1026,  1027,  1028,  1029,  1030,  1031,  1032,
1955 <    1033,  1034,  1035,  1036,  1037,  -952,  1038,  1039,  1040,  1042,
1956 <    1044,  1045,  1046,  1049,  1051,  1052,  1152,  1055,  1057,  1086,
1957 <    1087,  1088,  1089,  1090,  1091,  1092,  -952,  -952,  -952,  -952,
1958 <    -952,  -952,  -148,  -952,  -952,   815,  -952,   871,  -952,  -952,
1959 <    -952,  -952,  -952,  -145,  -952,  -952,  -952,  -952,  -952,  -129,
1960 <    -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,  -117,  -952,
1961 <     447,  -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,
2141 <    -952,  -952,  -952,  -952,   -35,  -952,  -952,  -952,  -952,  -952,
2142 <     -10,  -952,  -952,  -952,  1170,   772,  1093,  1094,  1095,  1096,
2143 <    1097,  1153,  1098,  1099,  1101,  1103,  1107,  1109,  1110,  1111,
2144 <    1112,  1113,  1114,  1115,  1116,   908,  1117,  1118,  1119,  -952,
2145 <    -952,  -952,  -952,  -952,   -15,  -952,  -952,  -952,  -952,  -952,
2146 <    -952,  -952,  -952,  -952,  -952,  -952,  -952,    -8,  -952,  -952,
2147 <    -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,
2148 <    -952,  -952,    35,  -952,  -952,  -952,  -952,  -952,  -952,  -952,
2149 <    -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,
2150 <    -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,    80,  -952,
2151 <      13,  -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,
2152 <    -952,  1070,  -952,  -952,  -952,     1,  -952,    11,   447,  -952,
2153 <    1106,  -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,
2154 <    -952,  -952,  -952,  1079,  -952,     0,  -952,  -952,  -952,  -952,
2155 <    -952,  -952,  -952,  -952,    89,  -952,   366,  -952,  -952,  -952,
2156 <    -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,
2157 <    -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,
2158 <    -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,    95,
2159 <    -952,  -952,  -952,  -952,  -952,  -952,   534,  -952,   621,    13,
2160 <    -952,  1152,  -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,
2161 <    -952,  -952,  -952,  -952,  -952,   366,  -952,  1153,  -952,  -952,
2162 <    -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,
2163 <    -952,  -952,  -952,  -952,  -952,  -952,   908,  -952,  -952,  -952,
2164 <    -952,  -952,  -952,  -952
1836 >   -1010,   612, -1010,  -210,  -218,  -199, -1010, -1010, -1010,  -171,
1837 >   -1010,  -160, -1010, -1010, -1010,  -153, -1010, -1010, -1010,  -147,
1838 >    -134, -1010,  -128,  -117, -1010, -1010, -1010, -1010, -1010, -1010,
1839 >   -1010, -1010, -1010, -1010, -1010, -1010, -1010, -1010, -1010, -1010,
1840 >   -1010, -1010, -1010, -1010, -1010, -1010, -1010, -1010, -1010,   344,
1841 >     674,  -106,   -79,   -65,    10,   -50,   360,   -47,   -41,   -34,
1842 >       5,   -29,   -15,   -13,   631,   328,   -10,    41,    55,    -2,
1843 >    -189,    45,    47,    59,     7, -1010, -1010, -1010, -1010, -1010,
1844 >      61,    62,    69,    74,    76,    98,   105,   106,   118,   122,
1845 >     124,   127,   256, -1010, -1010, -1010, -1010, -1010, -1010, -1010,
1846 >   -1010, -1010, -1010, -1010, -1010, -1010,   640,   527,    32, -1010,
1847 >     129,     8, -1010, -1010,    29, -1010,   130,   131,   136,   138,
1848 >     143,   145,   147,   148,   150,   152,   153,   155,   156,   166,
1849 >     168,   170,   176,   183,   184,   185,   186,   189,   194,   195,
1850 >     196,   197,   198, -1010,   204, -1010,   205,   213,   214,   217,
1851 >     219,   225,   229,   230,   233,   237,   238,   241,   243,   257,
1852 >     258,   260,   263,   264,    17, -1010, -1010, -1010, -1010, -1010,
1853 >   -1010, -1010, -1010, -1010, -1010, -1010, -1010, -1010, -1010, -1010,
1854 >   -1010, -1010, -1010, -1010, -1010, -1010, -1010, -1010, -1010, -1010,
1855 >   -1010, -1010, -1010, -1010, -1010, -1010, -1010, -1010, -1010, -1010,
1856 >   -1010, -1010, -1010, -1010, -1010, -1010, -1010, -1010, -1010, -1010,
1857 >   -1010, -1010, -1010, -1010,   493,    43,    19,    23,   270,   272,
1858 >      65, -1010, -1010, -1010,    21,   376,   274, -1010,   277,   278,
1859 >     280,   281,   290,   291,   292,   146, -1010, -1010, -1010, -1010,
1860 >   -1010, -1010, -1010, -1010,    99,   300,   301,   303,   305,   307,
1861 >     308,   309,   310,   312,   313,   315,   316,   320,   323,   324,
1862 >     325,   327,   117, -1010, -1010, -1010, -1010, -1010, -1010, -1010,
1863 >   -1010, -1010, -1010, -1010, -1010, -1010, -1010, -1010, -1010, -1010,
1864 >   -1010,   111,   331,   334,    20, -1010, -1010, -1010,    86, -1010,
1865 >     336,    24, -1010, -1010,    54, -1010,   218,   378,   435,   340,
1866 >   -1010,   330,   457,   193,   458,   459,   459,   459,   462,   467,
1867 >     471,   373,   374,   362, -1010,   363,   357,   361,   367, -1010,
1868 >     369,   370,   377,   379,   381,   382,   391,   394,   395,   396,
1869 >     397,   399,   173, -1010, -1010, -1010, -1010, -1010, -1010, -1010,
1870 >   -1010, -1010, -1010, -1010, -1010, -1010, -1010, -1010, -1010, -1010,
1871 >     392,   401,   405,   408,   410,   411,   412, -1010,   414,   416,
1872 >     417,   419,   421,   426,   242, -1010, -1010, -1010, -1010, -1010,
1873 >   -1010, -1010, -1010, -1010, -1010, -1010, -1010, -1010, -1010, -1010,
1874 >     427,   428,    26, -1010, -1010, -1010,   478,   434, -1010, -1010,
1875 >     432,   443,    52, -1010, -1010, -1010,   464,   459,   459,   495,
1876 >     465,   466,   567,   554,   475,   459,   481,   570,   581,   459,
1877 >     582,   484,   485,   487,   459,   587,   590,   459,   591,   592,
1878 >     593,   596,   499,   480,   503,   498,   504,   459,   459,   520,
1879 >     522,   523,  -158,   -43,   524,   526,   611,   459,   528,   530,
1880 >     459,   459,   534,   535,   531, -1010,   536,   517,   521, -1010,
1881 >     532,   537,   538,   539,   540,    18, -1010, -1010, -1010, -1010,
1882 >   -1010, -1010, -1010, -1010, -1010, -1010,   541,   542,    66, -1010,
1883 >   -1010, -1010,   546,   545,   547, -1010,   548, -1010,    27, -1010,
1884 >   -1010, -1010, -1010, -1010,   628,   635,   552, -1010,   553,   555,
1885 >     557,   141, -1010, -1010, -1010,   556,   558,   560, -1010,   561,
1886 >     562,   563, -1010,   564,    68, -1010, -1010, -1010, -1010, -1010,
1887 >   -1010, -1010, -1010, -1010,   568,   566,   569,   571,    15, -1010,
1888 >   -1010, -1010, -1010,   574,   594,   639,   598,   601,   604,   459,
1889 >     573, -1010, -1010,   671,   606,   677,   655,   707,   693,   695,
1890 >     700,   702,   703,   704,   720,   708,    67,    84,   709,   713,
1891 >     613, -1010,   614,   603, -1010,   114, -1010, -1010, -1010, -1010,
1892 >     632,   616, -1010,   615,   719,   620, -1010,   627,   629, -1010,
1893 >     634,    16, -1010, -1010, -1010, -1010,   630,   638,   642, -1010,
1894 >     645,   646,   647,   649,   578,   650,   651,   659,   665,   669,
1895 >     670,   672,   673, -1010, -1010,   750,   751,   459,   641,   771,
1896 >     793,   459,   795,   796,   459,   782,   798,   800,   459,   801,
1897 >     801,   686, -1010, -1010,   791,    33,   792,   710,   797,   799,
1898 >     689,   802,   804,   810,   805,   806,   807,   699, -1010,   808,
1899 >     809,   711, -1010,   712, -1010,   811,   814,   714, -1010,   715,
1900 >     716,   717,   718,   721,   723,   724,   725,   726,   727,   728,
1901 >     729,   730,   731,   732,   733,   734,   735,   736,   737,   738,
1902 >     739,   740,   741,   742,   743,   744,   644,   745,   687,   746,
1903 >     747,   748,   749,   752,   753,   754,   755,   756,   757,   758,
1904 >     759,   760,   761,   762,   763,   764,   765,   766,   767, -1010,
1905 >   -1010,   820,   768,   692,   821,   816,   823,   851,   869,   769,
1906 >   -1010,   871,   872,   772, -1010, -1010,   874,   875,   706,   891,
1907 >     776, -1010,   777,   778, -1010, -1010,   880,   881,   781, -1010,
1908 >   -1010,   883,   803,   780,   885,   886,   888,   785,   890,   790,
1909 >   -1010, -1010,   892,   893,   894,   794, -1010,   812,   813,   815,
1910 >     817,   818,   819,   822, -1010,   824,   825,   826,   827,   828,
1911 >     829,   830,   831,   832,   833,   834,   835,   836, -1010, -1010,
1912 >    -191, -1010, -1010, -1010,  -164, -1010,   837,   838, -1010, -1010,
1913 >     896,   839,   840, -1010,   841, -1010,   116,   843, -1010, -1010,
1914 >     897,   842,   898,   844, -1010, -1010, -1010, -1010, -1010, -1010,
1915 >   -1010, -1010,   459,   459,   459,   459,   459,   459,   459, -1010,
1916 >   -1010, -1010, -1010, -1010, -1010, -1010, -1010, -1010, -1010,   846,
1917 >     847,   848,   -35,   849,   850,   852,   853,   854,   855,   856,
1918 >     857,   858,   859,   211,   860,   861, -1010,   862,   863,   864,
1919 >     865,   866,   867,   868,     2,   870,   873,   876,   877,   878,
1920 >     879, -1010,   882,   884, -1010, -1010,   887,   889, -1010, -1010,
1921 >   -1010, -1010, -1010, -1010, -1010, -1010, -1010, -1010, -1010, -1010,
1922 >   -1010, -1010, -1010, -1010, -1010, -1010, -1010, -1010, -1010, -1010,
1923 >   -1010, -1010, -1010, -1010, -1010, -1010, -1010, -1010, -1010, -1010,
1924 >   -1010, -1010, -1010, -1010, -1010, -1010, -1010, -1010, -1010, -1010,
1925 >   -1010, -1010, -1010, -1010, -1010, -1010, -1010,  -150, -1010, -1010,
1926 >   -1010, -1010, -1010, -1010, -1010, -1010, -1010, -1010, -1010, -1010,
1927 >   -1010, -1010, -1010, -1010, -1010, -1010, -1010, -1010, -1010, -1010,
1928 >   -1010,  -107, -1010, -1010, -1010, -1010, -1010, -1010, -1010, -1010,
1929 >   -1010, -1010, -1010, -1010, -1010, -1010, -1010, -1010, -1010, -1010,
1930 >   -1010, -1010, -1010,   895,   899,   393,   900,   901,   902,   903,
1931 >     904, -1010,   905,   906, -1010,   907,   908,   -36,   919,   909,
1932 >   -1010, -1010, -1010, -1010,   910,   911, -1010,   912,   914,   429,
1933 >     915,   916,   917,   722,   918, -1010,   920,   921,   922, -1010,
1934 >   -1010, -1010, -1010, -1010, -1010, -1010, -1010, -1010, -1010, -1010,
1935 >   -1010, -1010, -1010, -1010, -1010, -1010, -1010, -1010, -1010, -1010,
1936 >   -1010,    67, -1010,    84, -1010, -1010,   923,   286, -1010, -1010,
1937 >     924,   925,   926, -1010,    82, -1010, -1010, -1010, -1010, -1010,
1938 >     927,   389,   930, -1010, -1010, -1010, -1010, -1010, -1010, -1010,
1939 >   -1010, -1010, -1010, -1010, -1010, -1010,   -69, -1010, -1010, -1010,
1940 >   -1010, -1010, -1010, -1010, -1010, -1010, -1010, -1010,   801,   801,
1941 >     801, -1010, -1010, -1010, -1010, -1010, -1010, -1010, -1010, -1010,
1942 >   -1010, -1010, -1010, -1010,   -66, -1010, -1010, -1010, -1010, -1010,
1943 >   -1010, -1010, -1010, -1010, -1010, -1010, -1010,   644, -1010,   687,
1944 >   -1010, -1010, -1010, -1010, -1010, -1010, -1010, -1010, -1010, -1010,
1945 >   -1010, -1010,   -46, -1010, -1010, -1010, -1010, -1010, -1010, -1010,
1946 >   -1010, -1010, -1010, -1010, -1010, -1010,   -18, -1010,   932,   891,
1947 >     931, -1010, -1010, -1010, -1010, -1010,   928, -1010, -1010,   929,
1948 >   -1010, -1010, -1010, -1010,   933, -1010, -1010, -1010, -1010, -1010,
1949 >   -1010, -1010, -1010, -1010, -1010,    89, -1010, -1010, -1010, -1010,
1950 >   -1010, -1010, -1010, -1010, -1010, -1010, -1010, -1010, -1010, -1010,
1951 >   -1010, -1010, -1010, -1010, -1010, -1010, -1010, -1010, -1010, -1010,
1952 >   -1010,    90, -1010, -1010, -1010, -1010, -1010, -1010, -1010, -1010,
1953 >   -1010, -1010, -1010, -1010, -1010, -1010, -1010, -1010, -1010, -1010,
1954 >      96, -1010, -1010,   940,  -102,   934,   935, -1010, -1010, -1010,
1955 >   -1010, -1010, -1010, -1010, -1010, -1010, -1010, -1010, -1010,   119,
1956 >   -1010, -1010, -1010,   -35, -1010, -1010, -1010, -1010,     2, -1010,
1957 >   -1010, -1010,   393, -1010,   -36, -1010, -1010, -1010,   946,   964,
1958 >     966, -1010,   429, -1010,   722, -1010,   286,   936,   939,   941,
1959 >     319, -1010, -1010,   389, -1010, -1010, -1010, -1010, -1010, -1010,
1960 >   -1010, -1010, -1010, -1010, -1010, -1010, -1010, -1010, -1010, -1010,
1961 >   -1010, -1010, -1010, -1010,   120, -1010, -1010, -1010,   319, -1010
1962   };
1963  
1964   /* YYPGOTO[NTERM-NUM].  */
1965   static const yytype_int16 yypgoto[] =
1966   {
1967 <    -952,  -952,  -952,  -816,  -342,  -951,  -426,  -952,  -952,   578,
1968 <    -952,  -952,  -952,  -952,   541,  -952,  -952,  -952,     5,  -952,
1969 <    -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,
1970 <    -952,  -952,  1234,  -952,  -952,  -952,  -952,  -952,  1122,  -952,
1971 <    -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,
1972 <    -952,  -952,  -952,  -952,  -952,   491,  -952,  -952,  -952,  -952,
1973 <    -952,  -952,  -952,  -952,  -952,  -952,  -176,  -952,  -952,  -952,
1974 <    -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,
1975 <    -952,  -952,  -952,  -952,  -155,  -952,  -952,  -147,  -952,  -952,
1976 <    -952,  -952,   708,  -952,  -952,  -952,  -952,  -952,  -952,  -952,
1977 <    -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,
1978 <    -952,  -952,   -80,  -952,   819,  -952,  -952,  -952,    48,  -952,
1979 <    -952,  -952,  -952,  -952,   853,  -952,  -952,  -952,  -952,  -952,
1980 <    -952,  -952,  -952,   -56,  -952,  -952,   -53,  -952,  -952,  -952,
1981 <    -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,
1982 <     802,  -952,  -952,  -952,  -952,  -952,  -952,   762,  -952,  -952,
1983 <    -952,  -952,  -952,  -119,  -952,  -952,  -952,   757,  -952,  -952,
1984 <    -952,  -952,  -120,  -952,  -952,  -952,  -952,   682,  -952,  -952,
1985 <    -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,
1986 <    -116,  -952,  -952,  -115,  -952,  -952,  -952,  -952,  -952,  -952,
1987 <    -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,   -63,
1988 <    -952,   841,  -952,  -952,  -952,  -952,  -952,  1021,  -952,  -952,
1989 <    -952,  -952,  1212,  -952,  -952,  -952,  -952,  -952,  -952,   -34,
1990 <    -952,   968,  -952,  -952,  -952,  -952,  1154,  -952,  -952,  -952,
1991 <    -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,
1992 <    -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,
1993 <    -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,
1994 <    -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,
1995 <    -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,   111,
2199 <    -952,  -952,  -952,   115,  -952,  -952,  -952,  -952,  -952,  -952,
2200 <    -952,  -952,   945,  -952,  -952,  -952,  -952,  -952,   -36,  -952,
2201 <    -952,  -952,  -952,  -952,   -32,  -952,  -952,  1249,  -952,  -952,
2202 <    -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,
2203 <    -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,  1120,  -952,
2204 <    -952,  -952,  -952,  -952,  -952,  -952
1967 >   -1010, -1010, -1010,  -132,  -303, -1009,  -609, -1010, -1010,   943,
1968 >   -1010, -1010, -1010, -1010,   770, -1010, -1010, -1010,    22, -1010,
1969 >      25, -1010, -1010, -1010, -1010, -1010, -1010, -1010, -1010, -1010,
1970 >   -1010, -1010, -1010, -1010, -1010, -1010, -1010, -1010,   947, -1010,
1971 >   -1010, -1010, -1010, -1010, -1010,   533, -1010, -1010, -1010, -1010,
1972 >     913, -1010, -1010, -1010, -1010,    11, -1010, -1010, -1010, -1010,
1973 >   -1010,  -236, -1010, -1010, -1010,   525, -1010, -1010, -1010, -1010,
1974 >   -1010, -1010, -1010, -1010, -1010,  -198, -1010, -1010, -1010,  -195,
1975 >   -1010, -1010, -1010,   698, -1010, -1010, -1010, -1010, -1010, -1010,
1976 >   -1010, -1010, -1010, -1010, -1010, -1010, -1010, -1010, -1010, -1010,
1977 >   -1010, -1010,  -172, -1010, -1010, -1010, -1010, -1010,  -181, -1010,
1978 >     559, -1010, -1010, -1010,   -75, -1010, -1010, -1010, -1010, -1010,
1979 >     588, -1010, -1010, -1010, -1010, -1010, -1010, -1010,  -168, -1010,
1980 >   -1010, -1010, -1010, -1010, -1010,   577, -1010, -1010, -1010, -1010,
1981 >   -1010,   937, -1010, -1010, -1010, -1010,   543, -1010, -1010, -1010,
1982 >   -1010, -1010,  -187, -1010, -1010, -1010,   549, -1010, -1010, -1010,
1983 >   -1010,  -129, -1010, -1010, -1010,   784, -1010, -1010, -1010, -1010,
1984 >   -1010, -1010, -1010, -1010, -1010, -1010,  -110, -1010, -1010, -1010,
1985 >   -1010, -1010, -1010, -1010, -1010,   643, -1010, -1010, -1010, -1010,
1986 >   -1010,   773, -1010, -1010, -1010, -1010,   992, -1010, -1010, -1010,
1987 >   -1010,   774, -1010, -1010, -1010, -1010,   942, -1010, -1010, -1010,
1988 >   -1010, -1010, -1010, -1010, -1010, -1010, -1010, -1010, -1010, -1010,
1989 >   -1010, -1010, -1010, -1010, -1010, -1010, -1010, -1010, -1010, -1010,
1990 >   -1010, -1010, -1010, -1010, -1010, -1010, -1010, -1010, -1010, -1010,
1991 >   -1010, -1010, -1010, -1010, -1010, -1010, -1010, -1010, -1010, -1010,
1992 >   -1010, -1010, -1010,    30, -1010, -1010, -1010,    31, -1010, -1010,
1993 >   -1010, -1010, -1010,  1021, -1010, -1010, -1010, -1010, -1010, -1010,
1994 >   -1010, -1010, -1010, -1010, -1010, -1010, -1010, -1010,   938, -1010,
1995 >   -1010, -1010, -1010, -1010, -1010, -1010
1996   };
1997  
1998   /* YYTABLE[YYPACT[STATE-NUM]].  What to do in state STATE-NUM.  If
1999     positive, shift that token.  If negative, reduce the rule which
2000 <   number is the opposite.  If zero, do what YYDEFACT says.
2001 <   If YYTABLE_NINF, syntax error.  */
2002 < #define YYTABLE_NINF -1
2212 < static const yytype_uint16 yytable[] =
2000 >   number is the opposite.  If YYTABLE_NINF, syntax error.  */
2001 > #define YYTABLE_NINF -124
2002 > static const yytype_int16 yytable[] =
2003   {
2004 <     586,   587,   734,   274,    47,    67,    48,   593,   122,    52,
2005 <     560,    54,  1231,   486,    59,   495,   359,  1224,   122,   115,
2006 <     359,  1225,  1237,  1452,   128,  1453,   527,    60,   274,    45,
2007 <      46,   129,   130,   527,   569,   131,    63,   682,    64,   684,
2008 <    1454,    68,   132,   118,  1455,   436,   285,   528,   437,   725,
2009 <     726,   133,    69,   698,   528,   134,   135,   560,   727,   728,
2010 <    1226,   706,   136,   569,  1227,   121,   137,   138,   139,   496,
2011 <     140,   127,   717,   718,   243,   720,   141,   244,  1267,  1177,
2012 <    1178,  1179,  1180,  1181,   731,   732,   286,   735,  1303,   495,
2013 <     438,   245,  1304,   439,   486,   142,   143,   246,   123,   497,
2014 <     144,   287,  1228,  1229,  1230,   498,   360,   145,   123,   281,
2015 <     360,   146,   147,   148,  1370,   284,   149,  1374,  1371,   150,
2016 <     151,  1375,   275,   288,   329,   289,    70,   290,   291,   152,
2017 <     330,   561,   331,  1376,   247,   153,   154,  1377,   155,   156,
2018 <     157,   158,   159,   496,   332,  1379,   292,   275,   440,  1380,
2019 <     802,   529,   276,   160,   803,   570,  1162,  1163,   529,   369,
2020 <     369,   451,   161,   333,   162,   163,   441,   164,   499,   487,
2021 <     165,   166,   361,   497,   167,   804,   361,   276,   561,   498,
2022 <     452,   334,   530,   337,   570,   168,   453,   805,   338,   530,
2023 <     248,   249,   250,   251,   252,   253,   254,   255,   562,   806,
2024 <     861,   488,  1232,   339,   807,  1197,  1198,   169,   340,   170,
2025 <     454,   455,  1238,   171,   341,   456,   808,   172,   173,   174,
2026 <     175,   176,   571,   809,   600,   177,   178,  1392,   810,   457,
2027 <     811,  1393,   342,  1268,   179,   343,   458,  1269,   256,   629,
2028 <     344,   630,   499,   812,   631,   562,   601,   602,   632,   345,
2029 <     487,   571,  1394,   603,  1445,   459,  1395,  1456,  1446,   563,
2030 <     346,   347,   489,   633,   634,   635,   180,   335,   181,   636,
2031 <     367,   813,   880,   257,   182,   771,   814,   778,   672,   183,
2032 <     370,   370,   488,   460,   184,   348,   434,    76,   637,   349,
2033 <     524,   461,   638,   639,   442,   853,   885,  1447,   815,    77,
2034 <     357,  1448,   350,    67,   302,   351,   563,   747,   543,   462,
2035 <     816,   352,   817,   818,   353,   371,   371,   819,   463,   464,
2036 <      78,    79,   585,   640,   354,   641,    80,   358,    81,  1053,
2037 <    1054,  1055,   604,   605,   606,   366,   378,   607,   642,    68,
2038 <     303,   379,  1450,   489,   380,   608,  1451,   372,   372,   381,
2039 <      69,  1466,   465,   466,   258,  1467,   382,  1485,   609,   610,
2040 <     643,  1486,   285,   383,   895,   896,   897,   898,   899,   384,
2041 <     385,  1468,   386,   387,   388,   611,   612,   389,   390,   391,
2042 <     820,   392,   393,   394,    82,    83,   395,   821,   259,   304,
2043 <     396,   397,   644,    84,    85,   398,   519,   399,   822,   823,
2044 <    1065,   400,   286,   613,  1469,   401,   645,   402,   824,   403,
2045 <     467,   404,  1142,   405,    86,    87,  1470,   287,   406,   646,
2046 <     407,   679,   408,   766,    70,   305,   409,   306,   307,   410,
2047 <     412,    88,    89,  1471,   414,   415,   416,   417,   418,   288,
2048 <    1472,   289,    90,   290,   291,  1473,   419,  1474,   733,   420,
2049 <     421,    91,   788,   789,   790,   791,   792,   793,   794,   422,
2050 <    1475,   423,   292,   424,   425,   426,   427,  1381,  1382,   428,
2051 <     308,   429,   309,   310,   430,   431,   128,   432,   433,   506,
2052 <     507,   508,   647,   129,   130,   509,   929,   131,   311,   510,
2053 <     511,   512,   513,  1476,   132,   648,   514,   515,  1383,   516,
2054 <     517,   951,  1194,   133,   518,   521,   522,   134,   135,  1477,
2055 <     523,   526,   576,   536,   136,   537,  1384,   538,   137,   138,
2056 <     139,   302,   140,  1385,   539,   540,   541,  1478,   141,  1479,
2057 <    1480,   542,   312,   545,   546,   547,   577,   548,    92,    93,
2058 <      94,   549,  1386,   550,   551,   552,   554,   142,   143,   355,
2059 <     555,   578,   144,   436,   556,   557,   437,   303,   579,   145,
2060 <     313,   314,   580,   146,   147,   148,   558,   581,   149,   582,
2061 <    1387,   150,   151,   583,   584,   802,  1184,   585,  1388,   803,
2062 <     599,   152,   588,   589,  1192,  1193,   590,   153,   154,   591,
2063 <     155,   156,   157,   158,   159,   592,   594,  1481,   438,   595,
2064 <     804,   439,   596,   597,   598,   160,   304,   670,   671,   674,
2065 <     675,   676,   805,   681,   161,  1482,   162,   163,   677,   164,
2066 <     683,  1389,   165,   166,   806,  1483,   167,   685,  1306,   807,
2067 <     687,   686,   688,   691,   689,   600,   690,   168,   692,   693,
2068 <    1390,   808,   305,   694,   306,   307,   695,   696,   809,   701,
2069 <     697,   699,   700,   810,   702,   811,   440,   601,   602,   169,
2070 <     703,   170,   704,   705,   603,   171,   707,   709,   812,   172,
2071 <     173,   174,   175,   176,   441,   708,   710,   177,   178,   711,
2072 <     712,   713,   714,   715,   716,   719,   179,   308,   722,   309,
2073 <     310,   721,   723,   733,   724,   729,   813,   730,   872,  1082,
2074 <     736,   814,   737,   247,   629,   311,   630,  1307,   738,   631,
2075 <     739,   742,   780,   632,   781,  1321,   782,   740,   180,   783,
2076 <     181,   743,   745,   815,   746,   749,   182,   773,   633,   634,
2077 <     635,   183,   750,   751,   636,   816,   184,   817,   818,  1308,
2078 <     784,   785,   819,   604,   605,   606,   786,   787,   607,   312,
2079 <     752,   795,   753,   637,  1309,   755,   608,   638,   639,   248,
2080 <     249,   250,   251,   252,   253,   254,   255,    76,   796,   609,
2081 <     610,   756,   757,   758,  1310,  1311,   797,   313,   314,    77,
2082 <    1312,  1313,  1314,  1315,   759,   451,   611,   612,   640,   760,
2083 <     641,   761,   762,  1316,  1322,   799,   763,   764,   800,   798,
2084 <      78,    79,   442,   642,   452,   820,    80,   256,    81,   765,
2085 <     453,   801,   821,   768,   613,   770,   775,   849,   776,   777,
2086 <     858,   850,   855,   822,   823,   643,  1323,   851,   852,   856,
2087 <     857,   859,   860,   824,   454,   455,   863,   862,   864,   456,
2088 <     865,  1324,   257,   866,   867,   868,   869,   870,   871,   873,
2089 <     874,   875,   876,   457,  1274,   525,   559,   644,   877,   879,
2090 <     458,  1325,  1326,   882,    82,    83,   887,  1327,  1328,  1329,
2091 <    1330,   645,   883,    84,    85,   916,   888,   889,   890,   459,
2092 <    1331,   891,   892,   917,   646,   953,   893,   894,     2,     3,
2093 <     902,   903,   918,     4,    86,    87,   954,   904,   905,   906,
2094 <     907,   957,   958,   908,   909,  1095,   910,   460,   911,   912,
2095 <       5,    88,    89,   913,     6,   461,   914,     7,   915,   931,
2096 <     919,   955,    90,   258,     8,   920,   921,   922,   923,   924,
2097 <     956,    91,   925,   462,   926,   927,   928,   932,   933,   934,
2098 <       9,   935,   463,   464,   936,   937,  1182,   647,   938,   939,
2099 <    1068,   940,   942,    10,    11,  1066,    12,   259,  1069,  1071,
2100 <     648,   943,   944,    13,   945,   946,   947,  1072,  1073,   948,
2101 <     949,   950,   959,   960,   961,   962,   465,   466,   963,   964,
2102 <      14,   965,   966,   967,   968,   969,   970,   971,   972,   973,
2103 <      15,   974,    16,   975,   976,   977,   978,   979,   980,   981,
2104 <     982,   983,   984,  1074,   985,   986,   987,   988,  1076,    17,
2105 <     989,   990,   991,   992,   993,  1015,  1037,  1038,    92,    93,
2106 <      94,   994,   995,   996,   997,   998,    18,   999,  1000,  1039,
2107 <    1001,  1002,  1003,  1040,   467,  1004,  1041,  1042,  1043,  1044,
2108 <    1045,  1046,  1047,  1048,  1049,  1005,  1006,  1007,  1050,  1008,
2109 <    1009,  1010,  1051,  1052,  1011,  1058,  1059,  1012,  1060,  1061,
2110 <    1062,    19,  1063,  1077,  1064,  1078,  1067,  1070,  1079,  1080,
2111 <      20,    21,  1075,  1081,  1083,    22,    23,  1016,  1017,  1018,
2112 <    1019,  1020,  1084,  1021,  1022,  1085,  1023,  1024,  1025,  1086,
2113 <    1087,  1026,  1088,  1090,  1089,  1091,  1092,  1093,  1094,  1098,
2114 <    1099,  1027,  1028,  1029,  1100,  1030,  1031,  1032,  1101,  1102,
2115 <    1033,  1103,  1104,  1034,  1420,  1421,  1422,  1423,  1424,  1105,
2116 <    1425,  1426,  1106,  1427,  1428,  1429,  1120,  1107,  1430,  1108,
2117 <    1109,  1144,  1145,  1146,  1110,  1111,  1112,  1113,  1431,  1432,
2118 <    1433,  1114,  1434,  1435,  1436,  1115,  1116,  1437,  1170,  1117,
2119 <    1438,  1118,  1119,  1172,  1174,  1183,  1121,  1122,  1123,  1125,
2120 <    1126,  1127,  1128,  1129,  1130,  1131,  1132,  1133,  1134,  1135,
2121 <    1136,  1137,  1139,  1147,  1140,  1141,  1148,  1149,  1150,  1151,
2332 <    1185,  1186,  1152,  1153,  1154,  1155,  1156,  1157,  1158,  1187,
2333 <    1159,  1160,  1161,  1166,  1167,  1168,  1188,  1169,  1189,  1190,
2334 <    1191,  1171,  1173,  1176,  1175,  1196,  1195,  1199,  1200,  1201,
2335 <    1202,  1203,  1204,  1205,  1206,  1207,  1208,  1209,  1211,  1210,
2336 <    1212,  1216,  1214,  1213,  1215,  1217,  1218,  1219,  1220,  1235,
2337 <    1221,  1236,  1241,  1242,  1243,  1244,  1245,  1246,  1247,  1263,
2338 <    1277,  1251,  1252,  1253,  1254,  1255,  1256,  1257,  1258,  1259,
2339 <    1260,  1261,  1262,  1266,  1272,  1278,  1273,  1287,  1279,  1289,
2340 <    1293,  1275,  1281,  1297,  1299,  1295,  1300,  1301,  1302,  1305,
2341 <    1280,  1282,  1283,  1284,  1285,  1286,  1288,  1290,  1319,  1291,
2342 <    1292,  1294,  1296,  1298,  1357,  1403,  1320,  1334,  1335,  1336,
2343 <    1337,  1338,  1339,  1340,  1341,  1342,  1343,  1344,  1345,  1346,
2344 <    1347,  1348,  1349,  1396,  1350,   336,  1351,  1352,  1353,  1444,
2345 <    1493,  1354,  1492,  1355,  1356,  1464,  1143,  1361,  1491,  1362,
2346 <     779,   767,   930,  1397,  1462,  1461,   881,  1487,  1488,   886,
2347 <    1463,   952,   772,   854,  1489,  1490,   368,  1458,  1373,   435,
2348 <    1372,  1460,   680,  1459,   356,     0,     0,     0,  1363,  1364,
2349 <    1365,  1366,  1367,  1368,  1369,  1398,  1399,  1400,  1401,  1402,
2350 <    1407,  1408,     0,  1409,     0,  1410,     0,     0,     0,  1411,
2351 <       0,  1412,  1413,  1414,  1415,  1416,  1417,  1418,  1419,  1441,
2352 <    1442,  1443,   520,   673,     0,     0,     0,     0,   748,     0,
2004 >     824,   825,   585,   586,   587,   823,   217,    49,    70,   109,
2005 >    1062,   109,  1103,    47,    48,  1034,   514,   567,   115,   446,
2006 >     472,   282,   488,   116,   117,   289,    50,   379,   472,   118,
2007 >     389,    71,  1000,   379,   295,   447,  1001,   119,    72,  1204,
2008 >    1205,  1206,   282,   120,   465,   121,   122,   123,   675,   515,
2009 >     448,   676,   124,   389,    54,   567,   289,   125,   126,  1002,
2010 >     127,   128,   129,  1003,   130,    56,   217,   465,   110,   495,
2011 >     110,   131,    60,  1076,   473,   132,   133,  1077,    64,   474,
2012 >     449,   475,   473,  1010,   134,   496,   380,   474,  1035,   475,
2013 >     516,    65,   380,   135,   640,   641,   489,    67,  1228,   218,
2014 >     497,   136,   648,   137,    73,   138,   652,   139,    68,   140,
2015 >     141,   657,   552,   568,   660,   552,  1078,  1010,   244,   106,
2016 >    1079,   290,   142,   219,   670,   671,   390,   143,   144,   145,
2017 >     498,   146,   147,   148,   682,   450,   149,   685,   686,   517,
2018 >     476,   245,   488,   451,   452,  1104,   107,   227,   476,   390,
2019 >     381,   568,   290,   391,  1202,  1105,   381,  1207,  1203,   218,
2020 >     108,  1208,   150,   677,   453,   499,   678,   466,   151,   152,
2021 >     153,   154,   155,   246,   315,   114,   391,  1211,   214,  1011,
2022 >     247,  1212,   228,   219,   215,   500,  -123,   490,   316,   317,
2023 >     466,   216,   318,  1063,   229,   230,   224,   231,   232,   233,
2024 >     156,   501,   248,   828,   829,  1213,   249,  -123,   553,  1214,
2025 >     225,   553,   226,  1011,   250,   281,   489,   251,   252,   234,
2026 >    1048,  1049,  1050,   294,   157,   158,   743,   159,   160,   161,
2027 >     569,   299,   387,   162,   570,   319,   454,   283,   163,   735,
2028 >     783,   444,   699,   350,   561,   351,   483,   352,   565,   253,
2029 >     631,   710,   563,   320,   321,   322,   323,    79,   283,   353,
2030 >     324,   467,   758,   759,   325,   502,   254,   255,   569,  1012,
2031 >     326,   296,   570,   297,   354,   514,   637,    80,    81,   762,
2032 >     763,   327,   328,    82,   467,   298,   503,   301,   302,   486,
2033 >     703,   256,   729,   329,   811,   303,  1013,   355,   815,   356,
2034 >     304,   818,   305,  1012,   357,   822,  1186,   490,   515,   257,
2035 >     258,   259,  1221,  1223,   358,   330,  1222,  1224,   823,  1225,
2036 >      83,    84,   532,  1226,   306,   554,    85,    86,   554,   244,
2037 >    1013,   307,   308,    87,    88,    89,   260,   261,   772,   359,
2038 >     576,   550,  1232,  1257,   309,    70,  1233,  1258,   310,   516,
2039 >     311,   331,   245,   312,  1170,   386,   396,   397,  1247,    90,
2040 >      91,   115,   398,   360,   399,   718,   116,   117,    71,   400,
2041 >     530,   401,   118,   402,   403,    72,   404,   495,   405,   406,
2042 >     119,   407,   408,   361,   246,  1248,   120,  1249,   121,   122,
2043 >     123,   247,   409,   496,   410,   124,   411,   611,   517,   582,
2044 >     125,   126,   412,   127,   128,   129,  1082,   130,   497,   413,
2045 >     414,   415,   416,   248,   131,   417,  1171,   249,   132,   133,
2046 >     418,   419,   420,   421,   422,   250,  1083,   134,   251,   252,
2047 >     424,   426,  1250,  1115,   362,  1084,   135,   580,   498,   427,
2048 >     428,    73,  1172,   429,   136,   430,   137,  1116,   138,  1173,
2049 >     139,   431,   140,   141,  1117,   432,   433,  1189,  1174,   434,
2050 >     253,   363,  1085,   435,   436,   142,   627,   437,  1118,   438,
2051 >     143,   144,   145,   499,   146,   147,   148,   254,   255,   149,
2052 >     313,  1251,  1252,   439,   440,  1175,   441,  1176,  1177,   442,
2053 >     443,  1086,  1087,   500,   446,  1119,   484,  1120,   485,  1088,
2054 >     577,  1178,   256,   523,   524,   150,   525,   526,  1179,   501,
2055 >     447,   151,   152,   153,   154,   155,   527,   528,   529,  1190,
2056 >     257,   258,   259,  1121,  1089,   448,   533,   534,   350,   535,
2057 >     351,   536,   352,   537,   538,   539,   540,  1253,   541,   542,
2058 >    1090,   543,   544,   156,   353,  1191,   545,   260,   261,   546,
2059 >     547,   548,  1192,   549,   559,   449,  1122,   578,  1123,   354,
2060 >     560,  1193,   564,   579,   581,   583,   584,   157,   158,   588,
2061 >     159,   160,   161,   502,   589,  1229,   162,  1124,   590,   591,
2062 >     592,   163,   355,   595,   356,   593,   594,   596,  1194,   357,
2063 >    1195,  1196,  1125,   597,   503,   599,   600,  1126,  1091,   358,
2064 >     633,  1127,   642,   601,  1197,   602,  1128,   603,   604,  1129,
2065 >     450,  1198,     2,     3,  1130,   613,     4,   605,   451,   452,
2066 >     606,   607,   608,   609,   359,   610,     5,   614,  1131,     6,
2067 >       7,   615,   227,  1132,   616,     8,   617,   618,   619,   453,
2068 >     621,   315,   622,   623,  1133,   624,     9,   625,   360,    10,
2069 >      11,  1134,   626,   629,   630,   316,   317,   634,   635,   318,
2070 >    1024,  1025,  1026,  1027,  1028,  1029,  1030,   228,   361,   636,
2071 >     639,   643,   644,    12,   645,    79,   646,   650,    13,   229,
2072 >     230,   647,   231,   232,   233,   584,    14,   649,   651,   653,
2073 >     654,   655,   876,   656,   658,    80,    81,   659,   661,   662,
2074 >     663,    82,   319,   664,   234,   665,   666,    15,    16,   667,
2075 >     669,   454,   792,   793,   794,   795,   796,   797,   798,   362,
2076 >     320,   321,   322,   323,   668,    17,   672,   324,   673,   674,
2077 >     679,   325,   680,   681,   683,   900,   684,   326,    83,    84,
2078 >     687,   688,    18,   691,    85,    86,   363,   692,   327,   328,
2079 >     712,    87,    88,    89,   689,    19,    20,   713,   694,   690,
2080 >     329,   739,   748,   695,   696,   697,   698,   701,   702,   705,
2081 >    1140,   706,    21,   707,   709,   714,   715,    90,    91,   720,
2082 >     737,   716,   330,   717,   721,    22,   722,   724,   725,   726,
2083 >     728,   731,   732,   745,    23,   733,   744,   734,    24,   747,
2084 >     738,   877,   878,   879,   740,   880,   881,   741,   882,   883,
2085 >     742,   884,   746,   885,   749,   750,   886,   751,   331,   887,
2086 >     888,   889,   752,   890,   753,   754,   755,   756,   891,   770,
2087 >     757,   766,   892,   893,   894,   767,   768,   769,   774,   775,
2088 >     776,   777,   895,   778,   901,   902,   903,   896,   904,   905,
2089 >     779,   906,   907,   785,   908,   780,   909,   809,   810,   910,
2090 >     782,   786,   911,   912,   913,   787,   914,   812,   788,   789,
2091 >     790,   915,   791,   801,   802,   916,   917,   918,   813,  1141,
2092 >    1142,  1143,   803,  1144,  1145,   919,  1146,  1147,   804,  1148,
2093 >     920,  1149,   805,   806,  1150,   807,   808,  1151,  1152,  1153,
2094 >     814,  1154,   816,   817,   819,   820,  1155,   821,   823,   826,
2095 >    1156,  1157,  1158,   827,   830,   834,   831,   837,   945,   832,
2096 >    1159,   833,   841,   947,   835,  1160,   836,   838,   839,   840,
2097 >     842,   843,   957,   846,   844,   845,   847,   848,   849,   850,
2098 >     851,   852,   943,   946,   853,   948,   854,   855,   856,   857,
2099 >     858,   859,   860,   861,   862,   863,   864,   865,   866,   867,
2100 >     868,   869,   870,   871,   872,   873,   874,   875,   899,   923,
2101 >     924,   925,   926,   949,   944,   927,   928,   929,   930,   931,
2102 >     932,   933,   934,   935,   936,   937,   938,   939,   940,   941,
2103 >     942,   950,   951,   952,   953,   954,   955,   956,   958,   961,
2104 >     962,   963,   964,   965,   966,   967,   969,   970,   971,   968,
2105 >     972,   973,   974,   975,   976,   977,   978,   979,  1006,  1020,
2106 >    1022,   300,  1259,  1167,   719,  1187,  1242,  1241,  1168,   730,
2107 >     612,  1234,   551,  1237,  1216,   980,   981,   711,   982,  1215,
2108 >     983,   984,   985,   700,  1236,   986,  1256,   987,   988,   989,
2109 >     990,   991,   992,   993,   994,   995,   996,   997,   998,   999,
2110 >    1004,  1005,  1227,  1008,  1009,  1007,  1019,  1023,  1021,  1031,
2111 >    1032,  1033,  1038,  1039,  1238,  1040,  1041,  1042,  1043,  1044,
2112 >    1045,  1046,  1047,  1053,  1054,  1055,  1056,  1057,  1058,  1059,
2113 >    1060,  1061,  1239,  1066,  1240,   736,  1067,  1243,  1235,  1068,
2114 >    1069,  1070,  1071,   388,   773,  1072,   445,  1073,  1209,  1210,
2115 >    1074,   704,  1075,   314,   784,     0,     0,     0,  1080,     0,
2116 >       0,     0,  1081,  1094,  1095,  1096,  1097,  1098,  1099,  1100,
2117 >    1101,  1102,  1108,  1111,  1112,  1113,  1109,  1114,  1137,  1138,
2118 >    1139,  1163,     0,  1164,  1165,  1166,  1169,  1182,   628,     0,
2119 >    1188,  1183,  1184,  1201,  1217,   632,  1218,  1219,  1231,  1244,
2120 >    1230,  1220,  1245,   487,  1246,     0,   638,     0,     0,     0,
2121 >       0,     0,     0,   531,     0,     0,     0,     0,     0,     0,
2122         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2123 +       0,     0,     0,     0,     0,     0,     0,   562,     0,     0,
2124         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2125 <       0,     0,     0,   544
2125 >       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2126 >       0,     0,     0,     0,     0,     0,     0,     0,   566
2127   };
2128  
2129 + #define yypact_value_is_default(Yystate) \
2130 +  (!!((Yystate) == (-1010)))
2131 +
2132 + #define yytable_value_is_error(Yytable_value) \
2133 +  YYID (0)
2134 +
2135   static const yytype_int16 yycheck[] =
2136   {
2137 <     342,   343,   428,     1,   264,     1,   264,   349,     1,   264,
2138 <       1,   264,    11,     1,   264,     1,     1,   262,     1,   155,
2139 <       1,   266,    11,    10,     1,    12,     1,   264,     1,   262,
2140 <     263,     8,     9,     1,     1,    12,   264,   379,   264,   381,
2141 <      27,    37,    19,   155,    31,     1,     1,    22,     4,   199,
2142 <     200,    28,    48,   395,    22,    32,    33,     1,   199,   200,
2143 <     262,   403,    39,     1,   266,   264,    43,    44,    45,    55,
2144 <      47,   264,   414,   415,   264,   417,    53,   264,    78,   895,
2145 <     896,   897,   898,   899,   426,   427,    41,   429,   262,     1,
2146 <      46,   264,   266,    49,     1,    72,    73,   264,    91,    85,
2147 <      77,    56,  1053,  1054,  1055,    91,    91,    84,    91,   155,
2148 <      91,    88,    89,    90,   262,   264,    93,   262,   266,    96,
2149 <      97,   266,   120,    78,   264,    80,   122,    82,    83,   106,
2150 <     264,   122,   262,   262,     1,   112,   113,   266,   115,   116,
2151 <     117,   118,   119,    55,   265,   262,   101,   120,   104,   266,
2152 <       1,   126,   150,   130,     5,   122,   171,   172,   126,     1,
2153 <       1,     1,   139,   265,   141,   142,   122,   144,   154,   157,
2154 <     147,   148,   157,    85,   151,    26,   157,   150,   122,    91,
2155 <      20,   265,   157,   265,   122,   162,    26,    38,   265,   157,
2156 <      57,    58,    59,    60,    61,    62,    63,    64,   189,    50,
2157 <     542,   189,   201,   265,    55,   218,   219,   184,   265,   186,
2158 <      50,    51,   201,   190,   265,    55,    67,   194,   195,   196,
2159 <     197,   198,   189,    74,     1,   202,   203,   262,    79,    69,
2160 <      81,   266,   265,   233,   211,   265,    76,   237,   105,     1,
2161 <     265,     3,   154,    94,     6,   189,    23,    24,    10,   265,
2162 <     157,   189,   262,    30,   262,    95,   266,   244,   266,   250,
2163 <     265,   265,   250,    25,    26,    27,   243,   263,   245,    31,
2164 <     263,   122,   263,   140,   251,   263,   127,   263,   263,   256,
2165 <     122,   122,   189,   123,   261,   265,   263,     1,    50,   265,
2166 <     263,   131,    54,    55,   250,   263,   263,   262,   149,    13,
2167 <     264,   266,   265,     1,     1,   265,   250,   263,   263,   149,
2168 <     161,   265,   163,   164,   265,   157,   157,   168,   158,   159,
2169 <      34,    35,   133,    85,   265,    87,    40,   264,    42,    14,
2170 <      15,    16,   109,   110,   111,   265,   265,   114,   100,    37,
2171 <      37,   265,   262,   250,   265,   122,   266,   189,   189,   265,
2172 <      48,   262,   192,   193,   221,   266,   265,   262,   135,   136,
2173 <     122,   266,     1,   265,   175,   176,   177,   178,   179,   265,
2174 <     265,     5,   265,   265,   265,   152,   153,   265,   265,   265,
2175 <     231,   265,   265,   265,    98,    99,   265,   238,   255,    86,
2176 <     265,   265,   154,   107,   108,   265,   263,   265,   249,   250,
2177 <     742,   265,    41,   180,    38,   265,   168,   265,   259,   265,
2178 <     250,   265,   263,   265,   128,   129,    50,    56,   265,   181,
2179 <     265,   263,   265,   263,   122,   122,   265,   124,   125,   265,
2180 <     265,   145,   146,    67,   265,   265,   265,   265,   265,    78,
2181 <      74,    80,   156,    82,    83,    79,   265,    81,   133,   265,
2182 <     265,   165,   222,   223,   224,   225,   226,   227,   228,   265,
2183 <      94,   265,   101,   265,   265,   265,   265,    20,    21,   265,
2184 <     167,   265,   169,   170,   265,   265,     1,   265,   265,   262,
2185 <     265,   265,   244,     8,     9,   265,   263,    12,   185,   265,
2186 <     265,   265,   265,   127,    19,   257,   265,   265,    51,   265,
2187 <     265,   263,   928,    28,   265,   262,   265,    32,    33,   143,
2188 <     265,   264,   155,   265,    39,   265,    69,   265,    43,    44,
2189 <      45,     1,    47,    76,   265,   265,   265,   161,    53,   163,
2190 <     164,   265,   229,   262,   265,   265,   155,   265,   252,   253,
2191 <     254,   265,    95,   265,   265,   265,   265,    72,    73,   263,
2192 <     265,   155,    77,     1,   265,   265,     4,    37,   262,    84,
2193 <     257,   258,   199,    88,    89,    90,   263,   133,    93,   133,
2194 <     123,    96,    97,   199,   199,     1,   918,   133,   131,     5,
2195 <     262,   106,   133,   133,   926,   927,   199,   112,   113,   199,
2196 <     115,   116,   117,   118,   119,   133,   199,   231,    46,   199,
2197 <      26,    49,   199,   199,   199,   130,    86,   265,   265,   155,
2198 <     262,   265,    38,   199,   139,   249,   141,   142,   265,   144,
2199 <     199,   174,   147,   148,    50,   259,   151,   133,    94,    55,
2200 <     133,   155,   199,   133,   199,     1,   199,   162,   155,   199,
2201 <     193,    67,   122,   133,   124,   125,   133,   133,    74,   133,
2202 <     199,   199,   199,    79,   155,    81,   104,    23,    24,   184,
2203 <     199,   186,   133,   133,    30,   190,   133,   155,    94,   194,
2204 <     195,   196,   197,   198,   122,   133,   133,   202,   203,   133,
2205 <     199,   199,   265,   199,   265,   199,   211,   167,   199,   169,
2206 <     170,   155,   199,   133,   199,   199,   122,   199,   133,   133,
2207 <     199,   127,   199,     1,     1,   185,     3,   173,   199,     6,
2208 <     199,   265,   155,    10,   155,    94,   155,   262,   243,   155,
2209 <     245,   265,   265,   149,   265,   262,   251,   262,    25,    26,
2210 <      27,   256,   265,   265,    31,   161,   261,   163,   164,   205,
2211 <     155,   155,   168,   109,   110,   111,   155,   155,   114,   229,
2212 <     265,   155,   265,    50,   220,   265,   122,    54,    55,    57,
2213 <      58,    59,    60,    61,    62,    63,    64,     1,   155,   135,
2214 <     136,   265,   265,   265,   240,   241,   199,   257,   258,    13,
2215 <     246,   247,   248,   249,   265,     1,   152,   153,    85,   265,
2216 <      87,   265,   265,   259,   173,   155,   265,   265,   155,   262,
2217 <      34,    35,   250,   100,    20,   231,    40,   105,    42,   265,
2218 <      26,   262,   238,   265,   180,   265,   265,   262,   265,   265,
2219 <     155,   265,   199,   249,   250,   122,   205,   265,   265,   199,
2220 <     199,   199,   199,   259,    50,    51,   155,   262,   199,    55,
2221 <     155,   220,   140,   155,   155,   155,   155,   265,   155,   155,
2222 <     155,   262,   262,    69,   204,   277,   315,   154,   265,   265,
2223 <      76,   240,   241,   262,    98,    99,   262,   246,   247,   248,
2224 <     249,   168,   265,   107,   108,   265,   262,   262,   262,    95,
2225 <     259,   262,   262,   265,   181,   155,   262,   262,     0,     1,
2226 <     262,   262,   265,     5,   128,   129,   155,   262,   262,   262,
2227 <     262,   155,   155,   262,   262,   133,   262,   123,   262,   262,
2228 <      22,   145,   146,   262,    26,   131,   262,    29,   262,   262,
2229 <     265,   262,   156,   221,    36,   265,   265,   265,   265,   265,
2230 <     262,   165,   265,   149,   265,   265,   265,   265,   265,   265,
2231 <      52,   265,   158,   159,   265,   265,   133,   244,   265,   265,
2232 <     155,   265,   265,    65,    66,   199,    68,   255,   155,   199,
2233 <     257,   265,   265,    75,   265,   265,   265,   155,   199,   265,
2234 <     265,   265,   265,   262,   262,   262,   192,   193,   262,   262,
2235 <      92,   262,   262,   262,   262,   262,   262,   262,   262,   262,
2236 <     102,   262,   104,   262,   262,   262,   262,   262,   262,   262,
2237 <     262,   262,   262,   199,   262,   262,   262,   262,   199,   121,
2238 <     262,   262,   262,   262,   262,   262,   262,   262,   252,   253,
2239 <     254,   206,   207,   208,   209,   210,   138,   212,   213,   262,
2240 <     215,   216,   217,   262,   250,   220,   262,   262,   262,   262,
2241 <     262,   262,   262,   262,   262,   230,   231,   232,   262,   234,
2242 <     235,   236,   262,   262,   239,   262,   262,   242,   262,   262,
2243 <     262,   173,   262,   199,   265,   199,   265,   262,   199,   199,
2244 <     182,   183,   265,   155,   155,   187,   188,   206,   207,   208,
2245 <     209,   210,   155,   212,   213,   199,   215,   216,   217,   155,
2246 <     262,   220,   155,   155,   265,   262,   265,   155,   155,   262,
2247 <     262,   230,   231,   232,   262,   234,   235,   236,   262,   262,
2248 <     239,   262,   262,   242,   206,   207,   208,   209,   210,   262,
2249 <     212,   213,   262,   215,   216,   217,   265,   262,   220,   262,
2250 <     262,   155,   155,   155,   262,   262,   262,   262,   230,   231,
2251 <     232,   262,   234,   235,   236,   262,   262,   239,   155,   262,
2252 <     242,   262,   262,   155,   155,   133,   265,   265,   265,   265,
2253 <     265,   265,   265,   265,   265,   265,   265,   265,   265,   265,
2254 <     265,   265,   265,   262,   265,   265,   262,   262,   262,   262,
2255 <     133,   133,   262,   262,   262,   262,   262,   262,   262,   133,
2256 <     262,   262,   262,   262,   262,   262,   133,   262,   155,   133,
2480 <     133,   265,   262,   262,   265,   155,   262,   199,   155,   155,
2481 <     199,   199,   199,   155,   265,   155,   155,   155,   133,   155,
2482 <     155,   262,   199,   155,   155,   262,   262,   262,   262,   262,
2483 <     160,   262,   262,   262,   262,   262,   262,   262,   132,   160,
2484 <     199,   262,   262,   262,   262,   262,   262,   262,   262,   262,
2485 <     262,   262,   262,   262,   262,   155,   262,   155,   199,   155,
2486 <     155,   266,   265,   155,   262,   265,   262,   262,   262,   262,
2487 <     199,   199,   199,   199,   199,   199,   199,   199,   262,   199,
2488 <     199,   199,   199,   199,   132,   132,   262,   262,   262,   262,
2489 <     262,   262,   262,   262,   262,   262,   262,   262,   262,   262,
2490 <     262,   262,   262,   133,   262,    71,   262,   262,   262,  1304,
2491 <    1486,   262,  1467,   262,   262,  1395,   825,   262,  1465,   262,
2492 <     501,   468,   614,  1275,  1380,  1378,   564,  1446,  1448,   572,
2493 <    1393,   649,   491,   531,  1449,  1451,   124,  1371,  1227,   185,
2494 <    1225,  1377,   374,  1375,    95,    -1,    -1,    -1,   262,   262,
2495 <     262,   262,   262,   262,   262,   262,   262,   262,   262,   262,
2496 <     262,   262,    -1,   262,    -1,   262,    -1,    -1,    -1,   262,
2497 <      -1,   262,   262,   262,   262,   262,   262,   262,   262,   262,
2498 <     262,   262,   260,   362,    -1,    -1,    -1,    -1,   443,    -1,
2137 >     609,   610,   305,   306,   307,   107,     1,   225,     1,     1,
2138 >       8,     1,    48,   223,   224,    50,     1,     1,     1,     1,
2139 >       1,     1,     1,     6,     7,     1,   225,     1,     1,    12,
2140 >       1,    24,   223,     1,   223,    17,   227,    20,    31,  1048,
2141 >    1049,  1050,     1,    26,     1,    28,    29,    30,   206,    34,
2142 >      32,   209,    35,     1,   225,     1,     1,    40,    41,   223,
2143 >      43,    44,    45,   227,    47,   225,     1,     1,    60,     1,
2144 >      60,    54,   225,   223,    55,    58,    59,   227,   225,    60,
2145 >      62,    62,    55,     1,    67,    17,    60,    60,   123,    62,
2146 >      75,   225,    60,    76,   397,   398,    75,   225,   200,    94,
2147 >      32,    84,   405,    86,    97,    88,   409,    90,   225,    92,
2148 >      93,   414,     1,    97,   417,     1,   223,     1,     1,   225,
2149 >     227,    97,   105,   118,   427,   428,    97,   110,   111,   112,
2150 >      62,   114,   115,   116,   437,   117,   119,   440,   441,   124,
2151 >     121,    24,     1,   125,   126,   181,   225,     1,   121,    97,
2152 >     124,    97,    97,   124,   223,   191,   124,   223,   227,    94,
2153 >     225,   227,   145,   206,   146,    97,   209,   124,   151,   152,
2154 >     153,   154,   155,    56,     1,   225,   124,   223,   225,    97,
2155 >      63,   227,    36,   118,   225,   117,   166,   166,    15,    16,
2156 >     124,   225,    19,   191,    48,    49,   225,    51,    52,    53,
2157 >     183,   133,    85,   170,   171,   223,    89,   166,    97,   227,
2158 >     225,    97,   225,    97,    97,   225,    75,   100,   101,    73,
2159 >       9,    10,    11,   225,   207,   208,   529,   210,   211,   212,
2160 >     214,   224,   224,   216,   218,    62,   218,   217,   221,   224,
2161 >     224,   224,   224,     1,   224,     3,   223,     5,   224,   132,
2162 >     224,   224,   166,    80,    81,    82,    83,     1,   217,    17,
2163 >      87,   218,   195,   196,    91,   197,   149,   150,   214,   187,
2164 >      97,   226,   218,   226,    32,     1,   224,    21,    22,   195,
2165 >     196,   108,   109,    27,   218,   226,   218,   226,   226,   224,
2166 >     224,   174,   224,   120,   597,   226,   214,    55,   601,    57,
2167 >     226,   604,   226,   187,    62,   608,   224,   166,    34,   192,
2168 >     193,   194,   223,   223,    72,   142,   227,   227,   107,   223,
2169 >      64,    65,   223,   227,   226,   214,    70,    71,   214,     1,
2170 >     214,   226,   226,    77,    78,    79,   219,   220,   224,    97,
2171 >     122,   224,   223,   223,   226,     1,   227,   227,   226,    75,
2172 >     226,   178,    24,   226,    68,   226,   226,   226,    39,   103,
2173 >     104,     1,   226,   121,   226,   224,     6,     7,    24,   226,
2174 >     224,   226,    12,   226,   226,    31,   226,     1,   226,   226,
2175 >      20,   226,   226,   141,    56,    66,    26,    68,    28,    29,
2176 >      30,    63,   226,    17,   226,    35,   226,   224,   124,   206,
2177 >      40,    41,   226,    43,    44,    45,    13,    47,    32,   226,
2178 >     226,   226,   226,    85,    54,   226,   130,    89,    58,    59,
2179 >     226,   226,   226,   226,   226,    97,    33,    67,   100,   101,
2180 >     226,   226,   113,     4,   192,    42,    76,   107,    62,   226,
2181 >     226,    97,   156,   226,    84,   226,    86,    18,    88,   163,
2182 >      90,   226,    92,    93,    25,   226,   226,    68,   172,   226,
2183 >     132,   219,    69,   226,   226,   105,   224,   226,    39,   226,
2184 >     110,   111,   112,    97,   114,   115,   116,   149,   150,   119,
2185 >     224,   162,   163,   226,   226,   199,   226,   201,   202,   226,
2186 >     226,    98,    99,   117,     1,    66,   226,    68,   226,   106,
2187 >     122,   215,   174,   226,   226,   145,   226,   226,   222,   133,
2188 >      17,   151,   152,   153,   154,   155,   226,   226,   226,   130,
2189 >     192,   193,   194,    94,   131,    32,   226,   226,     1,   226,
2190 >       3,   226,     5,   226,   226,   226,   226,   218,   226,   226,
2191 >     147,   226,   226,   183,    17,   156,   226,   219,   220,   226,
2192 >     226,   226,   163,   226,   223,    62,   127,   122,   129,    32,
2193 >     226,   172,   226,   223,   107,   107,   107,   207,   208,   107,
2194 >     210,   211,   212,   197,   107,  1184,   216,   148,   107,   206,
2195 >     206,   221,    55,   226,    57,   223,   223,   226,   199,    62,
2196 >     201,   202,   163,   226,   218,   226,   226,   168,   205,    72,
2197 >     122,   172,   107,   226,   215,   226,   177,   226,   226,   180,
2198 >     117,   222,     0,     1,   185,   223,     4,   226,   125,   126,
2199 >     226,   226,   226,   226,    97,   226,    14,   226,   199,    17,
2200 >      18,   226,     1,   204,   226,    23,   226,   226,   226,   146,
2201 >     226,     1,   226,   226,   215,   226,    34,   226,   121,    37,
2202 >      38,   222,   226,   226,   226,    15,    16,   223,   226,    19,
2203 >     792,   793,   794,   795,   796,   797,   798,    36,   141,   226,
2204 >     206,   206,   206,    61,   107,     1,   122,   107,    66,    48,
2205 >      49,   206,    51,    52,    53,   107,    74,   206,   107,   107,
2206 >     206,   206,    48,   206,   107,    21,    22,   107,   107,   107,
2207 >     107,    27,    62,   107,    73,   206,   226,    95,    96,   206,
2208 >     206,   218,   134,   135,   136,   137,   138,   139,   140,   192,
2209 >      80,    81,    82,    83,   226,   113,   206,    87,   206,   206,
2210 >     206,    91,   206,   122,   206,    48,   206,    97,    64,    65,
2211 >     206,   206,   130,   226,    70,    71,   219,   226,   108,   109,
2212 >     122,    77,    78,    79,   223,   143,   144,   122,   226,   223,
2213 >     120,   122,   107,   226,   226,   226,   226,   226,   226,   223,
2214 >      48,   226,   160,   226,   226,   223,   223,   103,   104,   223,
2215 >     206,   226,   142,   226,   226,   173,   226,   226,   226,   226,
2216 >     226,   223,   226,   122,   182,   226,   223,   226,   186,   122,
2217 >     206,   157,   158,   159,   206,   161,   162,   206,   164,   165,
2218 >     206,   167,   206,   169,   107,   122,   172,   122,   178,   175,
2219 >     176,   177,   122,   179,   122,   122,   122,   107,   184,   226,
2220 >     122,   122,   188,   189,   190,   122,   223,   223,   206,   223,
2221 >     225,   122,   198,   223,   157,   158,   159,   203,   161,   162,
2222 >     223,   164,   165,   223,   167,   226,   169,   107,   107,   172,
2223 >     226,   223,   175,   176,   177,   223,   179,   226,   223,   223,
2224 >     223,   184,   223,   223,   223,   188,   189,   190,   107,   157,
2225 >     158,   159,   223,   161,   162,   198,   164,   165,   223,   167,
2226 >     203,   169,   223,   223,   172,   223,   223,   175,   176,   177,
2227 >     107,   179,   107,   107,   122,   107,   184,   107,   107,   223,
2228 >     188,   189,   190,   122,   122,   226,   206,   107,   226,   122,
2229 >     198,   122,   223,   107,   122,   203,   122,   122,   122,   122,
2230 >     122,   122,   226,   122,   223,   223,   122,   223,   223,   223,
2231 >     223,   223,   122,   122,   223,   122,   223,   223,   223,   223,
2232 >     223,   223,   223,   223,   223,   223,   223,   223,   223,   223,
2233 >     223,   223,   223,   223,   223,   223,   223,   223,   223,   223,
2234 >     223,   223,   223,   122,   206,   223,   223,   223,   223,   223,
2235 >     223,   223,   223,   223,   223,   223,   223,   223,   223,   223,
2236 >     223,   122,   223,   122,   122,   223,   122,   122,   107,   223,
2237 >     223,   223,   122,   122,   223,   122,   226,   122,   122,   206,
2238 >     122,   226,   122,   223,   122,   122,   122,   223,   122,   122,
2239 >     122,    74,  1258,  1001,   491,  1014,  1224,  1222,  1003,   504,
2240 >     332,  1203,   262,  1214,  1109,   223,   223,   478,   223,   107,
2241 >     223,   223,   223,   455,  1212,   223,  1233,   223,   223,   223,
2242 >     223,   223,   223,   223,   223,   223,   223,   223,   223,   223,
2243 >     223,   223,   122,   223,   223,   226,   223,   223,   226,   223,
2244 >     223,   223,   223,   223,   128,   223,   223,   223,   223,   223,
2245 >     223,   223,   223,   223,   223,   223,   223,   223,   223,   223,
2246 >     223,   223,   128,   223,   128,   518,   223,  1226,  1208,   223,
2247 >     223,   223,   223,   111,   555,   223,   164,   223,  1077,  1079,
2248 >     223,   468,   223,    92,   571,    -1,    -1,    -1,   223,    -1,
2249 >      -1,    -1,   223,   223,   223,   223,   223,   223,   223,   223,
2250 >     223,   223,   213,   223,   223,   223,   227,   223,   223,   223,
2251 >     223,   223,    -1,   223,   223,   223,   223,   223,   364,    -1,
2252 >     223,   226,   226,   223,   223,   382,   228,   228,   223,   223,
2253 >     226,   228,   223,   220,   223,    -1,   392,    -1,    -1,    -1,
2254 >      -1,    -1,    -1,   235,    -1,    -1,    -1,    -1,    -1,    -1,
2255 >      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2256 >      -1,    -1,    -1,    -1,    -1,    -1,    -1,   284,    -1,    -1,
2257        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2258        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2259 <      -1,    -1,    -1,   293
2259 >      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   291
2260   };
2261  
2262   /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
2263     symbol of state STATE-NUM.  */
2264   static const yytype_uint16 yystos[] =
2265   {
2266 <       0,   268,     0,     1,     5,    22,    26,    29,    36,    52,
2267 <      65,    66,    68,    75,    92,   102,   104,   121,   138,   173,
2268 <     182,   183,   187,   188,   269,   274,   279,   297,   303,   318,
2269 <     355,   374,   388,   414,   421,   431,   440,   471,   481,   487,
2270 <     491,   501,   566,   582,   603,   262,   263,   264,   264,   356,
2271 <     441,   482,   264,   492,   264,   567,   389,   472,   375,   264,
2272 <     264,   319,   415,   264,   264,   422,   432,     1,    37,    48,
2273 <     122,   298,   299,   300,   301,   302,     1,    13,    34,    35,
2274 <      40,    42,    98,    99,   107,   108,   128,   129,   145,   146,
2275 <     156,   165,   252,   253,   254,   583,   584,   585,   586,   587,
2276 <     588,   589,   590,   591,   592,   593,   594,   595,   596,   597,
2277 <     598,   599,   600,   601,   602,   155,   357,   361,   155,   442,
2278 <     446,   264,     1,    91,   488,   489,   490,   264,     1,     8,
2279 <       9,    12,    19,    28,    32,    33,    39,    43,    44,    45,
2280 <      47,    53,    72,    73,    77,    84,    88,    89,    90,    93,
2281 <      96,    97,   106,   112,   113,   115,   116,   117,   118,   119,
2282 <     130,   139,   141,   142,   144,   147,   148,   151,   162,   184,
2283 <     186,   190,   194,   195,   196,   197,   198,   202,   203,   211,
2284 <     243,   245,   251,   256,   261,   502,   503,   504,   505,   506,
2285 <     507,   508,   509,   510,   511,   512,   513,   514,   515,   516,
2286 <     517,   518,   519,   520,   521,   522,   523,   524,   525,   526,
2287 <     527,   528,   529,   530,   531,   532,   533,   534,   535,   536,
2288 <     537,   538,   539,   540,   541,   542,   543,   544,   545,   546,
2289 <     547,   548,   549,   550,   551,   552,   553,   557,   561,   562,
2290 <     563,   564,   565,   264,   264,   264,   264,     1,    57,    58,
2291 <      59,    60,    61,    62,    63,    64,   105,   140,   221,   255,
2292 <     304,   305,   306,   307,   308,   309,   310,   311,   312,   313,
2293 <     314,   315,   316,   317,     1,   120,   150,   275,   276,   277,
2294 <     278,   155,   320,   324,   264,     1,    41,    56,    78,    80,
2295 <      82,    83,   101,   604,   605,   606,   607,   608,   609,   610,
2296 <     611,   612,     1,    37,    86,   122,   124,   125,   167,   169,
2297 <     170,   185,   229,   257,   258,   280,   281,   282,   286,   287,
2298 <     288,   289,   290,   291,   292,   293,   294,   295,   296,   264,
2299 <     264,   262,   265,   265,   265,   263,   299,   265,   265,   265,
2300 <     265,   265,   265,   265,   265,   265,   265,   265,   265,   265,
2301 <     265,   265,   265,   265,   265,   263,   584,   264,   264,     1,
2302 <      91,   157,   483,   484,   485,   486,   265,   263,   489,     1,
2303 <     122,   157,   189,   493,   497,   498,   499,   500,   265,   265,
2304 <     265,   265,   265,   265,   265,   265,   265,   265,   265,   265,
2305 <     265,   265,   265,   265,   265,   265,   265,   265,   265,   265,
2306 <     265,   265,   265,   265,   265,   265,   265,   265,   265,   265,
2307 <     265,   558,   265,   554,   265,   265,   265,   265,   265,   265,
2308 <     265,   265,   265,   265,   265,   265,   265,   265,   265,   265,
2309 <     265,   265,   265,   265,   263,   503,     1,     4,    46,    49,
2310 <     104,   122,   250,   568,   569,   570,   571,   572,   576,   577,
2311 <     578,     1,    20,    26,    50,    51,    55,    69,    76,    95,
2312 <     123,   131,   149,   158,   159,   192,   193,   250,   390,   391,
2313 <     392,   393,   394,   395,   396,   397,   404,   405,   406,   407,
2314 <     408,   409,   410,   411,   412,   413,     1,   157,   189,   250,
2315 <     473,   477,   478,   479,   480,     1,    55,    85,    91,   154,
2316 <     376,   380,   381,   382,   386,   387,   262,   265,   265,   265,
2317 <     265,   265,   265,   265,   265,   265,   265,   265,   265,   263,
2318 <     305,   262,   265,   265,   263,   276,   264,     1,    22,   126,
2319 <     157,   416,   417,   418,   419,   420,   265,   265,   265,   265,
2320 <     265,   265,   265,   263,   605,   262,   265,   265,   265,   265,
2321 <     265,   265,   265,   283,   265,   265,   265,   265,   263,   281,
2322 <       1,   122,   189,   250,   423,   424,   425,   426,   427,     1,
2323 <     122,   189,   433,   434,   435,   436,   155,   155,   155,   262,
2324 <     199,   133,   133,   199,   199,   133,   271,   271,   133,   133,
2325 <     199,   199,   133,   271,   199,   199,   199,   199,   199,   262,
2326 <       1,    23,    24,    30,   109,   110,   111,   114,   122,   135,
2327 <     136,   152,   153,   180,   358,   359,   360,   362,   363,   364,
2328 <     365,   366,   367,   368,   369,   370,   371,   372,   373,     1,
2329 <       3,     6,    10,    25,    26,    27,    31,    50,    54,    55,
2330 <      85,    87,   100,   122,   154,   168,   181,   244,   257,   443,
2331 <     444,   445,   447,   448,   449,   450,   451,   452,   453,   454,
2332 <     461,   462,   463,   464,   465,   466,   467,   468,   469,   470,
2333 <     265,   265,   263,   484,   155,   262,   265,   265,   494,   263,
2334 <     498,   199,   271,   199,   271,   133,   155,   133,   199,   199,
2335 <     199,   133,   155,   199,   133,   133,   133,   199,   271,   199,
2336 <     199,   133,   155,   199,   133,   133,   271,   133,   133,   155,
2337 <     133,   133,   199,   199,   265,   199,   265,   271,   271,   199,
2338 <     271,   155,   199,   199,   199,   199,   200,   199,   200,   199,
2339 <     199,   271,   271,   133,   273,   271,   199,   199,   199,   199,
2340 <     262,   579,   265,   265,   573,   265,   265,   263,   569,   262,
2341 <     265,   265,   265,   265,   398,   265,   265,   265,   265,   265,
2342 <     265,   265,   265,   265,   265,   265,   263,   391,   265,   474,
2343 <     265,   263,   478,   262,   377,   265,   265,   265,   263,   381,
2344 <     155,   155,   155,   155,   155,   155,   155,   155,   222,   223,
2345 <     224,   225,   226,   227,   228,   155,   155,   199,   262,   155,
2346 <     155,   262,     1,     5,    26,    38,    50,    55,    67,    74,
2347 <      79,    81,    94,   122,   127,   149,   161,   163,   164,   168,
2348 <     231,   238,   249,   250,   259,   321,   322,   323,   325,   326,
2349 <     327,   328,   329,   330,   334,   335,   336,   337,   338,   339,
2350 <     340,   341,   342,   343,   344,   345,   346,   347,   348,   262,
2351 <     265,   265,   265,   263,   417,   199,   199,   199,   155,   199,
2352 <     199,   271,   262,   155,   199,   155,   155,   155,   155,   155,
2353 <     265,   155,   133,   155,   155,   262,   262,   265,   428,   265,
2354 <     263,   424,   262,   265,   437,   263,   434,   262,   262,   262,
2355 <     262,   262,   262,   262,   262,   175,   176,   177,   178,   179,
2356 <     270,   271,   262,   262,   262,   262,   262,   262,   262,   262,
2357 <     262,   262,   262,   262,   262,   262,   265,   265,   265,   265,
2358 <     265,   265,   265,   265,   265,   265,   265,   265,   265,   263,
2359 <     359,   262,   265,   265,   265,   265,   265,   265,   265,   265,
2360 <     265,   455,   265,   265,   265,   265,   265,   265,   265,   265,
2361 <     265,   263,   444,   155,   155,   262,   262,   155,   155,   265,
2362 <     262,   262,   262,   262,   262,   262,   262,   262,   262,   262,
2363 <     262,   262,   262,   262,   262,   262,   262,   262,   262,   262,
2364 <     262,   262,   262,   262,   262,   262,   262,   262,   262,   262,
2365 <     262,   262,   262,   262,   206,   207,   208,   209,   210,   212,
2366 <     213,   215,   216,   217,   220,   230,   231,   232,   234,   235,
2367 <     236,   239,   242,   559,   560,   262,   206,   207,   208,   209,
2368 <     210,   212,   213,   215,   216,   217,   220,   230,   231,   232,
2369 <     234,   235,   236,   239,   242,   555,   556,   262,   262,   262,
2370 <     262,   262,   262,   262,   262,   262,   262,   262,   262,   262,
2371 <     262,   262,   262,    14,    15,    16,   272,   273,   262,   262,
2372 <     262,   262,   262,   262,   265,   271,   199,   265,   155,   155,
2373 <     262,   199,   155,   199,   199,   265,   199,   199,   199,   199,
2374 <     199,   155,   133,   155,   155,   199,   155,   262,   155,   265,
2375 <     155,   262,   265,   155,   155,   133,   384,   385,   262,   262,
2376 <     262,   262,   262,   262,   262,   262,   262,   262,   262,   262,
2377 <     262,   262,   262,   262,   262,   262,   262,   262,   262,   262,
2378 <     265,   265,   265,   265,   349,   265,   265,   265,   265,   265,
2379 <     265,   265,   265,   265,   265,   265,   265,   265,   331,   265,
2380 <     265,   265,   263,   322,   155,   155,   155,   262,   262,   262,
2381 <     262,   262,   262,   262,   262,   262,   262,   262,   262,   262,
2382 <     262,   262,   171,   172,   284,   285,   262,   262,   262,   262,
2383 <     155,   265,   155,   262,   155,   265,   262,   270,   270,   270,
2384 <     270,   270,   133,   133,   271,   133,   133,   133,   133,   155,
2385 <     133,   133,   271,   271,   273,   262,   155,   218,   219,   199,
2386 <     155,   155,   199,   199,   199,   155,   265,   155,   155,   155,
2387 <     155,   133,   155,   155,   199,   155,   262,   262,   262,   262,
2388 <     262,   160,   495,   496,   262,   266,   262,   266,   272,   272,
2389 <     272,    11,   201,   580,   581,   262,   262,    11,   201,   574,
2390 <     575,   262,   262,   262,   262,   262,   262,   132,   399,   400,
2391 <     402,   262,   262,   262,   262,   262,   262,   262,   262,   262,
2634 <     262,   262,   262,   160,   475,   476,   262,    78,   233,   237,
2635 <     378,   379,   262,   262,   204,   266,   383,   199,   155,   199,
2636 <     199,   265,   199,   199,   199,   199,   199,   155,   199,   155,
2637 <     199,   199,   199,   155,   199,   265,   199,   155,   199,   262,
2638 <     262,   262,   262,   262,   266,   262,    94,   173,   205,   220,
2639 <     240,   241,   246,   247,   248,   249,   259,   429,   430,   262,
2640 <     262,    94,   173,   205,   220,   240,   241,   246,   247,   248,
2641 <     249,   259,   438,   439,   262,   262,   262,   262,   262,   262,
2642 <     262,   262,   262,   262,   262,   262,   262,   262,   262,   262,
2643 <     262,   262,   262,   262,   262,   262,   262,   132,   456,   457,
2644 <     459,   262,   262,   262,   262,   262,   262,   262,   262,   262,
2645 <     262,   266,   560,   556,   262,   266,   262,   266,   401,   262,
2646 <     266,    20,    21,    51,    69,    76,    95,   123,   131,   174,
2647 <     193,   403,   262,   266,   262,   266,   133,   385,   262,   262,
2648 <     262,   262,   262,   132,   350,   351,   353,   262,   262,   262,
2649 <     262,   262,   262,   262,   262,   262,   262,   262,   262,   262,
2650 <     206,   207,   208,   209,   210,   212,   213,   215,   216,   217,
2651 <     220,   230,   231,   232,   234,   235,   236,   239,   242,   332,
2652 <     333,   262,   262,   262,   285,   262,   266,   262,   266,   458,
2653 <     262,   266,    10,    12,    27,    31,   244,   460,   496,   581,
2654 <     575,   403,   400,   476,   379,   352,   262,   266,     5,    38,
2655 <      50,    67,    74,    79,    81,    94,   127,   143,   161,   163,
2656 <     164,   231,   249,   259,   354,   262,   266,   430,   439,   460,
2657 <     457,   354,   351,   333
2266 >       0,   230,     0,     1,     4,    14,    17,    18,    23,    34,
2267 >      37,    38,    61,    66,    74,    95,    96,   113,   130,   143,
2268 >     144,   160,   173,   182,   186,   231,   236,   241,   265,   271,
2269 >     277,   291,   309,   332,   346,   361,   368,   372,   382,   391,
2270 >     411,   417,   423,   427,   433,   490,   505,   223,   224,   225,
2271 >     225,   310,   392,   418,   225,   428,   225,   347,   412,   333,
2272 >     225,   272,   292,   362,   225,   225,   383,   225,   225,   373,
2273 >       1,    24,    31,    97,   266,   267,   268,   269,   270,     1,
2274 >      21,    22,    27,    64,    65,    70,    71,    77,    78,    79,
2275 >     103,   104,   491,   492,   493,   494,   495,   496,   497,   498,
2276 >     499,   500,   501,   502,   503,   504,   225,   225,   225,     1,
2277 >      60,   424,   425,   426,   225,     1,     6,     7,    12,    20,
2278 >      26,    28,    29,    30,    35,    40,    41,    43,    44,    45,
2279 >      47,    54,    58,    59,    67,    76,    84,    86,    88,    90,
2280 >      92,    93,   105,   110,   111,   112,   114,   115,   116,   119,
2281 >     145,   151,   152,   153,   154,   155,   183,   207,   208,   210,
2282 >     211,   212,   216,   221,   434,   435,   436,   437,   438,   439,
2283 >     440,   441,   442,   443,   444,   445,   446,   447,   448,   449,
2284 >     450,   451,   452,   453,   454,   455,   456,   457,   458,   459,
2285 >     460,   461,   462,   463,   464,   465,   466,   467,   468,   469,
2286 >     470,   471,   472,   473,   474,   475,   476,   477,   478,   479,
2287 >     483,   487,   488,   489,   225,   225,   225,     1,    94,   118,
2288 >     237,   238,   239,   240,   225,   225,   225,     1,    36,    48,
2289 >      49,    51,    52,    53,    73,   506,   507,   508,   509,   510,
2290 >     511,   512,   513,   514,     1,    24,    56,    63,    85,    89,
2291 >      97,   100,   101,   132,   149,   150,   174,   192,   193,   194,
2292 >     219,   220,   242,   243,   244,   245,   250,   251,   252,   253,
2293 >     254,   255,   256,   257,   258,   259,   260,   261,   262,   263,
2294 >     264,   225,     1,   217,   278,   279,   280,   281,   282,     1,
2295 >      97,   369,   370,   371,   225,   223,   226,   226,   226,   224,
2296 >     267,   226,   226,   226,   226,   226,   226,   226,   226,   226,
2297 >     226,   226,   226,   224,   492,     1,    15,    16,    19,    62,
2298 >      80,    81,    82,    83,    87,    91,    97,   108,   109,   120,
2299 >     142,   178,   311,   312,   313,   314,   315,   316,   317,   318,
2300 >     319,   320,   321,   322,   323,   324,   325,   326,   327,   328,
2301 >       1,     3,     5,    17,    32,    55,    57,    62,    72,    97,
2302 >     121,   141,   192,   219,   393,   394,   395,   396,   397,   398,
2303 >     399,   400,   401,   402,   406,   407,   408,   409,   410,     1,
2304 >      60,   124,   419,   420,   421,   422,   226,   224,   425,     1,
2305 >      97,   124,   429,   430,   431,   432,   226,   226,   226,   226,
2306 >     226,   226,   226,   226,   226,   226,   226,   226,   226,   226,
2307 >     226,   226,   226,   226,   226,   226,   226,   226,   226,   226,
2308 >     226,   226,   226,   484,   226,   480,   226,   226,   226,   226,
2309 >     226,   226,   226,   226,   226,   226,   226,   226,   226,   226,
2310 >     226,   226,   226,   226,   224,   435,     1,    17,    32,    62,
2311 >     117,   125,   126,   146,   218,   348,   349,   350,   351,   352,
2312 >     353,   354,   358,   359,   360,     1,   124,   218,   413,   414,
2313 >     415,   416,     1,    55,    60,    62,   121,   334,   338,   339,
2314 >     340,   344,   345,   223,   226,   226,   224,   238,     1,    75,
2315 >     166,   273,   274,   275,   276,     1,    17,    32,    62,    97,
2316 >     117,   133,   197,   218,   293,   294,   295,   296,   297,   298,
2317 >     299,   300,   301,   305,     1,    34,    75,   124,   363,   364,
2318 >     365,   366,   367,   226,   226,   226,   226,   226,   226,   226,
2319 >     224,   507,   223,   226,   226,   226,   226,   226,   226,   226,
2320 >     226,   226,   226,   226,   226,   226,   226,   226,   226,   226,
2321 >     224,   243,     1,    97,   214,   384,   385,   386,   387,   223,
2322 >     226,   224,   279,   166,   226,   224,   370,     1,    97,   214,
2323 >     218,   374,   375,   376,   377,   378,   122,   122,   122,   223,
2324 >     107,   107,   206,   107,   107,   233,   233,   233,   107,   107,
2325 >     107,   206,   206,   223,   223,   226,   226,   226,   329,   226,
2326 >     226,   226,   226,   226,   226,   226,   226,   226,   226,   226,
2327 >     226,   224,   312,   223,   226,   226,   226,   226,   226,   226,
2328 >     403,   226,   226,   226,   226,   226,   226,   224,   394,   226,
2329 >     226,   224,   420,   122,   223,   226,   226,   224,   430,   206,
2330 >     233,   233,   107,   206,   206,   107,   122,   206,   233,   206,
2331 >     107,   107,   233,   107,   206,   206,   206,   233,   107,   107,
2332 >     233,   107,   107,   107,   107,   206,   226,   206,   226,   206,
2333 >     233,   233,   206,   206,   206,   206,   209,   206,   209,   206,
2334 >     206,   122,   233,   206,   206,   233,   233,   206,   206,   223,
2335 >     223,   226,   226,   355,   226,   226,   226,   226,   226,   224,
2336 >     349,   226,   226,   224,   414,   223,   226,   226,   335,   226,
2337 >     224,   339,   122,   122,   223,   223,   226,   226,   224,   274,
2338 >     223,   226,   226,   306,   226,   226,   226,   302,   226,   224,
2339 >     294,   223,   226,   226,   226,   224,   364,   206,   206,   122,
2340 >     206,   206,   206,   233,   223,   122,   206,   122,   107,   107,
2341 >     122,   122,   122,   122,   122,   122,   107,   122,   195,   196,
2342 >     246,   247,   195,   196,   248,   249,   122,   122,   223,   223,
2343 >     226,   388,   224,   385,   206,   223,   225,   122,   223,   223,
2344 >     226,   379,   226,   224,   375,   223,   223,   223,   223,   223,
2345 >     223,   223,   134,   135,   136,   137,   138,   139,   140,   232,
2346 >     233,   223,   223,   223,   223,   223,   223,   223,   223,   107,
2347 >     107,   233,   226,   107,   107,   233,   107,   107,   233,   122,
2348 >     107,   107,   233,   107,   235,   235,   223,   122,   170,   171,
2349 >     122,   206,   122,   122,   226,   122,   122,   107,   122,   122,
2350 >     122,   223,   122,   122,   223,   223,   122,   122,   223,   223,
2351 >     223,   223,   223,   223,   223,   223,   223,   223,   223,   223,
2352 >     223,   223,   223,   223,   223,   223,   223,   223,   223,   223,
2353 >     223,   223,   223,   223,   223,   223,    48,   157,   158,   159,
2354 >     161,   162,   164,   165,   167,   169,   172,   175,   176,   177,
2355 >     179,   184,   188,   189,   190,   198,   203,   485,   486,   223,
2356 >      48,   157,   158,   159,   161,   162,   164,   165,   167,   169,
2357 >     172,   175,   176,   177,   179,   184,   188,   189,   190,   198,
2358 >     203,   481,   482,   223,   223,   223,   223,   223,   223,   223,
2359 >     223,   223,   223,   223,   223,   223,   223,   223,   223,   223,
2360 >     223,   223,   223,   122,   206,   226,   122,   107,   122,   122,
2361 >     122,   223,   122,   122,   223,   122,   122,   226,   107,   342,
2362 >     343,   223,   223,   223,   122,   122,   223,   122,   206,   226,
2363 >     122,   122,   122,   226,   122,   223,   122,   122,   122,   223,
2364 >     223,   223,   223,   223,   223,   223,   223,   223,   223,   223,
2365 >     223,   223,   223,   223,   223,   223,   223,   223,   223,   223,
2366 >     223,   227,   223,   227,   223,   223,   122,   226,   223,   223,
2367 >       1,    97,   187,   214,   283,   284,   285,   286,   287,   223,
2368 >     122,   226,   122,   223,   232,   232,   232,   232,   232,   232,
2369 >     232,   223,   223,   223,    50,   123,   330,   331,   223,   223,
2370 >     223,   223,   223,   223,   223,   223,   223,   223,     9,    10,
2371 >      11,   234,   235,   223,   223,   223,   223,   223,   223,   223,
2372 >     223,   223,     8,   191,   404,   405,   223,   223,   223,   223,
2373 >     223,   223,   223,   223,   223,   223,   223,   227,   223,   227,
2374 >     223,   223,    13,    33,    42,    69,    98,    99,   106,   131,
2375 >     147,   205,   356,   357,   223,   223,   223,   223,   223,   223,
2376 >     223,   223,   223,    48,   181,   191,   336,   337,   213,   227,
2377 >     341,   223,   223,   223,   223,     4,    18,    25,    39,    66,
2378 >      68,    94,   127,   129,   148,   163,   168,   172,   177,   180,
2379 >     185,   199,   204,   215,   222,   307,   308,   223,   223,   223,
2380 >      48,   157,   158,   159,   161,   162,   164,   165,   167,   169,
2381 >     172,   175,   176,   177,   179,   184,   188,   189,   190,   198,
2382 >     203,   303,   304,   223,   223,   223,   223,   247,   249,   223,
2383 >      68,   130,   156,   163,   172,   199,   201,   202,   215,   222,
2384 >     389,   390,   223,   226,   226,   288,   224,   284,   223,    68,
2385 >     130,   156,   163,   172,   199,   201,   202,   215,   222,   380,
2386 >     381,   223,   223,   227,   234,   234,   234,   223,   227,   486,
2387 >     482,   223,   227,   223,   227,   107,   343,   223,   228,   228,
2388 >     228,   223,   227,   223,   227,   223,   227,   122,   200,   235,
2389 >     226,   223,   223,   227,   331,   405,   357,   337,   128,   128,
2390 >     128,   308,   304,   390,   223,   223,   223,    39,    66,    68,
2391 >     113,   162,   163,   218,   289,   290,   381,   223,   227,   290
2392   };
2393  
2394   #define yyerrok         (yyerrstatus = 0)
# Line 2669 | Line 2403 | static const yytype_uint16 yystos[] =
2403  
2404   /* Like YYERROR except do call yyerror.  This remains here temporarily
2405     to ease the transition to the new meaning of YYERROR, for GCC.
2406 <   Once GCC version 2 has supplanted version 1, this can go.  */
2406 >   Once GCC version 2 has supplanted version 1, this can go.  However,
2407 >   YYFAIL appears to be in use.  Nevertheless, it is formally deprecated
2408 >   in Bison 2.4.2's NEWS entry, where a plan to phase it out is
2409 >   discussed.  */
2410  
2411   #define YYFAIL          goto yyerrlab
2412 + #if defined YYFAIL
2413 +  /* This is here to suppress warnings from the GCC cpp's
2414 +     -Wunused-macros.  Normally we don't worry about that warning, but
2415 +     some users do, and we want to make it easy for users to remove
2416 +     YYFAIL uses, which will produce warnings from Bison 2.5.  */
2417 + #endif
2418  
2419   #define YYRECOVERING()  (!!yyerrstatus)
2420  
2421 < #define YYBACKUP(Token, Value)                                  \
2422 < do                                                              \
2423 <  if (yychar == YYEMPTY && yylen == 1)                          \
2424 <    {                                                           \
2425 <      yychar = (Token);                                         \
2426 <      yylval = (Value);                                         \
2427 <      yytoken = YYTRANSLATE (yychar);                           \
2428 <      YYPOPSTACK (1);                                           \
2429 <      goto yybackup;                                            \
2430 <    }                                                           \
2431 <  else                                                          \
2432 <    {                                                           \
2421 > #define YYBACKUP(Token, Value)                                  \
2422 > do                                                              \
2423 >  if (yychar == YYEMPTY)                                        \
2424 >    {                                                           \
2425 >      yychar = (Token);                                         \
2426 >      yylval = (Value);                                         \
2427 >      YYPOPSTACK (yylen);                                       \
2428 >      yystate = *yyssp;                                         \
2429 >      goto yybackup;                                            \
2430 >    }                                                           \
2431 >  else                                                          \
2432 >    {                                                           \
2433        yyerror (YY_("syntax error: cannot back up")); \
2434        YYERROR;                                                  \
2435      }                                                           \
2436   while (YYID (0))
2437  
2438 <
2438 > /* Error token number */
2439   #define YYTERROR        1
2440   #define YYERRCODE       256
2441  
2442  
2443 < /* YYLLOC_DEFAULT -- Set CURRENT to span from RHS[1] to RHS[N].
2701 <   If N is 0, then set CURRENT to the empty location which ends
2702 <   the previous symbol: RHS[0] (always defined).  */
2703 <
2704 < #define YYRHSLOC(Rhs, K) ((Rhs)[K])
2705 < #ifndef YYLLOC_DEFAULT
2706 < # define YYLLOC_DEFAULT(Current, Rhs, N)                                \
2707 <    do                                                                  \
2708 <      if (YYID (N))                                                    \
2709 <        {                                                               \
2710 <          (Current).first_line   = YYRHSLOC (Rhs, 1).first_line;        \
2711 <          (Current).first_column = YYRHSLOC (Rhs, 1).first_column;      \
2712 <          (Current).last_line    = YYRHSLOC (Rhs, N).last_line;         \
2713 <          (Current).last_column  = YYRHSLOC (Rhs, N).last_column;       \
2714 <        }                                                               \
2715 <      else                                                              \
2716 <        {                                                               \
2717 <          (Current).first_line   = (Current).last_line   =              \
2718 <            YYRHSLOC (Rhs, 0).last_line;                                \
2719 <          (Current).first_column = (Current).last_column =              \
2720 <            YYRHSLOC (Rhs, 0).last_column;                              \
2721 <        }                                                               \
2722 <    while (YYID (0))
2723 < #endif
2724 <
2725 <
2726 < /* YY_LOCATION_PRINT -- Print the location on the stream.
2727 <   This macro was not mandated originally: define only if we know
2728 <   we won't break user code: when these are the locations we know.  */
2729 <
2443 > /* This macro is provided for backward compatibility. */
2444   #ifndef YY_LOCATION_PRINT
2445 < # if YYLTYPE_IS_TRIVIAL
2732 < #  define YY_LOCATION_PRINT(File, Loc)                  \
2733 <     fprintf (File, "%d.%d-%d.%d",                      \
2734 <              (Loc).first_line, (Loc).first_column,     \
2735 <              (Loc).last_line,  (Loc).last_column)
2736 < # else
2737 < #  define YY_LOCATION_PRINT(File, Loc) ((void) 0)
2738 < # endif
2445 > # define YY_LOCATION_PRINT(File, Loc) ((void) 0)
2446   #endif
2447  
2448  
2449   /* YYLEX -- calling `yylex' with the right arguments.  */
2743
2450   #ifdef YYLEX_PARAM
2451   # define YYLEX yylex (YYLEX_PARAM)
2452   #else
# Line 2790 | Line 2496 | yy_symbol_value_print (yyoutput, yytype,
2496      YYSTYPE const * const yyvaluep;
2497   #endif
2498   {
2499 +  FILE *yyo = yyoutput;
2500 +  YYUSE (yyo);
2501    if (!yyvaluep)
2502      return;
2503   # ifdef YYPRINT
# Line 2798 | Line 2506 | yy_symbol_value_print (yyoutput, yytype,
2506   # else
2507    YYUSE (yyoutput);
2508   # endif
2509 <  switch (yytype)
2802 <    {
2803 <      default:
2804 <        break;
2805 <    }
2509 >  YYUSE (yytype);
2510   }
2511  
2512  
# Line 2927 | Line 2631 | int yydebug;
2631   # define YYMAXDEPTH 10000
2632   #endif
2633  
2930
2634  
2635   #if YYERROR_VERBOSE
2636  
# Line 3030 | Line 2733 | yytnamerr (char *yyres, const char *yyst
2733   }
2734   # endif
2735  
2736 < /* Copy into YYRESULT an error message about the unexpected token
2737 <   YYCHAR while in state YYSTATE.  Return the number of bytes copied,
2738 <   including the terminating null byte.  If YYRESULT is null, do not
2739 <   copy anything; just return the number of bytes that would be
2740 <   copied.  As a special case, return 0 if an ordinary "syntax error"
2741 <   message will do.  Return YYSIZE_MAXIMUM if overflow occurs during
2742 <   size calculation.  */
2743 < static YYSIZE_T
2744 < yysyntax_error (char *yyresult, int yystate, int yychar)
2736 > /* Copy into *YYMSG, which is of size *YYMSG_ALLOC, an error message
2737 >   about the unexpected token YYTOKEN for the state stack whose top is
2738 >   YYSSP.
2739 >
2740 >   Return 0 if *YYMSG was successfully written.  Return 1 if *YYMSG is
2741 >   not large enough to hold the message.  In that case, also set
2742 >   *YYMSG_ALLOC to the required number of bytes.  Return 2 if the
2743 >   required number of bytes is too large to store.  */
2744 > static int
2745 > yysyntax_error (YYSIZE_T *yymsg_alloc, char **yymsg,
2746 >                yytype_int16 *yyssp, int yytoken)
2747   {
2748 <  int yyn = yypact[yystate];
2748 >  YYSIZE_T yysize0 = yytnamerr (YY_NULL, yytname[yytoken]);
2749 >  YYSIZE_T yysize = yysize0;
2750 >  enum { YYERROR_VERBOSE_ARGS_MAXIMUM = 5 };
2751 >  /* Internationalized format string. */
2752 >  const char *yyformat = YY_NULL;
2753 >  /* Arguments of yyformat. */
2754 >  char const *yyarg[YYERROR_VERBOSE_ARGS_MAXIMUM];
2755 >  /* Number of reported tokens (one for the "unexpected", one per
2756 >     "expected"). */
2757 >  int yycount = 0;
2758 >
2759 >  /* There are many possibilities here to consider:
2760 >     - Assume YYFAIL is not used.  It's too flawed to consider.  See
2761 >       <http://lists.gnu.org/archive/html/bison-patches/2009-12/msg00024.html>
2762 >       for details.  YYERROR is fine as it does not invoke this
2763 >       function.
2764 >     - If this state is a consistent state with a default action, then
2765 >       the only way this function was invoked is if the default action
2766 >       is an error action.  In that case, don't check for expected
2767 >       tokens because there are none.
2768 >     - The only way there can be no lookahead present (in yychar) is if
2769 >       this state is a consistent state with a default action.  Thus,
2770 >       detecting the absence of a lookahead is sufficient to determine
2771 >       that there is no unexpected or expected token to report.  In that
2772 >       case, just report a simple "syntax error".
2773 >     - Don't assume there isn't a lookahead just because this state is a
2774 >       consistent state with a default action.  There might have been a
2775 >       previous inconsistent state, consistent state with a non-default
2776 >       action, or user semantic action that manipulated yychar.
2777 >     - Of course, the expected token list depends on states to have
2778 >       correct lookahead information, and it depends on the parser not
2779 >       to perform extra reductions after fetching a lookahead from the
2780 >       scanner and before detecting a syntax error.  Thus, state merging
2781 >       (from LALR or IELR) and default reductions corrupt the expected
2782 >       token list.  However, the list is correct for canonical LR with
2783 >       one exception: it will still contain any token that will not be
2784 >       accepted due to an error action in a later state.
2785 >  */
2786 >  if (yytoken != YYEMPTY)
2787 >    {
2788 >      int yyn = yypact[*yyssp];
2789 >      yyarg[yycount++] = yytname[yytoken];
2790 >      if (!yypact_value_is_default (yyn))
2791 >        {
2792 >          /* Start YYX at -YYN if negative to avoid negative indexes in
2793 >             YYCHECK.  In other words, skip the first -YYN actions for
2794 >             this state because they are default actions.  */
2795 >          int yyxbegin = yyn < 0 ? -yyn : 0;
2796 >          /* Stay within bounds of both yycheck and yytname.  */
2797 >          int yychecklim = YYLAST - yyn + 1;
2798 >          int yyxend = yychecklim < YYNTOKENS ? yychecklim : YYNTOKENS;
2799 >          int yyx;
2800 >
2801 >          for (yyx = yyxbegin; yyx < yyxend; ++yyx)
2802 >            if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR
2803 >                && !yytable_value_is_error (yytable[yyx + yyn]))
2804 >              {
2805 >                if (yycount == YYERROR_VERBOSE_ARGS_MAXIMUM)
2806 >                  {
2807 >                    yycount = 1;
2808 >                    yysize = yysize0;
2809 >                    break;
2810 >                  }
2811 >                yyarg[yycount++] = yytname[yyx];
2812 >                {
2813 >                  YYSIZE_T yysize1 = yysize + yytnamerr (YY_NULL, yytname[yyx]);
2814 >                  if (! (yysize <= yysize1
2815 >                         && yysize1 <= YYSTACK_ALLOC_MAXIMUM))
2816 >                    return 2;
2817 >                  yysize = yysize1;
2818 >                }
2819 >              }
2820 >        }
2821 >    }
2822  
2823 <  if (! (YYPACT_NINF < yyn && yyn <= YYLAST))
3046 <    return 0;
3047 <  else
2823 >  switch (yycount)
2824      {
2825 <      int yytype = YYTRANSLATE (yychar);
2826 <      YYSIZE_T yysize0 = yytnamerr (0, yytname[yytype]);
2827 <      YYSIZE_T yysize = yysize0;
2828 <      YYSIZE_T yysize1;
2829 <      int yysize_overflow = 0;
2830 <      enum { YYERROR_VERBOSE_ARGS_MAXIMUM = 5 };
2831 <      char const *yyarg[YYERROR_VERBOSE_ARGS_MAXIMUM];
2832 <      int yyx;
2833 <
2834 < # if 0
2835 <      /* This is so xgettext sees the translatable formats that are
2836 <         constructed on the fly.  */
3061 <      YY_("syntax error, unexpected %s");
3062 <      YY_("syntax error, unexpected %s, expecting %s");
3063 <      YY_("syntax error, unexpected %s, expecting %s or %s");
3064 <      YY_("syntax error, unexpected %s, expecting %s or %s or %s");
3065 <      YY_("syntax error, unexpected %s, expecting %s or %s or %s or %s");
3066 < # endif
3067 <      char *yyfmt;
3068 <      char const *yyf;
3069 <      static char const yyunexpected[] = "syntax error, unexpected %s";
3070 <      static char const yyexpecting[] = ", expecting %s";
3071 <      static char const yyor[] = " or %s";
3072 <      char yyformat[sizeof yyunexpected
3073 <                    + sizeof yyexpecting - 1
3074 <                    + ((YYERROR_VERBOSE_ARGS_MAXIMUM - 2)
3075 <                       * (sizeof yyor - 1))];
3076 <      char const *yyprefix = yyexpecting;
3077 <
3078 <      /* Start YYX at -YYN if negative to avoid negative indexes in
3079 <         YYCHECK.  */
3080 <      int yyxbegin = yyn < 0 ? -yyn : 0;
3081 <
3082 <      /* Stay within bounds of both yycheck and yytname.  */
3083 <      int yychecklim = YYLAST - yyn + 1;
3084 <      int yyxend = yychecklim < YYNTOKENS ? yychecklim : YYNTOKENS;
3085 <      int yycount = 1;
3086 <
3087 <      yyarg[0] = yytname[yytype];
3088 <      yyfmt = yystpcpy (yyformat, yyunexpected);
3089 <
3090 <      for (yyx = yyxbegin; yyx < yyxend; ++yyx)
3091 <        if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR)
3092 <          {
3093 <            if (yycount == YYERROR_VERBOSE_ARGS_MAXIMUM)
3094 <              {
3095 <                yycount = 1;
3096 <                yysize = yysize0;
3097 <                yyformat[sizeof yyunexpected - 1] = '\0';
3098 <                break;
3099 <              }
3100 <            yyarg[yycount++] = yytname[yyx];
3101 <            yysize1 = yysize + yytnamerr (0, yytname[yyx]);
3102 <            yysize_overflow |= (yysize1 < yysize);
3103 <            yysize = yysize1;
3104 <            yyfmt = yystpcpy (yyfmt, yyprefix);
3105 <            yyprefix = yyor;
3106 <          }
3107 <
3108 <      yyf = YY_(yyformat);
3109 <      yysize1 = yysize + yystrlen (yyf);
3110 <      yysize_overflow |= (yysize1 < yysize);
3111 <      yysize = yysize1;
2825 > # define YYCASE_(N, S)                      \
2826 >      case N:                               \
2827 >        yyformat = S;                       \
2828 >      break
2829 >      YYCASE_(0, YY_("syntax error"));
2830 >      YYCASE_(1, YY_("syntax error, unexpected %s"));
2831 >      YYCASE_(2, YY_("syntax error, unexpected %s, expecting %s"));
2832 >      YYCASE_(3, YY_("syntax error, unexpected %s, expecting %s or %s"));
2833 >      YYCASE_(4, YY_("syntax error, unexpected %s, expecting %s or %s or %s"));
2834 >      YYCASE_(5, YY_("syntax error, unexpected %s, expecting %s or %s or %s or %s"));
2835 > # undef YYCASE_
2836 >    }
2837  
2838 <      if (yysize_overflow)
2839 <        return YYSIZE_MAXIMUM;
2838 >  {
2839 >    YYSIZE_T yysize1 = yysize + yystrlen (yyformat);
2840 >    if (! (yysize <= yysize1 && yysize1 <= YYSTACK_ALLOC_MAXIMUM))
2841 >      return 2;
2842 >    yysize = yysize1;
2843 >  }
2844  
2845 <      if (yyresult)
2846 <        {
2847 <          /* Avoid sprintf, as that infringes on the user's name space.
2848 <             Don't have undefined behavior even if the translation
2849 <             produced a string with the wrong number of "%s"s.  */
2850 <          char *yyp = yyresult;
2851 <          int yyi = 0;
3123 <          while ((*yyp = *yyf) != '\0')
3124 <            {
3125 <              if (*yyp == '%' && yyf[1] == 's' && yyi < yycount)
3126 <                {
3127 <                  yyp += yytnamerr (yyp, yyarg[yyi++]);
3128 <                  yyf += 2;
3129 <                }
3130 <              else
3131 <                {
3132 <                  yyp++;
3133 <                  yyf++;
3134 <                }
3135 <            }
3136 <        }
3137 <      return yysize;
2845 >  if (*yymsg_alloc < yysize)
2846 >    {
2847 >      *yymsg_alloc = 2 * yysize;
2848 >      if (! (yysize <= *yymsg_alloc
2849 >             && *yymsg_alloc <= YYSTACK_ALLOC_MAXIMUM))
2850 >        *yymsg_alloc = YYSTACK_ALLOC_MAXIMUM;
2851 >      return 1;
2852      }
2853 +
2854 +  /* Avoid sprintf, as that infringes on the user's name space.
2855 +     Don't have undefined behavior even if the translation
2856 +     produced a string with the wrong number of "%s"s.  */
2857 +  {
2858 +    char *yyp = *yymsg;
2859 +    int yyi = 0;
2860 +    while ((*yyp = *yyformat) != '\0')
2861 +      if (*yyp == '%' && yyformat[1] == 's' && yyi < yycount)
2862 +        {
2863 +          yyp += yytnamerr (yyp, yyarg[yyi++]);
2864 +          yyformat += 2;
2865 +        }
2866 +      else
2867 +        {
2868 +          yyp++;
2869 +          yyformat++;
2870 +        }
2871 +  }
2872 +  return 0;
2873   }
2874   #endif /* YYERROR_VERBOSE */
3141
2875  
2876   /*-----------------------------------------------.
2877   | Release the memory associated to this symbol.  |
# Line 3163 | Line 2896 | yydestruct (yymsg, yytype, yyvaluep)
2896      yymsg = "Deleting";
2897    YY_SYMBOL_PRINT (yymsg, yytype, yyvaluep, yylocationp);
2898  
2899 <  switch (yytype)
3167 <    {
3168 <
3169 <      default:
3170 <        break;
3171 <    }
2899 >  YYUSE (yytype);
2900   }
2901  
2902 < /* Prevent warnings from -Wmissing-prototypes.  */
3175 < #ifdef YYPARSE_PARAM
3176 < #if defined __STDC__ || defined __cplusplus
3177 < int yyparse (void *YYPARSE_PARAM);
3178 < #else
3179 < int yyparse ();
3180 < #endif
3181 < #else /* ! YYPARSE_PARAM */
3182 < #if defined __STDC__ || defined __cplusplus
3183 < int yyparse (void);
3184 < #else
3185 < int yyparse ();
3186 < #endif
3187 < #endif /* ! YYPARSE_PARAM */
2902 >
2903  
2904  
2905   /* The lookahead symbol.  */
2906   int yychar;
2907  
2908 +
2909 + #ifndef YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
2910 + # define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
2911 + # define YY_IGNORE_MAYBE_UNINITIALIZED_END
2912 + #endif
2913 + #ifndef YY_INITIAL_VALUE
2914 + # define YY_INITIAL_VALUE(Value) /* Nothing. */
2915 + #endif
2916 +
2917   /* The semantic value of the lookahead symbol.  */
2918 < YYSTYPE yylval;
2918 > YYSTYPE yylval YY_INITIAL_VALUE(yyval_default);
2919  
2920   /* Number of syntax errors so far.  */
2921   int yynerrs;
2922  
2923  
2924 <
2925 < /*-------------------------.
2926 < | yyparse or yypush_parse.  |
3203 < `-------------------------*/
2924 > /*----------.
2925 > | yyparse.  |
2926 > `----------*/
2927  
2928   #ifdef YYPARSE_PARAM
2929   #if (defined __STDC__ || defined __C99__FUNC__ \
# Line 3224 | Line 2947 | yyparse ()
2947   #endif
2948   #endif
2949   {
3227
3228
2950      int yystate;
2951      /* Number of tokens to shift before error messages enabled.  */
2952      int yyerrstatus;
# Line 3234 | Line 2955 | yyparse ()
2955         `yyss': related to states.
2956         `yyvs': related to semantic values.
2957  
2958 <       Refer to the stacks thru separate pointers, to allow yyoverflow
2958 >       Refer to the stacks through separate pointers, to allow yyoverflow
2959         to reallocate them elsewhere.  */
2960  
2961      /* The state stack.  */
# Line 3252 | Line 2973 | yyparse ()
2973    int yyn;
2974    int yyresult;
2975    /* Lookahead token as an internal (translated) token number.  */
2976 <  int yytoken;
2976 >  int yytoken = 0;
2977    /* The variables used to return semantic value and location from the
2978       action routines.  */
2979    YYSTYPE yyval;
# Line 3270 | Line 2991 | yyparse ()
2991       Keep to zero when no symbol should be popped.  */
2992    int yylen = 0;
2993  
2994 <  yytoken = 0;
2995 <  yyss = yyssa;
3275 <  yyvs = yyvsa;
2994 >  yyssp = yyss = yyssa;
2995 >  yyvsp = yyvs = yyvsa;
2996    yystacksize = YYINITDEPTH;
2997  
2998    YYDPRINTF ((stderr, "Starting parse\n"));
# Line 3281 | Line 3001 | yyparse ()
3001    yyerrstatus = 0;
3002    yynerrs = 0;
3003    yychar = YYEMPTY; /* Cause a token to be read.  */
3284
3285  /* Initialize stack pointers.
3286     Waste one element of value and location stack
3287     so that they stay on the same level as the state stack.
3288     The wasted elements are never initialized.  */
3289  yyssp = yyss;
3290  yyvsp = yyvs;
3291
3004    goto yysetstate;
3005  
3006   /*------------------------------------------------------------.
# Line 3380 | Line 3092 | yybackup:
3092  
3093    /* First try to decide what to do without reference to lookahead token.  */
3094    yyn = yypact[yystate];
3095 <  if (yyn == YYPACT_NINF)
3095 >  if (yypact_value_is_default (yyn))
3096      goto yydefault;
3097  
3098    /* Not known => get a lookahead token if don't already have one.  */
# Line 3411 | Line 3123 | yybackup:
3123    yyn = yytable[yyn];
3124    if (yyn <= 0)
3125      {
3126 <      if (yyn == 0 || yyn == YYTABLE_NINF)
3127 <        goto yyerrlab;
3126 >      if (yytable_value_is_error (yyn))
3127 >        goto yyerrlab;
3128        yyn = -yyn;
3129        goto yyreduce;
3130      }
# Line 3429 | Line 3141 | yybackup:
3141    yychar = YYEMPTY;
3142  
3143    yystate = yyn;
3144 +  YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
3145    *++yyvsp = yylval;
3146 +  YY_IGNORE_MAYBE_UNINITIALIZED_END
3147  
3148    goto yynewstate;
3149  
# Line 3465 | Line 3179 | yyreduce:
3179    YY_REDUCE_PRINT (yyn);
3180    switch (yyn)
3181      {
3182 <        case 26:
3183 <
3184 < /* Line 1455 of yacc.c  */
3471 < #line 432 "ircd_parser.y"
3182 >        case 27:
3183 > /* Line 1787 of yacc.c  */
3184 > #line 395 "conf_parser.y"
3185      { (yyval.number) = 0; }
3186      break;
3187  
3188 <  case 28:
3189 <
3190 < /* Line 1455 of yacc.c  */
3478 < #line 434 "ircd_parser.y"
3188 >  case 29:
3189 > /* Line 1787 of yacc.c  */
3190 > #line 397 "conf_parser.y"
3191      {
3192                          (yyval.number) = (yyvsp[(1) - (2)].number) + (yyvsp[(2) - (2)].number);
3193                  }
3194      break;
3195  
3196 <  case 29:
3197 <
3198 < /* Line 1455 of yacc.c  */
3487 < #line 438 "ircd_parser.y"
3196 >  case 30:
3197 > /* Line 1787 of yacc.c  */
3198 > #line 401 "conf_parser.y"
3199      {
3200                          (yyval.number) = (yyvsp[(1) - (3)].number) + (yyvsp[(3) - (3)].number);
3201                  }
3202      break;
3203  
3204 <  case 30:
3205 <
3206 < /* Line 1455 of yacc.c  */
3496 < #line 442 "ircd_parser.y"
3204 >  case 31:
3205 > /* Line 1787 of yacc.c  */
3206 > #line 405 "conf_parser.y"
3207      {
3208                          (yyval.number) = (yyvsp[(1) - (3)].number) * 60 + (yyvsp[(3) - (3)].number);
3209                  }
3210      break;
3211  
3212 <  case 31:
3213 <
3214 < /* Line 1455 of yacc.c  */
3505 < #line 446 "ircd_parser.y"
3212 >  case 32:
3213 > /* Line 1787 of yacc.c  */
3214 > #line 409 "conf_parser.y"
3215      {
3216                          (yyval.number) = (yyvsp[(1) - (3)].number) * 60 * 60 + (yyvsp[(3) - (3)].number);
3217                  }
3218      break;
3219  
3220 <  case 32:
3221 <
3222 < /* Line 1455 of yacc.c  */
3514 < #line 450 "ircd_parser.y"
3220 >  case 33:
3221 > /* Line 1787 of yacc.c  */
3222 > #line 413 "conf_parser.y"
3223      {
3224                          (yyval.number) = (yyvsp[(1) - (3)].number) * 60 * 60 * 24 + (yyvsp[(3) - (3)].number);
3225                  }
3226      break;
3227  
3228 <  case 33:
3229 <
3230 < /* Line 1455 of yacc.c  */
3523 < #line 454 "ircd_parser.y"
3228 >  case 34:
3229 > /* Line 1787 of yacc.c  */
3230 > #line 417 "conf_parser.y"
3231      {
3232                          (yyval.number) = (yyvsp[(1) - (3)].number) * 60 * 60 * 24 * 7 + (yyvsp[(3) - (3)].number);
3233                  }
3234      break;
3235  
3236 <  case 34:
3237 <
3238 < /* Line 1455 of yacc.c  */
3239 < #line 459 "ircd_parser.y"
3240 <    { (yyval.number) = 0; }
3236 >  case 35:
3237 > /* Line 1787 of yacc.c  */
3238 > #line 421 "conf_parser.y"
3239 >    {
3240 >                        (yyval.number) = (yyvsp[(1) - (3)].number) * 60 * 60 * 24 * 7 * 4 + (yyvsp[(3) - (3)].number);
3241 >                }
3242      break;
3243  
3244    case 36:
3245 <
3246 < /* Line 1455 of yacc.c  */
3247 < #line 460 "ircd_parser.y"
3248 <    { (yyval.number) = (yyvsp[(1) - (2)].number) + (yyvsp[(2) - (2)].number); }
3245 > /* Line 1787 of yacc.c  */
3246 > #line 425 "conf_parser.y"
3247 >    {
3248 >                        (yyval.number) = (yyvsp[(1) - (3)].number) * 60 * 60 * 24 * 365 + (yyvsp[(3) - (3)].number);
3249 >                }
3250      break;
3251  
3252    case 37:
3253 + /* Line 1787 of yacc.c  */
3254 + #line 430 "conf_parser.y"
3255 +    { (yyval.number) = 0; }
3256 +    break;
3257  
3258 < /* Line 1455 of yacc.c  */
3259 < #line 461 "ircd_parser.y"
3260 <    { (yyval.number) = (yyvsp[(1) - (3)].number) + (yyvsp[(3) - (3)].number); }
3258 >  case 39:
3259 > /* Line 1787 of yacc.c  */
3260 > #line 431 "conf_parser.y"
3261 >    { (yyval.number) = (yyvsp[(1) - (2)].number) + (yyvsp[(2) - (2)].number); }
3262      break;
3263  
3264 <  case 38:
3264 >  case 40:
3265 > /* Line 1787 of yacc.c  */
3266 > #line 432 "conf_parser.y"
3267 >    { (yyval.number) = (yyvsp[(1) - (3)].number) + (yyvsp[(3) - (3)].number); }
3268 >    break;
3269  
3270 < /* Line 1455 of yacc.c  */
3271 < #line 462 "ircd_parser.y"
3270 >  case 41:
3271 > /* Line 1787 of yacc.c  */
3272 > #line 433 "conf_parser.y"
3273      { (yyval.number) = (yyvsp[(1) - (3)].number) * 1024 + (yyvsp[(3) - (3)].number); }
3274      break;
3275  
3276 <  case 39:
3277 <
3278 < /* Line 1455 of yacc.c  */
3560 < #line 463 "ircd_parser.y"
3276 >  case 42:
3277 > /* Line 1787 of yacc.c  */
3278 > #line 434 "conf_parser.y"
3279      { (yyval.number) = (yyvsp[(1) - (3)].number) * 1024 * 1024 + (yyvsp[(3) - (3)].number); }
3280      break;
3281  
3282 <  case 46:
3283 <
3284 < /* Line 1455 of yacc.c  */
3567 < #line 477 "ircd_parser.y"
3282 >  case 49:
3283 > /* Line 1787 of yacc.c  */
3284 > #line 448 "conf_parser.y"
3285      {
3569 #ifndef STATIC_MODULES /* NOOP in the static case */
3286    if (conf_parser_ctx.pass == 2)
3287      add_conf_module(libio_basename(yylval.string));
3572 #endif
3288   }
3289      break;
3290  
3291 <  case 47:
3292 <
3293 < /* Line 1455 of yacc.c  */
3579 < #line 485 "ircd_parser.y"
3291 >  case 50:
3292 > /* Line 1787 of yacc.c  */
3293 > #line 454 "conf_parser.y"
3294      {
3581 #ifndef STATIC_MODULES
3295    if (conf_parser_ctx.pass == 2)
3296      mod_add_path(yylval.string);
3584 #endif
3297   }
3298      break;
3299  
3300 <  case 64:
3301 <
3302 < /* Line 1455 of yacc.c  */
3591 < #line 507 "ircd_parser.y"
3300 >  case 76:
3301 > /* Line 1787 of yacc.c  */
3302 > #line 480 "conf_parser.y"
3303      {
3304 <  if (conf_parser_ctx.boot && conf_parser_ctx.pass == 2)
3305 <    ServerInfo.tls_version = 0;
3304 > #ifdef HAVE_LIBCRYPTO
3305 >  if (conf_parser_ctx.pass == 2 && ServerInfo.client_ctx)
3306 >    SSL_CTX_clear_options(ServerInfo.client_ctx, SSL_OP_NO_SSLv3);
3307 > #endif
3308   }
3309      break;
3310  
3311 <  case 65:
3312 <
3313 < /* Line 1455 of yacc.c  */
3601 < #line 511 "ircd_parser.y"
3311 >  case 77:
3312 > /* Line 1787 of yacc.c  */
3313 > #line 486 "conf_parser.y"
3314      {
3315 <  if (conf_parser_ctx.boot && conf_parser_ctx.pass == 2)
3316 <  {
3317 <    if (!(ServerInfo.tls_version & CONF_SERVER_INFO_TLS_VERSION_SSLV3))
3318 <      SSL_CTX_set_options(ServerInfo.server_ctx, SSL_OP_NO_SSLv3);
3607 <    if (!(ServerInfo.tls_version & CONF_SERVER_INFO_TLS_VERSION_TLSV1))
3608 <      SSL_CTX_set_options(ServerInfo.server_ctx, SSL_OP_NO_TLSv1);
3609 <  }
3315 > #ifdef HAVE_LIBCRYPTO
3316 >  if (conf_parser_ctx.pass == 2 && ServerInfo.client_ctx)
3317 >    SSL_CTX_clear_options(ServerInfo.client_ctx, SSL_OP_NO_TLSv1);
3318 > #endif
3319   }
3320      break;
3321  
3322 <  case 68:
3323 <
3324 < /* Line 1455 of yacc.c  */
3616 < #line 523 "ircd_parser.y"
3322 >  case 80:
3323 > /* Line 1787 of yacc.c  */
3324 > #line 495 "conf_parser.y"
3325      {
3326 <  if (conf_parser_ctx.boot && conf_parser_ctx.pass == 2)
3327 <    ServerInfo.tls_version |= CONF_SERVER_INFO_TLS_VERSION_SSLV3;
3326 > #ifdef HAVE_LIBCRYPTO
3327 >  if (conf_parser_ctx.pass == 2 && ServerInfo.server_ctx)
3328 >    SSL_CTX_clear_options(ServerInfo.server_ctx, SSL_OP_NO_SSLv3);
3329 > #endif
3330   }
3331      break;
3332  
3333 <  case 69:
3334 <
3335 < /* Line 1455 of yacc.c  */
3626 < #line 527 "ircd_parser.y"
3333 >  case 81:
3334 > /* Line 1787 of yacc.c  */
3335 > #line 501 "conf_parser.y"
3336      {
3337 <  if (conf_parser_ctx.boot && conf_parser_ctx.pass == 2)
3338 <    ServerInfo.tls_version |= CONF_SERVER_INFO_TLS_VERSION_TLSV1;
3337 > #ifdef HAVE_LIBCRYPTO
3338 >  if (conf_parser_ctx.pass == 2 && ServerInfo.server_ctx)
3339 >    SSL_CTX_clear_options(ServerInfo.server_ctx, SSL_OP_NO_TLSv1);
3340 > #endif
3341   }
3342      break;
3343  
3344 <  case 70:
3345 <
3346 < /* Line 1455 of yacc.c  */
3636 < #line 533 "ircd_parser.y"
3344 >  case 82:
3345 > /* Line 1787 of yacc.c  */
3346 > #line 509 "conf_parser.y"
3347      {
3348   #ifdef HAVE_LIBCRYPTO
3349    if (conf_parser_ctx.pass == 2 && ServerInfo.server_ctx)
3350    {
3351      if (!ServerInfo.rsa_private_key_file)
3352      {
3353 <      yyerror("No rsa_private_key_file specified, SSL disabled");
3353 >      conf_error_report("No rsa_private_key_file specified, SSL disabled");
3354        break;
3355      }
3356  
3357      if (SSL_CTX_use_certificate_file(ServerInfo.server_ctx, yylval.string,
3358 +                                     SSL_FILETYPE_PEM) <= 0 ||
3359 +        SSL_CTX_use_certificate_file(ServerInfo.client_ctx, yylval.string,
3360                                       SSL_FILETYPE_PEM) <= 0)
3361      {
3362 <      yyerror(ERR_lib_error_string(ERR_get_error()));
3362 >      report_crypto_errors();
3363 >      conf_error_report("Could not open/read certificate file");
3364        break;
3365      }
3366  
3367      if (SSL_CTX_use_PrivateKey_file(ServerInfo.server_ctx, ServerInfo.rsa_private_key_file,
3368 +                                    SSL_FILETYPE_PEM) <= 0 ||
3369 +        SSL_CTX_use_PrivateKey_file(ServerInfo.client_ctx, ServerInfo.rsa_private_key_file,
3370                                      SSL_FILETYPE_PEM) <= 0)
3371      {
3372 <      yyerror(ERR_lib_error_string(ERR_get_error()));
3372 >      report_crypto_errors();
3373 >      conf_error_report("Could not read RSA private key");
3374        break;
3375      }
3376  
3377 <    if (!SSL_CTX_check_private_key(ServerInfo.server_ctx))
3377 >    if (!SSL_CTX_check_private_key(ServerInfo.server_ctx) ||
3378 >        !SSL_CTX_check_private_key(ServerInfo.client_ctx))
3379      {
3380 <      yyerror(ERR_lib_error_string(ERR_get_error()));
3380 >      report_crypto_errors();
3381 >      conf_error_report("Could not read RSA private key");
3382        break;
3383      }
3384    }
# Line 3668 | Line 3386 | yyreduce:
3386   }
3387      break;
3388  
3389 <  case 71:
3390 <
3391 < /* Line 1455 of yacc.c  */
3674 < #line 567 "ircd_parser.y"
3389 >  case 83:
3390 > /* Line 1787 of yacc.c  */
3391 > #line 551 "conf_parser.y"
3392      {
3393   #ifdef HAVE_LIBCRYPTO
3394 <  if (conf_parser_ctx.pass == 1)
3394 >  BIO *file = NULL;
3395 >
3396 >  if (conf_parser_ctx.pass != 1)
3397 >    break;
3398 >
3399 >  if (ServerInfo.rsa_private_key)
3400    {
3401 <    BIO *file;
3401 >    RSA_free(ServerInfo.rsa_private_key);
3402 >    ServerInfo.rsa_private_key = NULL;
3403 >  }
3404  
3405 <    if (ServerInfo.rsa_private_key)
3406 <    {
3407 <      RSA_free(ServerInfo.rsa_private_key);
3408 <      ServerInfo.rsa_private_key = NULL;
3409 <    }
3405 >  if (ServerInfo.rsa_private_key_file)
3406 >  {
3407 >    MyFree(ServerInfo.rsa_private_key_file);
3408 >    ServerInfo.rsa_private_key_file = NULL;
3409 >  }
3410  
3411 <    if (ServerInfo.rsa_private_key_file)
3688 <    {
3689 <      MyFree(ServerInfo.rsa_private_key_file);
3690 <      ServerInfo.rsa_private_key_file = NULL;
3691 <    }
3411 >  ServerInfo.rsa_private_key_file = xstrdup(yylval.string);
3412  
3413 <    DupString(ServerInfo.rsa_private_key_file, yylval.string);
3413 >  if ((file = BIO_new_file(yylval.string, "r")) == NULL)
3414 >  {
3415 >    conf_error_report("File open failed, ignoring");
3416 >    break;
3417 >  }
3418  
3419 <    if ((file = BIO_new_file(yylval.string, "r")) == NULL)
3420 <    {
3421 <      yyerror("File open failed, ignoring");
3422 <      break;
3423 <    }
3419 >  ServerInfo.rsa_private_key = PEM_read_bio_RSAPrivateKey(file, NULL, 0, NULL);
3420 >
3421 >  BIO_set_close(file, BIO_CLOSE);
3422 >  BIO_free(file);
3423 >
3424 >  if (ServerInfo.rsa_private_key == NULL)
3425 >  {
3426 >    conf_error_report("Couldn't extract key, ignoring");
3427 >    break;
3428 >  }
3429  
3430 <    ServerInfo.rsa_private_key = (RSA *)PEM_read_bio_RSAPrivateKey(file, NULL,
3431 <      0, NULL);
3430 >  if (!RSA_check_key(ServerInfo.rsa_private_key))
3431 >  {
3432 >    RSA_free(ServerInfo.rsa_private_key);
3433 >    ServerInfo.rsa_private_key = NULL;
3434 >
3435 >    conf_error_report("Invalid key, ignoring");
3436 >    break;
3437 >  }
3438  
3439 <    BIO_set_close(file, BIO_CLOSE);
3440 <    BIO_free(file);
3439 >  /* require 2048 bit (256 byte) key */
3440 >  if (RSA_size(ServerInfo.rsa_private_key) != 256)
3441 >  {
3442 >    RSA_free(ServerInfo.rsa_private_key);
3443 >    ServerInfo.rsa_private_key = NULL;
3444 >
3445 >    conf_error_report("Not a 2048 bit key, ignoring");
3446 >  }
3447 > #endif
3448 > }
3449 >    break;
3450  
3451 <    if (ServerInfo.rsa_private_key == NULL)
3451 >  case 84:
3452 > /* Line 1787 of yacc.c  */
3453 > #line 610 "conf_parser.y"
3454      {
3455 <      yyerror("Couldn't extract key, ignoring");
3456 <      break;
3457 <    }
3455 > /* TBD - XXX: error reporting */
3456 > #ifdef HAVE_LIBCRYPTO
3457 >  if (conf_parser_ctx.pass == 2 && ServerInfo.server_ctx)
3458 >  {
3459 >    BIO *file = BIO_new_file(yylval.string, "r");
3460  
3461 <    if (!RSA_check_key(ServerInfo.rsa_private_key))
3461 >    if (file)
3462      {
3463 <      RSA_free(ServerInfo.rsa_private_key);
3716 <      ServerInfo.rsa_private_key = NULL;
3463 >      DH *dh = PEM_read_bio_DHparams(file, NULL, NULL, NULL);
3464  
3465 <      yyerror("Invalid key, ignoring");
3719 <      break;
3720 <    }
3465 >      BIO_free(file);
3466  
3467 <    /* require 2048 bit (256 byte) key */
3468 <    if (RSA_size(ServerInfo.rsa_private_key) != 256)
3469 <    {
3470 <      RSA_free(ServerInfo.rsa_private_key);
3471 <      ServerInfo.rsa_private_key = NULL;
3467 >      if (dh)
3468 >      {
3469 >        if (DH_size(dh) < 128)
3470 >          conf_error_report("Ignoring serverinfo::ssl_dh_param_file -- need at least a 1024 bit DH prime size");
3471 >        else
3472 >          SSL_CTX_set_tmp_dh(ServerInfo.server_ctx, dh);
3473  
3474 <      yyerror("Not a 2048 bit key, ignoring");
3474 >        DH_free(dh);
3475 >      }
3476      }
3477    }
3478   #endif
3479   }
3480      break;
3481  
3482 <  case 72:
3482 >  case 85:
3483 > /* Line 1787 of yacc.c  */
3484 > #line 638 "conf_parser.y"
3485 >    {
3486 > #ifdef HAVE_LIBCRYPTO
3487 >  if (conf_parser_ctx.pass == 2 && ServerInfo.server_ctx)
3488 >    SSL_CTX_set_cipher_list(ServerInfo.server_ctx, yylval.string);
3489 > #endif
3490 > }
3491 >    break;
3492  
3493 < /* Line 1455 of yacc.c  */
3494 < #line 627 "ircd_parser.y"
3493 >  case 86:
3494 > /* Line 1787 of yacc.c  */
3495 > #line 646 "conf_parser.y"
3496      {
3497    /* this isn't rehashable */
3498 <  if (conf_parser_ctx.pass == 2)
3498 >  if (conf_parser_ctx.pass == 2 && !ServerInfo.name)
3499    {
3500 <    if (ServerInfo.name == NULL)
3500 >    if (valid_servname(yylval.string))
3501 >      ServerInfo.name = xstrdup(yylval.string);
3502 >    else
3503      {
3504 <      /* the ircd will exit() in main() if we dont set one */
3505 <      if (strlen(yylval.string) <= HOSTLEN)
3747 <        DupString(ServerInfo.name, yylval.string);
3504 >      conf_error_report("Ignoring serverinfo::name -- invalid name. Aborting.");
3505 >      exit(0);
3506      }
3507    }
3508   }
3509      break;
3510  
3511 <  case 73:
3512 <
3513 < /* Line 1455 of yacc.c  */
3756 < #line 641 "ircd_parser.y"
3511 >  case 87:
3512 > /* Line 1787 of yacc.c  */
3513 > #line 661 "conf_parser.y"
3514      {
3515    /* this isn't rehashable */
3516    if (conf_parser_ctx.pass == 2 && !ServerInfo.sid)
3517    {
3518      if (valid_sid(yylval.string))
3519 <      DupString(ServerInfo.sid, yylval.string);
3519 >      ServerInfo.sid = xstrdup(yylval.string);
3520      else
3521      {
3522 <      ilog(L_ERROR, "Ignoring config file entry SID -- invalid SID. Aborting.");
3522 >      conf_error_report("Ignoring serverinfo::sid -- invalid SID. Aborting.");
3523        exit(0);
3524      }
3525    }
3526   }
3527      break;
3528  
3529 <  case 74:
3530 <
3531 < /* Line 1455 of yacc.c  */
3775 < #line 656 "ircd_parser.y"
3529 >  case 88:
3530 > /* Line 1787 of yacc.c  */
3531 > #line 676 "conf_parser.y"
3532      {
3533    if (conf_parser_ctx.pass == 2)
3534    {
3535      MyFree(ServerInfo.description);
3536 <    DupString(ServerInfo.description,yylval.string);
3536 >    ServerInfo.description = xstrdup(yylval.string);
3537    }
3538   }
3539      break;
3540  
3541 <  case 75:
3542 <
3543 < /* Line 1455 of yacc.c  */
3788 < #line 665 "ircd_parser.y"
3541 >  case 89:
3542 > /* Line 1787 of yacc.c  */
3543 > #line 685 "conf_parser.y"
3544      {
3545    if (conf_parser_ctx.pass == 2)
3546    {
# Line 3795 | Line 3550 | yyreduce:
3550        p = '\0';
3551  
3552      MyFree(ServerInfo.network_name);
3553 <    DupString(ServerInfo.network_name, yylval.string);
3553 >    ServerInfo.network_name = xstrdup(yylval.string);
3554    }
3555   }
3556      break;
3557  
3558 <  case 76:
3559 <
3560 < /* Line 1455 of yacc.c  */
3806 < #line 679 "ircd_parser.y"
3558 >  case 90:
3559 > /* Line 1787 of yacc.c  */
3560 > #line 699 "conf_parser.y"
3561      {
3562 <  if (conf_parser_ctx.pass == 2)
3809 <  {
3810 <    MyFree(ServerInfo.network_desc);
3811 <    DupString(ServerInfo.network_desc, yylval.string);
3812 <  }
3813 < }
3562 >  if (conf_parser_ctx.pass != 2)
3563      break;
3564  
3565 <  case 77:
3565 >  MyFree(ServerInfo.network_desc);
3566 >  ServerInfo.network_desc = xstrdup(yylval.string);
3567 > }
3568 >    break;
3569  
3570 < /* Line 1455 of yacc.c  */
3571 < #line 688 "ircd_parser.y"
3570 >  case 91:
3571 > /* Line 1787 of yacc.c  */
3572 > #line 708 "conf_parser.y"
3573      {
3574    if (conf_parser_ctx.pass == 2 && *yylval.string != '*')
3575    {
# Line 3828 | Line 3581 | yyreduce:
3581      hints.ai_socktype = SOCK_STREAM;
3582      hints.ai_flags    = AI_PASSIVE | AI_NUMERICHOST;
3583  
3584 <    if (irc_getaddrinfo(yylval.string, NULL, &hints, &res))
3585 <      ilog(L_ERROR, "Invalid netmask for server vhost(%s)", yylval.string);
3584 >    if (getaddrinfo(yylval.string, NULL, &hints, &res))
3585 >      ilog(LOG_TYPE_IRCD, "Invalid netmask for server vhost(%s)", yylval.string);
3586      else
3587      {
3588        assert(res != NULL);
# Line 3837 | Line 3590 | yyreduce:
3590        memcpy(&ServerInfo.ip, res->ai_addr, res->ai_addrlen);
3591        ServerInfo.ip.ss.ss_family = res->ai_family;
3592        ServerInfo.ip.ss_len = res->ai_addrlen;
3593 <      irc_freeaddrinfo(res);
3593 >      freeaddrinfo(res);
3594  
3595        ServerInfo.specific_ipv4_vhost = 1;
3596      }
# Line 3845 | Line 3598 | yyreduce:
3598   }
3599      break;
3600  
3601 <  case 78:
3602 <
3603 < /* Line 1455 of yacc.c  */
3851 < #line 716 "ircd_parser.y"
3601 >  case 92:
3602 > /* Line 1787 of yacc.c  */
3603 > #line 736 "conf_parser.y"
3604      {
3605   #ifdef IPV6
3606    if (conf_parser_ctx.pass == 2 && *yylval.string != '*')
# Line 3861 | Line 3613 | yyreduce:
3613      hints.ai_socktype = SOCK_STREAM;
3614      hints.ai_flags    = AI_PASSIVE | AI_NUMERICHOST;
3615  
3616 <    if (irc_getaddrinfo(yylval.string, NULL, &hints, &res))
3617 <      ilog(L_ERROR, "Invalid netmask for server vhost6(%s)", yylval.string);
3616 >    if (getaddrinfo(yylval.string, NULL, &hints, &res))
3617 >      ilog(LOG_TYPE_IRCD, "Invalid netmask for server vhost6(%s)", yylval.string);
3618      else
3619      {
3620        assert(res != NULL);
# Line 3870 | Line 3622 | yyreduce:
3622        memcpy(&ServerInfo.ip6, res->ai_addr, res->ai_addrlen);
3623        ServerInfo.ip6.ss.ss_family = res->ai_family;
3624        ServerInfo.ip6.ss_len = res->ai_addrlen;
3625 <      irc_freeaddrinfo(res);
3625 >      freeaddrinfo(res);
3626  
3627        ServerInfo.specific_ipv6_vhost = 1;
3628      }
# Line 3879 | Line 3631 | yyreduce:
3631   }
3632      break;
3633  
3634 <  case 79:
3635 <
3636 < /* Line 1455 of yacc.c  */
3885 < #line 746 "ircd_parser.y"
3634 >  case 93:
3635 > /* Line 1787 of yacc.c  */
3636 > #line 766 "conf_parser.y"
3637      {
3638 <  if (conf_parser_ctx.pass == 2)
3638 >  if (conf_parser_ctx.pass != 2)
3639 >    break;
3640 >
3641 >  if ((yyvsp[(3) - (4)].number) < MAXCLIENTS_MIN)
3642    {
3643 <    recalc_fdlimit(NULL);
3643 >    char buf[IRCD_BUFSIZE];
3644  
3645 <    if ((yyvsp[(3) - (4)].number) < MAXCLIENTS_MIN)
3646 <    {
3647 <      char buf[IRCD_BUFSIZE];
3894 <      ircsprintf(buf, "MAXCLIENTS too low, setting to %d", MAXCLIENTS_MIN);
3895 <      yyerror(buf);
3896 <    }
3897 <    else if ((yyvsp[(3) - (4)].number) > MAXCLIENTS_MAX)
3898 <    {
3899 <      char buf[IRCD_BUFSIZE];
3900 <      ircsprintf(buf, "MAXCLIENTS too high, setting to %d", MAXCLIENTS_MAX);
3901 <      yyerror(buf);
3902 <    }
3903 <    else
3904 <      ServerInfo.max_clients = (yyvsp[(3) - (4)].number);
3645 >    snprintf(buf, sizeof(buf), "MAXCLIENTS too low, setting to %d", MAXCLIENTS_MIN);
3646 >    conf_error_report(buf);
3647 >    ServerInfo.max_clients = MAXCLIENTS_MIN;
3648    }
3649 +  else if ((yyvsp[(3) - (4)].number) > MAXCLIENTS_MAX)
3650 +  {
3651 +    char buf[IRCD_BUFSIZE];
3652 +
3653 +    snprintf(buf, sizeof(buf), "MAXCLIENTS too high, setting to %d", MAXCLIENTS_MAX);
3654 +    conf_error_report(buf);
3655 +    ServerInfo.max_clients = MAXCLIENTS_MAX;
3656 +  }
3657 +  else
3658 +    ServerInfo.max_clients = (yyvsp[(3) - (4)].number);
3659   }
3660      break;
3661  
3662 <  case 80:
3663 <
3664 < /* Line 1455 of yacc.c  */
3912 < #line 769 "ircd_parser.y"
3662 >  case 94:
3663 > /* Line 1787 of yacc.c  */
3664 > #line 791 "conf_parser.y"
3665      {
3666 <  if (conf_parser_ctx.pass == 2)
3666 >  if (conf_parser_ctx.pass != 2)
3667 >    break;
3668 >
3669 >  if ((yyvsp[(3) - (4)].number) < 9)
3670    {
3671 <    if (yylval.number)
3672 <    {
3673 <      ServerInfo.hub = 1;
3674 <      delete_capability("HUB");
3675 <      add_capability("HUB", CAP_HUB, 1);
3676 <    }
3922 <    else if (ServerInfo.hub)
3923 <    {
3671 >    conf_error_report("max_nick_length too low, setting to 9");
3672 >    ServerInfo.max_nick_length = 9;
3673 >  }
3674 >  else if ((yyvsp[(3) - (4)].number) > NICKLEN)
3675 >  {
3676 >    char buf[IRCD_BUFSIZE];
3677  
3678 <      ServerInfo.hub = 0;
3679 <      delete_capability("HUB");
3680 <    }
3678 >    snprintf(buf, sizeof(buf), "max_nick_length too high, setting to %d", NICKLEN);
3679 >    conf_error_report(buf);
3680 >    ServerInfo.max_nick_length = NICKLEN;
3681    }
3682 +  else
3683 +    ServerInfo.max_nick_length = (yyvsp[(3) - (4)].number);
3684   }
3685      break;
3686  
3687 <  case 88:
3688 <
3689 < /* Line 1455 of yacc.c  */
3935 < #line 797 "ircd_parser.y"
3687 >  case 95:
3688 > /* Line 1787 of yacc.c  */
3689 > #line 813 "conf_parser.y"
3690      {
3691 <  if (conf_parser_ctx.pass == 2)
3691 >  if (conf_parser_ctx.pass != 2)
3692 >    break;
3693 >
3694 >  if ((yyvsp[(3) - (4)].number) < 80)
3695    {
3696 <    MyFree(AdminInfo.name);
3697 <    DupString(AdminInfo.name, yylval.string);
3696 >    conf_error_report("max_topic_length too low, setting to 80");
3697 >    ServerInfo.max_topic_length = 80;
3698    }
3699 +  else if ((yyvsp[(3) - (4)].number) > TOPICLEN)
3700 +  {
3701 +    char buf[IRCD_BUFSIZE];
3702 +
3703 +    snprintf(buf, sizeof(buf), "max_topic_length too high, setting to %d", TOPICLEN);
3704 +    conf_error_report(buf);
3705 +    ServerInfo.max_topic_length = TOPICLEN;
3706 +  }
3707 +  else
3708 +    ServerInfo.max_topic_length = (yyvsp[(3) - (4)].number);
3709   }
3710      break;
3711  
3712 <  case 89:
3713 <
3714 < /* Line 1455 of yacc.c  */
3948 < #line 806 "ircd_parser.y"
3712 >  case 96:
3713 > /* Line 1787 of yacc.c  */
3714 > #line 835 "conf_parser.y"
3715      {
3716    if (conf_parser_ctx.pass == 2)
3717 <  {
3952 <    MyFree(AdminInfo.email);
3953 <    DupString(AdminInfo.email, yylval.string);
3954 <  }
3717 >    ServerInfo.hub = yylval.number;
3718   }
3719      break;
3720  
3721 <  case 90:
3722 <
3723 < /* Line 1455 of yacc.c  */
3961 < #line 815 "ircd_parser.y"
3721 >  case 104:
3722 > /* Line 1787 of yacc.c  */
3723 > #line 850 "conf_parser.y"
3724      {
3725 <  if (conf_parser_ctx.pass == 2)
3964 <  {
3965 <    MyFree(AdminInfo.description);
3966 <    DupString(AdminInfo.description, yylval.string);
3967 <  }
3968 < }
3725 >  if (conf_parser_ctx.pass != 2)
3726      break;
3727  
3728 <  case 107:
3728 >  MyFree(AdminInfo.name);
3729 >  AdminInfo.name = xstrdup(yylval.string);
3730 > }
3731 >    break;
3732  
3733 < /* Line 1455 of yacc.c  */
3734 < #line 842 "ircd_parser.y"
3733 >  case 105:
3734 > /* Line 1787 of yacc.c  */
3735 > #line 859 "conf_parser.y"
3736      {
3737 <                        }
3737 >  if (conf_parser_ctx.pass != 2)
3738      break;
3739  
3740 <  case 108:
3740 >  MyFree(AdminInfo.email);
3741 >  AdminInfo.email = xstrdup(yylval.string);
3742 > }
3743 >    break;
3744  
3745 < /* Line 1455 of yacc.c  */
3746 < #line 846 "ircd_parser.y"
3745 >  case 106:
3746 > /* Line 1787 of yacc.c  */
3747 > #line 868 "conf_parser.y"
3748      {
3749 <                        }
3749 >  if (conf_parser_ctx.pass != 2)
3750      break;
3751  
3752 <  case 109:
3752 >  MyFree(AdminInfo.description);
3753 >  AdminInfo.description = xstrdup(yylval.string);
3754 > }
3755 >    break;
3756  
3757 < /* Line 1455 of yacc.c  */
3758 < #line 850 "ircd_parser.y"
3757 >  case 107:
3758 > /* Line 1787 of yacc.c  */
3759 > #line 880 "conf_parser.y"
3760      {
3761    if (conf_parser_ctx.pass == 2)
3762 <    strlcpy(ConfigLoggingEntry.userlog, yylval.string,
3994 <            sizeof(ConfigLoggingEntry.userlog));
3762 >    reset_block_state();
3763   }
3764      break;
3765  
3766 <  case 110:
3767 <
3768 < /* Line 1455 of yacc.c  */
4001 < #line 857 "ircd_parser.y"
3766 >  case 108:
3767 > /* Line 1787 of yacc.c  */
3768 > #line 884 "conf_parser.y"
3769      {
3770 <  if (conf_parser_ctx.pass == 2)
3771 <    strlcpy(ConfigLoggingEntry.failed_operlog, yylval.string,
3772 <            sizeof(ConfigLoggingEntry.failed_operlog));
4006 < }
3770 >  dlink_node *ptr = NULL;
3771 >
3772 >  if (conf_parser_ctx.pass != 2)
3773      break;
3774  
3775 <  case 111:
3775 >  if (!block_state.file.buf[0])
3776 >    break;
3777  
3778 < /* Line 1455 of yacc.c  */
3779 < #line 864 "ircd_parser.y"
4013 <    {
4014 <  if (conf_parser_ctx.pass == 2)
4015 <    strlcpy(ConfigLoggingEntry.operlog, yylval.string,
4016 <            sizeof(ConfigLoggingEntry.operlog));
3778 >  DLINK_FOREACH(ptr, block_state.mask.list.head)
3779 >    motd_add(ptr->data, block_state.file.buf);
3780   }
3781      break;
3782  
3783 <  case 112:
3784 <
3785 < /* Line 1455 of yacc.c  */
4023 < #line 871 "ircd_parser.y"
3783 >  case 114:
3784 > /* Line 1787 of yacc.c  */
3785 > #line 901 "conf_parser.y"
3786      {
3787    if (conf_parser_ctx.pass == 2)
3788 <    strlcpy(ConfigLoggingEntry.operspylog, yylval.string,
4027 <            sizeof(ConfigLoggingEntry.operspylog));
3788 >    dlinkAdd(xstrdup(yylval.string), make_dlink_node(), &block_state.mask.list);
3789   }
3790      break;
3791  
3792 <  case 113:
3793 <
3794 < /* Line 1455 of yacc.c  */
4034 < #line 878 "ircd_parser.y"
3792 >  case 115:
3793 > /* Line 1787 of yacc.c  */
3794 > #line 907 "conf_parser.y"
3795      {
3796    if (conf_parser_ctx.pass == 2)
3797 <    strlcpy(ConfigLoggingEntry.glinelog, yylval.string,
4038 <            sizeof(ConfigLoggingEntry.glinelog));
3797 >    strlcpy(block_state.file.buf, yylval.string, sizeof(block_state.file.buf));
3798   }
3799      break;
3800  
3801 <  case 114:
3802 <
3803 < /* Line 1455 of yacc.c  */
4045 < #line 885 "ircd_parser.y"
3801 >  case 122:
3802 > /* Line 1787 of yacc.c  */
3803 > #line 922 "conf_parser.y"
3804      {
3805    if (conf_parser_ctx.pass == 2)
3806 <    strlcpy(ConfigLoggingEntry.klinelog, yylval.string,
4049 <            sizeof(ConfigLoggingEntry.klinelog));
3806 >    ConfigLoggingEntry.use_logging = yylval.number;
3807   }
3808      break;
3809  
3810 <  case 115:
3811 <
3812 < /* Line 1455 of yacc.c  */
4056 < #line 892 "ircd_parser.y"
3810 >  case 123:
3811 > /* Line 1787 of yacc.c  */
3812 > #line 928 "conf_parser.y"
3813      {
3814    if (conf_parser_ctx.pass == 2)
3815 <    strlcpy(ConfigLoggingEntry.ioerrlog, yylval.string,
4060 <            sizeof(ConfigLoggingEntry.ioerrlog));
3815 >    reset_block_state();
3816   }
3817      break;
3818  
3819 <  case 116:
3820 <
3821 < /* Line 1455 of yacc.c  */
4067 < #line 899 "ircd_parser.y"
3819 >  case 124:
3820 > /* Line 1787 of yacc.c  */
3821 > #line 932 "conf_parser.y"
3822      {
3823 <  if (conf_parser_ctx.pass == 2)
3824 <    strlcpy(ConfigLoggingEntry.killlog, yylval.string,
3825 <            sizeof(ConfigLoggingEntry.killlog));
3823 >  if (conf_parser_ctx.pass != 2)
3824 >    break;
3825 >
3826 >  if (block_state.type.value && block_state.file.buf[0])
3827 >    log_set_file(block_state.type.value, block_state.size.value,
3828 >                 block_state.file.buf);
3829   }
3830      break;
3831  
3832 <  case 117:
3832 >  case 131:
3833 > /* Line 1787 of yacc.c  */
3834 > #line 948 "conf_parser.y"
3835 >    {
3836 >  if (conf_parser_ctx.pass != 2)
3837 >    break;
3838  
3839 < /* Line 1455 of yacc.c  */
4078 < #line 906 "ircd_parser.y"
4079 <    {
4080 <  if (conf_parser_ctx.pass == 2)
4081 <    set_log_level(L_CRIT);
3839 >  strlcpy(block_state.file.buf, yylval.string, sizeof(block_state.file.buf));
3840   }
3841      break;
3842  
3843 <  case 118:
3844 <
3845 < /* Line 1455 of yacc.c  */
4088 < #line 910 "ircd_parser.y"
3843 >  case 132:
3844 > /* Line 1787 of yacc.c  */
3845 > #line 956 "conf_parser.y"
3846      {
3847 <  if (conf_parser_ctx.pass == 2)
4091 <    set_log_level(L_ERROR);
3847 >  block_state.size.value = (yyvsp[(3) - (4)].number);
3848   }
3849      break;
3850  
3851 <  case 119:
3852 <
3853 < /* Line 1455 of yacc.c  */
4098 < #line 914 "ircd_parser.y"
3851 >  case 133:
3852 > /* Line 1787 of yacc.c  */
3853 > #line 959 "conf_parser.y"
3854      {
3855 <  if (conf_parser_ctx.pass == 2)
4101 <    set_log_level(L_WARN);
3855 >  block_state.size.value = 0;
3856   }
3857      break;
3858  
3859 <  case 120:
3860 <
3861 < /* Line 1455 of yacc.c  */
4108 < #line 918 "ircd_parser.y"
3859 >  case 134:
3860 > /* Line 1787 of yacc.c  */
3861 > #line 964 "conf_parser.y"
3862      {
3863    if (conf_parser_ctx.pass == 2)
3864 <    set_log_level(L_NOTICE);
3864 >    block_state.type.value = 0;
3865   }
3866      break;
3867  
3868 <  case 121:
3869 <
3870 < /* Line 1455 of yacc.c  */
4118 < #line 922 "ircd_parser.y"
3868 >  case 138:
3869 > /* Line 1787 of yacc.c  */
3870 > #line 971 "conf_parser.y"
3871      {
3872    if (conf_parser_ctx.pass == 2)
3873 <    set_log_level(L_TRACE);
3873 >    block_state.type.value = LOG_TYPE_USER;
3874   }
3875      break;
3876  
3877 <  case 122:
3878 <
3879 < /* Line 1455 of yacc.c  */
4128 < #line 926 "ircd_parser.y"
3877 >  case 139:
3878 > /* Line 1787 of yacc.c  */
3879 > #line 975 "conf_parser.y"
3880      {
3881    if (conf_parser_ctx.pass == 2)
3882 <    set_log_level(L_INFO);
3882 >    block_state.type.value = LOG_TYPE_OPER;
3883   }
3884      break;
3885  
3886 <  case 123:
3887 <
3888 < /* Line 1455 of yacc.c  */
4138 < #line 930 "ircd_parser.y"
3886 >  case 140:
3887 > /* Line 1787 of yacc.c  */
3888 > #line 979 "conf_parser.y"
3889      {
3890    if (conf_parser_ctx.pass == 2)
3891 <    set_log_level(L_DEBUG);
3891 >    block_state.type.value = LOG_TYPE_GLINE;
3892   }
3893      break;
3894  
3895 <  case 124:
3896 <
3897 < /* Line 1455 of yacc.c  */
4148 < #line 936 "ircd_parser.y"
3895 >  case 141:
3896 > /* Line 1787 of yacc.c  */
3897 > #line 983 "conf_parser.y"
3898      {
3899    if (conf_parser_ctx.pass == 2)
3900 <    ConfigLoggingEntry.use_logging = yylval.number;
3900 >    block_state.type.value = LOG_TYPE_DLINE;
3901   }
3902      break;
3903  
3904 <  case 125:
3905 <
3906 < /* Line 1455 of yacc.c  */
4158 < #line 945 "ircd_parser.y"
3904 >  case 142:
3905 > /* Line 1787 of yacc.c  */
3906 > #line 987 "conf_parser.y"
3907      {
3908    if (conf_parser_ctx.pass == 2)
3909 <  {
4162 <    yy_conf = make_conf_item(OPER_TYPE);
4163 <    yy_aconf = map_to_conf(yy_conf);
4164 <    SetConfEncrypted(yy_aconf); /* Yes, the default is encrypted */
4165 <  }
4166 <  else
4167 <  {
4168 <    MyFree(class_name);
4169 <    class_name = NULL;
4170 <  }
3909 >    block_state.type.value = LOG_TYPE_KLINE;
3910   }
3911      break;
3912  
3913 <  case 126:
3914 <
3915 < /* Line 1455 of yacc.c  */
4177 < #line 958 "ircd_parser.y"
3913 >  case 143:
3914 > /* Line 1787 of yacc.c  */
3915 > #line 991 "conf_parser.y"
3916      {
3917    if (conf_parser_ctx.pass == 2)
3918 <  {
3919 <    struct CollectItem *yy_tmp;
3920 <    dlink_node *ptr;
4183 <    dlink_node *next_ptr;
4184 <
4185 <    conf_add_class_to_conf(yy_conf, class_name);
4186 <
4187 <    /* Now, make sure there is a copy of the "base" given oper
4188 <     * block in each of the collected copies
4189 <     */
3918 >    block_state.type.value = LOG_TYPE_KILL;
3919 > }
3920 >    break;
3921  
3922 <    DLINK_FOREACH_SAFE(ptr, next_ptr, col_conf_list.head)
3922 >  case 144:
3923 > /* Line 1787 of yacc.c  */
3924 > #line 995 "conf_parser.y"
3925      {
3926 <      struct AccessItem *new_aconf;
3927 <      struct ConfItem *new_conf;
4195 <      yy_tmp = ptr->data;
4196 <
4197 <      new_conf = make_conf_item(OPER_TYPE);
4198 <      new_aconf = (struct AccessItem *)map_to_conf(new_conf);
4199 <
4200 <      new_aconf->flags = yy_aconf->flags;
4201 <
4202 <      if (yy_conf->name != NULL)
4203 <        DupString(new_conf->name, yy_conf->name);
4204 <      if (yy_tmp->user != NULL)
4205 <        DupString(new_aconf->user, yy_tmp->user);
4206 <      else
4207 <        DupString(new_aconf->user, "*");
4208 <      if (yy_tmp->host != NULL)
4209 <        DupString(new_aconf->host, yy_tmp->host);
4210 <      else
4211 <        DupString(new_aconf->host, "*");
4212 <      conf_add_class_to_conf(new_conf, class_name);
4213 <      if (yy_aconf->passwd != NULL)
4214 <        DupString(new_aconf->passwd, yy_aconf->passwd);
4215 <
4216 <      new_aconf->port = yy_aconf->port;
4217 < #ifdef HAVE_LIBCRYPTO
4218 <      if (yy_aconf->rsa_public_key_file != NULL)
4219 <      {
4220 <        BIO *file;
4221 <
4222 <        DupString(new_aconf->rsa_public_key_file,
4223 <                  yy_aconf->rsa_public_key_file);
4224 <
4225 <        file = BIO_new_file(yy_aconf->rsa_public_key_file, "r");
4226 <        new_aconf->rsa_public_key = (RSA *)PEM_read_bio_RSA_PUBKEY(file,
4227 <                                                           NULL, 0, NULL);
4228 <        BIO_set_close(file, BIO_CLOSE);
4229 <        BIO_free(file);
4230 <      }
4231 < #endif
4232 <
4233 < #ifdef HAVE_LIBCRYPTO
4234 <      if (yy_tmp->name && (yy_tmp->passwd || yy_aconf->rsa_public_key)
4235 <          && yy_tmp->host)
4236 < #else
4237 <      if (yy_tmp->name && yy_tmp->passwd && yy_tmp->host)
4238 < #endif
4239 <      {
4240 <        conf_add_class_to_conf(new_conf, class_name);
4241 <        if (yy_tmp->name != NULL)
4242 <          DupString(new_conf->name, yy_tmp->name);
4243 <      }
4244 <
4245 <      dlinkDelete(&yy_tmp->node, &col_conf_list);
4246 <      free_collect_item(yy_tmp);
4247 <    }
4248 <
4249 <    yy_conf = NULL;
4250 <    yy_aconf = NULL;
4251 <
4252 <
4253 <    MyFree(class_name);
4254 <    class_name = NULL;
4255 <  }
3926 >  if (conf_parser_ctx.pass == 2)
3927 >    block_state.type.value = LOG_TYPE_DEBUG;
3928   }
3929      break;
3930  
3931 <  case 154:
3932 <
3933 < /* Line 1455 of yacc.c  */
4262 < #line 1050 "ircd_parser.y"
3931 >  case 145:
3932 > /* Line 1787 of yacc.c  */
3933 > #line 1005 "conf_parser.y"
3934      {
3935 <  if (conf_parser_ctx.pass == 2)
3936 <  {
4266 <    if (strlen(yylval.string) > OPERNICKLEN)
4267 <      yylval.string[OPERNICKLEN] = '\0';
3935 >  if (conf_parser_ctx.pass != 2)
3936 >    break;
3937  
3938 <    MyFree(yy_conf->name);
3939 <    DupString(yy_conf->name, yylval.string);
4271 <  }
3938 >  reset_block_state();
3939 >  block_state.flags.value |= CONF_FLAGS_ENCRYPTED;
3940   }
3941      break;
3942  
3943 <  case 155:
3944 <
3945 < /* Line 1455 of yacc.c  */
4278 < #line 1062 "ircd_parser.y"
3943 >  case 146:
3944 > /* Line 1787 of yacc.c  */
3945 > #line 1012 "conf_parser.y"
3946      {
3947 <  if (conf_parser_ctx.pass == 2)
4281 <  {
4282 <    if (strlen(yylval.string) > OPERNICKLEN)
4283 <      yylval.string[OPERNICKLEN] = '\0';
3947 >  dlink_node *ptr = NULL;
3948  
3949 <    MyFree(yy_conf->name);
4286 <    DupString(yy_conf->name, yylval.string);
4287 <  }
4288 < }
3949 >  if (conf_parser_ctx.pass != 2)
3950      break;
3951  
3952 <  case 156:
3952 >  if (!block_state.name.buf[0])
3953 >    break;
3954 > #ifdef HAVE_LIBCRYPTO
3955 >  if (!block_state.file.buf[0] &&
3956 >      !block_state.rpass.buf[0])
3957 >    break;
3958 > #else
3959 >  if (!block_state.rpass.buf[0])
3960 >    break;
3961 > #endif
3962  
3963 < /* Line 1455 of yacc.c  */
4294 < #line 1074 "ircd_parser.y"
4295 <    {
4296 <  if (conf_parser_ctx.pass == 2)
3963 >  DLINK_FOREACH(ptr, block_state.mask.list.head)
3964    {
3965 +    struct MaskItem *conf = NULL;
3966      struct split_nuh_item nuh;
3967  
3968 <    nuh.nuhmask  = yylval.string;
3968 >    nuh.nuhmask  = ptr->data;
3969      nuh.nickptr  = NULL;
3970 <    nuh.userptr  = userbuf;
3971 <    nuh.hostptr  = hostbuf;
4304 <
3970 >    nuh.userptr  = block_state.user.buf;
3971 >    nuh.hostptr  = block_state.host.buf;
3972      nuh.nicksize = 0;
3973 <    nuh.usersize = sizeof(userbuf);
3974 <    nuh.hostsize = sizeof(hostbuf);
4308 <
3973 >    nuh.usersize = sizeof(block_state.user.buf);
3974 >    nuh.hostsize = sizeof(block_state.host.buf);
3975      split_nuh(&nuh);
3976  
3977 <    if (yy_aconf->user == NULL)
3978 <    {
3979 <      DupString(yy_aconf->user, userbuf);
3980 <      DupString(yy_aconf->host, hostbuf);
3981 <    }
3982 <    else
3983 <    {
3984 <      struct CollectItem *yy_tmp = MyMalloc(sizeof(struct CollectItem));
3977 >    conf        = conf_make(CONF_OPER);
3978 >    conf->name  = xstrdup(block_state.name.buf);
3979 >    conf->user  = xstrdup(block_state.user.buf);
3980 >    conf->host  = xstrdup(block_state.host.buf);
3981 >
3982 >    if (block_state.rpass.buf[0])
3983 >      conf->passwd = xstrdup(block_state.rpass.buf);
3984 >
3985 >    conf->flags = block_state.flags.value;
3986 >    conf->modes = block_state.modes.value;
3987 >    conf->port  = block_state.port.value;
3988 >    conf->htype = parse_netmask(conf->host, &conf->addr, &conf->bits);
3989  
3990 <      DupString(yy_tmp->user, userbuf);
4321 <      DupString(yy_tmp->host, hostbuf);
3990 >    conf_add_class_to_conf(conf, block_state.class.buf);
3991  
3992 <      dlinkAdd(yy_tmp, &yy_tmp->node, &col_conf_list);
3993 <    }
3994 <  }
3995 < }
3996 <    break;
3992 > #ifdef HAVE_LIBCRYPTO
3993 >    if (block_state.file.buf[0])
3994 >    {
3995 >      BIO *file = NULL;
3996 >      RSA *pkey = NULL;
3997  
3998 <  case 157:
3998 >      if ((file = BIO_new_file(block_state.file.buf, "r")) == NULL)
3999 >      {
4000 >        conf_error_report("Ignoring rsa_public_key_file -- file doesn't exist");
4001 >        break;
4002 >      }
4003  
4004 < /* Line 1455 of yacc.c  */
4005 < #line 1108 "ircd_parser.y"
4333 <    {
4334 <  if (conf_parser_ctx.pass == 2)
4335 <  {
4336 <    if (yy_aconf->passwd != NULL)
4337 <      memset(yy_aconf->passwd, 0, strlen(yy_aconf->passwd));
4004 >      if ((pkey = PEM_read_bio_RSA_PUBKEY(file, NULL, 0, NULL)) == NULL)
4005 >        conf_error_report("Ignoring rsa_public_key_file -- Key invalid; check key syntax.");
4006  
4007 <    MyFree(yy_aconf->passwd);
4008 <    DupString(yy_aconf->passwd, yylval.string);
4007 >      conf->rsa_public_key = pkey;
4008 >      BIO_set_close(file, BIO_CLOSE);
4009 >      BIO_free(file);
4010 >    }
4011 > #endif /* HAVE_LIBCRYPTO */
4012    }
4013   }
4014      break;
4015  
4016    case 158:
4017 <
4018 < /* Line 1455 of yacc.c  */
4348 < #line 1120 "ircd_parser.y"
4017 > /* Line 1787 of yacc.c  */
4018 > #line 1087 "conf_parser.y"
4019      {
4020    if (conf_parser_ctx.pass == 2)
4021 <  {
4352 <    if (yylval.number)
4353 <      SetConfEncrypted(yy_aconf);
4354 <    else
4355 <      ClearConfEncrypted(yy_aconf);
4356 <  }
4021 >    strlcpy(block_state.name.buf, yylval.string, sizeof(block_state.name.buf));
4022   }
4023      break;
4024  
4025    case 159:
4026 <
4027 < /* Line 1455 of yacc.c  */
4363 < #line 1131 "ircd_parser.y"
4026 > /* Line 1787 of yacc.c  */
4027 > #line 1093 "conf_parser.y"
4028      {
4365 #ifdef HAVE_LIBCRYPTO
4029    if (conf_parser_ctx.pass == 2)
4030 <  {
4368 <    BIO *file;
4369 <
4370 <    if (yy_aconf->rsa_public_key != NULL)
4371 <    {
4372 <      RSA_free(yy_aconf->rsa_public_key);
4373 <      yy_aconf->rsa_public_key = NULL;
4374 <    }
4375 <
4376 <    if (yy_aconf->rsa_public_key_file != NULL)
4377 <    {
4378 <      MyFree(yy_aconf->rsa_public_key_file);
4379 <      yy_aconf->rsa_public_key_file = NULL;
4380 <    }
4381 <
4382 <    DupString(yy_aconf->rsa_public_key_file, yylval.string);
4383 <    file = BIO_new_file(yylval.string, "r");
4384 <
4385 <    if (file == NULL)
4386 <    {
4387 <      yyerror("Ignoring rsa_public_key_file -- file doesn't exist");
4388 <      break;
4389 <    }
4390 <
4391 <    yy_aconf->rsa_public_key = (RSA *)PEM_read_bio_RSA_PUBKEY(file, NULL, 0, NULL);
4392 <
4393 <    if (yy_aconf->rsa_public_key == NULL)
4394 <    {
4395 <      yyerror("Ignoring rsa_public_key_file -- Key invalid; check key syntax.");
4396 <      break;
4397 <    }
4398 <
4399 <    BIO_set_close(file, BIO_CLOSE);
4400 <    BIO_free(file);
4401 <  }
4402 < #endif /* HAVE_LIBCRYPTO */
4030 >    dlinkAdd(xstrdup(yylval.string), make_dlink_node(), &block_state.mask.list);
4031   }
4032      break;
4033  
4034    case 160:
4035 <
4036 < /* Line 1455 of yacc.c  */
4409 < #line 1173 "ircd_parser.y"
4035 > /* Line 1787 of yacc.c  */
4036 > #line 1099 "conf_parser.y"
4037      {
4038    if (conf_parser_ctx.pass == 2)
4039 <  {
4413 <    MyFree(class_name);
4414 <    DupString(class_name, yylval.string);
4415 <  }
4039 >    strlcpy(block_state.rpass.buf, yylval.string, sizeof(block_state.rpass.buf));
4040   }
4041      break;
4042  
4043    case 161:
4044 <
4045 < /* Line 1455 of yacc.c  */
4422 < #line 1182 "ircd_parser.y"
4044 > /* Line 1787 of yacc.c  */
4045 > #line 1105 "conf_parser.y"
4046      {
4047 <  if (conf_parser_ctx.pass == 2)
4425 <    yy_aconf->modes = 0;
4426 < }
4047 >  if (conf_parser_ctx.pass != 2)
4048      break;
4049  
4050 <  case 165:
4050 >  if (yylval.number)
4051 >    block_state.flags.value |= CONF_FLAGS_ENCRYPTED;
4052 >  else
4053 >    block_state.flags.value &= ~CONF_FLAGS_ENCRYPTED;
4054 > }
4055 >    break;
4056  
4057 < /* Line 1455 of yacc.c  */
4058 < #line 1189 "ircd_parser.y"
4057 >  case 162:
4058 > /* Line 1787 of yacc.c  */
4059 > #line 1116 "conf_parser.y"
4060      {
4061    if (conf_parser_ctx.pass == 2)
4062 <    yy_aconf->modes |= UMODE_BOTS;
4062 >    strlcpy(block_state.file.buf, yylval.string, sizeof(block_state.file.buf));
4063   }
4064      break;
4065  
4066 <  case 166:
4067 <
4068 < /* Line 1455 of yacc.c  */
4442 < #line 1193 "ircd_parser.y"
4066 >  case 163:
4067 > /* Line 1787 of yacc.c  */
4068 > #line 1122 "conf_parser.y"
4069      {
4070    if (conf_parser_ctx.pass == 2)
4071 <    yy_aconf->modes |= UMODE_CCONN;
4071 >    strlcpy(block_state.class.buf, yylval.string, sizeof(block_state.class.buf));
4072   }
4073      break;
4074  
4075 <  case 167:
4076 <
4077 < /* Line 1455 of yacc.c  */
4452 < #line 1197 "ircd_parser.y"
4075 >  case 164:
4076 > /* Line 1787 of yacc.c  */
4077 > #line 1128 "conf_parser.y"
4078      {
4079    if (conf_parser_ctx.pass == 2)
4080 <    yy_aconf->modes |= UMODE_CCONN_FULL;
4080 >    block_state.modes.value = 0;
4081   }
4082      break;
4083  
4084    case 168:
4085 <
4086 < /* Line 1455 of yacc.c  */
4462 < #line 1201 "ircd_parser.y"
4085 > /* Line 1787 of yacc.c  */
4086 > #line 1135 "conf_parser.y"
4087      {
4088    if (conf_parser_ctx.pass == 2)
4089 <    yy_aconf->modes |= UMODE_DEAF;
4089 >    block_state.modes.value |= UMODE_BOTS;
4090   }
4091      break;
4092  
4093    case 169:
4094 <
4095 < /* Line 1455 of yacc.c  */
4472 < #line 1205 "ircd_parser.y"
4094 > /* Line 1787 of yacc.c  */
4095 > #line 1139 "conf_parser.y"
4096      {
4097    if (conf_parser_ctx.pass == 2)
4098 <    yy_aconf->modes |= UMODE_DEBUG;
4098 >    block_state.modes.value |= UMODE_CCONN;
4099   }
4100      break;
4101  
4102    case 170:
4103 <
4104 < /* Line 1455 of yacc.c  */
4482 < #line 1209 "ircd_parser.y"
4103 > /* Line 1787 of yacc.c  */
4104 > #line 1143 "conf_parser.y"
4105      {
4106    if (conf_parser_ctx.pass == 2)
4107 <    yy_aconf->modes |= UMODE_FULL;
4107 >    block_state.modes.value |= UMODE_DEAF;
4108   }
4109      break;
4110  
4111    case 171:
4112 <
4113 < /* Line 1455 of yacc.c  */
4492 < #line 1213 "ircd_parser.y"
4112 > /* Line 1787 of yacc.c  */
4113 > #line 1147 "conf_parser.y"
4114      {
4115    if (conf_parser_ctx.pass == 2)
4116 <    yy_aconf->modes |= UMODE_SKILL;
4116 >    block_state.modes.value |= UMODE_DEBUG;
4117   }
4118      break;
4119  
4120    case 172:
4121 <
4122 < /* Line 1455 of yacc.c  */
4502 < #line 1217 "ircd_parser.y"
4121 > /* Line 1787 of yacc.c  */
4122 > #line 1151 "conf_parser.y"
4123      {
4124    if (conf_parser_ctx.pass == 2)
4125 <    yy_aconf->modes |= UMODE_NCHANGE;
4125 >    block_state.modes.value |= UMODE_FULL;
4126   }
4127      break;
4128  
4129    case 173:
4130 <
4131 < /* Line 1455 of yacc.c  */
4512 < #line 1221 "ircd_parser.y"
4130 > /* Line 1787 of yacc.c  */
4131 > #line 1155 "conf_parser.y"
4132      {
4133    if (conf_parser_ctx.pass == 2)
4134 <    yy_aconf->modes |= UMODE_REJ;
4134 >    block_state.modes.value |= UMODE_HIDDEN;
4135   }
4136      break;
4137  
4138    case 174:
4139 <
4140 < /* Line 1455 of yacc.c  */
4522 < #line 1225 "ircd_parser.y"
4139 > /* Line 1787 of yacc.c  */
4140 > #line 1159 "conf_parser.y"
4141      {
4142    if (conf_parser_ctx.pass == 2)
4143 <    yy_aconf->modes |= UMODE_UNAUTH;
4143 >    block_state.modes.value |= UMODE_SKILL;
4144   }
4145      break;
4146  
4147    case 175:
4148 <
4149 < /* Line 1455 of yacc.c  */
4532 < #line 1229 "ircd_parser.y"
4148 > /* Line 1787 of yacc.c  */
4149 > #line 1163 "conf_parser.y"
4150      {
4151    if (conf_parser_ctx.pass == 2)
4152 <    yy_aconf->modes |= UMODE_SPY;
4152 >    block_state.modes.value |= UMODE_NCHANGE;
4153   }
4154      break;
4155  
4156    case 176:
4157 <
4158 < /* Line 1455 of yacc.c  */
4542 < #line 1233 "ircd_parser.y"
4157 > /* Line 1787 of yacc.c  */
4158 > #line 1167 "conf_parser.y"
4159      {
4160    if (conf_parser_ctx.pass == 2)
4161 <    yy_aconf->modes |= UMODE_EXTERNAL;
4161 >    block_state.modes.value |= UMODE_REJ;
4162   }
4163      break;
4164  
4165    case 177:
4166 <
4167 < /* Line 1455 of yacc.c  */
4552 < #line 1237 "ircd_parser.y"
4166 > /* Line 1787 of yacc.c  */
4167 > #line 1171 "conf_parser.y"
4168      {
4169    if (conf_parser_ctx.pass == 2)
4170 <    yy_aconf->modes |= UMODE_OPERWALL;
4170 >    block_state.modes.value |= UMODE_UNAUTH;
4171   }
4172      break;
4173  
4174    case 178:
4175 <
4176 < /* Line 1455 of yacc.c  */
4562 < #line 1241 "ircd_parser.y"
4175 > /* Line 1787 of yacc.c  */
4176 > #line 1175 "conf_parser.y"
4177      {
4178    if (conf_parser_ctx.pass == 2)
4179 <    yy_aconf->modes |= UMODE_SERVNOTICE;
4179 >    block_state.modes.value |= UMODE_SPY;
4180   }
4181      break;
4182  
4183    case 179:
4184 <
4185 < /* Line 1455 of yacc.c  */
4572 < #line 1245 "ircd_parser.y"
4184 > /* Line 1787 of yacc.c  */
4185 > #line 1179 "conf_parser.y"
4186      {
4187    if (conf_parser_ctx.pass == 2)
4188 <    yy_aconf->modes |= UMODE_INVISIBLE;
4188 >    block_state.modes.value |= UMODE_EXTERNAL;
4189   }
4190      break;
4191  
4192    case 180:
4193 <
4194 < /* Line 1455 of yacc.c  */
4582 < #line 1249 "ircd_parser.y"
4193 > /* Line 1787 of yacc.c  */
4194 > #line 1183 "conf_parser.y"
4195      {
4196    if (conf_parser_ctx.pass == 2)
4197 <    yy_aconf->modes |= UMODE_WALLOP;
4197 >    block_state.modes.value |= UMODE_OPERWALL;
4198   }
4199      break;
4200  
4201    case 181:
4202 <
4203 < /* Line 1455 of yacc.c  */
4592 < #line 1253 "ircd_parser.y"
4202 > /* Line 1787 of yacc.c  */
4203 > #line 1187 "conf_parser.y"
4204      {
4205    if (conf_parser_ctx.pass == 2)
4206 <    yy_aconf->modes |= UMODE_SOFTCALLERID;
4206 >    block_state.modes.value |= UMODE_SERVNOTICE;
4207   }
4208      break;
4209  
4210    case 182:
4211 <
4212 < /* Line 1455 of yacc.c  */
4602 < #line 1257 "ircd_parser.y"
4211 > /* Line 1787 of yacc.c  */
4212 > #line 1191 "conf_parser.y"
4213      {
4214    if (conf_parser_ctx.pass == 2)
4215 <    yy_aconf->modes |= UMODE_CALLERID;
4215 >    block_state.modes.value |= UMODE_INVISIBLE;
4216   }
4217      break;
4218  
4219    case 183:
4220 <
4221 < /* Line 1455 of yacc.c  */
4612 < #line 1261 "ircd_parser.y"
4220 > /* Line 1787 of yacc.c  */
4221 > #line 1195 "conf_parser.y"
4222      {
4223    if (conf_parser_ctx.pass == 2)
4224 <    yy_aconf->modes |= UMODE_LOCOPS;
4224 >    block_state.modes.value |= UMODE_WALLOP;
4225   }
4226      break;
4227  
4228    case 184:
4229 <
4230 < /* Line 1455 of yacc.c  */
4622 < #line 1267 "ircd_parser.y"
4229 > /* Line 1787 of yacc.c  */
4230 > #line 1199 "conf_parser.y"
4231      {
4232    if (conf_parser_ctx.pass == 2)
4233 <  {
4626 <    if (yylval.number)
4627 <      yy_aconf->port |= OPER_FLAG_GLOBAL_KILL;
4628 <    else
4629 <      yy_aconf->port &= ~OPER_FLAG_GLOBAL_KILL;
4630 <  }
4233 >    block_state.modes.value |= UMODE_SOFTCALLERID;
4234   }
4235      break;
4236  
4237    case 185:
4238 <
4239 < /* Line 1455 of yacc.c  */
4637 < #line 1278 "ircd_parser.y"
4238 > /* Line 1787 of yacc.c  */
4239 > #line 1203 "conf_parser.y"
4240      {
4241    if (conf_parser_ctx.pass == 2)
4242 <  {
4641 <    if (yylval.number)
4642 <      yy_aconf->port |= OPER_FLAG_REMOTE;
4643 <    else
4644 <      yy_aconf->port &= ~OPER_FLAG_REMOTE;
4645 <  }
4242 >    block_state.modes.value |= UMODE_CALLERID;
4243   }
4244      break;
4245  
4246    case 186:
4247 <
4248 < /* Line 1455 of yacc.c  */
4652 < #line 1289 "ircd_parser.y"
4247 > /* Line 1787 of yacc.c  */
4248 > #line 1207 "conf_parser.y"
4249      {
4250    if (conf_parser_ctx.pass == 2)
4251 <  {
4656 <    if (yylval.number)
4657 <      yy_aconf->port |= OPER_FLAG_REMOTEBAN;
4658 <    else
4659 <      yy_aconf->port &= ~OPER_FLAG_REMOTEBAN;
4660 <  }
4251 >    block_state.modes.value |= UMODE_LOCOPS;
4252   }
4253      break;
4254  
4255    case 187:
4256 <
4257 < /* Line 1455 of yacc.c  */
4667 < #line 1300 "ircd_parser.y"
4256 > /* Line 1787 of yacc.c  */
4257 > #line 1211 "conf_parser.y"
4258      {
4259    if (conf_parser_ctx.pass == 2)
4260 <  {
4671 <    if (yylval.number)
4672 <      yy_aconf->port |= OPER_FLAG_K;
4673 <    else
4674 <      yy_aconf->port &= ~OPER_FLAG_K;
4675 <  }
4260 >    block_state.modes.value |= UMODE_REGONLY;
4261   }
4262      break;
4263  
4264    case 188:
4265 <
4266 < /* Line 1455 of yacc.c  */
4682 < #line 1311 "ircd_parser.y"
4265 > /* Line 1787 of yacc.c  */
4266 > #line 1215 "conf_parser.y"
4267      {
4268    if (conf_parser_ctx.pass == 2)
4269 <  {
4686 <    if (yylval.number)
4687 <      yy_aconf->port |= OPER_FLAG_X;
4688 <    else
4689 <      yy_aconf->port &= ~OPER_FLAG_X;
4690 <  }
4269 >    block_state.modes.value |= UMODE_FARCONNECT;
4270   }
4271      break;
4272  
4273    case 189:
4274 <
4275 < /* Line 1455 of yacc.c  */
4697 < #line 1322 "ircd_parser.y"
4274 > /* Line 1787 of yacc.c  */
4275 > #line 1221 "conf_parser.y"
4276      {
4277    if (conf_parser_ctx.pass == 2)
4278 <  {
4701 <    if (yylval.number)
4702 <      yy_aconf->port |= OPER_FLAG_UNKLINE;
4703 <    else
4704 <      yy_aconf->port &= ~OPER_FLAG_UNKLINE;
4705 <  }
4278 >    block_state.port.value = 0;
4279   }
4280      break;
4281  
4282 <  case 190:
4283 <
4284 < /* Line 1455 of yacc.c  */
4712 < #line 1333 "ircd_parser.y"
4282 >  case 193:
4283 > /* Line 1787 of yacc.c  */
4284 > #line 1228 "conf_parser.y"
4285      {
4286    if (conf_parser_ctx.pass == 2)
4287 <  {
4716 <    if (yylval.number)
4717 <      yy_aconf->port |= OPER_FLAG_GLINE;
4718 <    else
4719 <      yy_aconf->port &= ~OPER_FLAG_GLINE;
4720 <  }
4287 >    block_state.port.value |= OPER_FLAG_KILL_REMOTE;
4288   }
4289      break;
4290  
4291 <  case 191:
4292 <
4293 < /* Line 1455 of yacc.c  */
4727 < #line 1344 "ircd_parser.y"
4291 >  case 194:
4292 > /* Line 1787 of yacc.c  */
4293 > #line 1232 "conf_parser.y"
4294      {
4295    if (conf_parser_ctx.pass == 2)
4296 <  {
4731 <    if (yylval.number)
4732 <      yy_aconf->port |= OPER_FLAG_N;
4733 <    else
4734 <      yy_aconf->port &= ~OPER_FLAG_N;
4735 <  }
4296 >    block_state.port.value |= OPER_FLAG_KILL;
4297   }
4298      break;
4299  
4300 <  case 192:
4301 <
4302 < /* Line 1455 of yacc.c  */
4742 < #line 1355 "ircd_parser.y"
4300 >  case 195:
4301 > /* Line 1787 of yacc.c  */
4302 > #line 1236 "conf_parser.y"
4303      {
4304    if (conf_parser_ctx.pass == 2)
4305 <  {
4746 <    if (yylval.number)
4747 <      yy_aconf->port |= OPER_FLAG_DIE;
4748 <    else
4749 <      yy_aconf->port &= ~OPER_FLAG_DIE;
4750 <  }
4305 >    block_state.port.value |= OPER_FLAG_CONNECT_REMOTE;
4306   }
4307      break;
4308  
4309 <  case 193:
4310 <
4311 < /* Line 1455 of yacc.c  */
4757 < #line 1366 "ircd_parser.y"
4309 >  case 196:
4310 > /* Line 1787 of yacc.c  */
4311 > #line 1240 "conf_parser.y"
4312      {
4313    if (conf_parser_ctx.pass == 2)
4314 <  {
4761 <    if (yylval.number)
4762 <      yy_aconf->port |= OPER_FLAG_REHASH;
4763 <    else
4764 <      yy_aconf->port &= ~OPER_FLAG_REHASH;
4765 <  }
4314 >    block_state.port.value |= OPER_FLAG_CONNECT;
4315   }
4316      break;
4317  
4318 <  case 194:
4319 <
4320 < /* Line 1455 of yacc.c  */
4772 < #line 1377 "ircd_parser.y"
4318 >  case 197:
4319 > /* Line 1787 of yacc.c  */
4320 > #line 1244 "conf_parser.y"
4321      {
4322    if (conf_parser_ctx.pass == 2)
4323 <  {
4776 <    if (yylval.number)
4777 <      yy_aconf->port |= OPER_FLAG_ADMIN;
4778 <    else
4779 <      yy_aconf->port &= ~OPER_FLAG_ADMIN;
4780 <  }
4323 >    block_state.port.value |= OPER_FLAG_SQUIT_REMOTE;
4324   }
4325      break;
4326  
4327 <  case 195:
4328 <
4329 < /* Line 1455 of yacc.c  */
4787 < #line 1388 "ircd_parser.y"
4327 >  case 198:
4328 > /* Line 1787 of yacc.c  */
4329 > #line 1248 "conf_parser.y"
4330      {
4331    if (conf_parser_ctx.pass == 2)
4332 <  {
4791 <    if (yylval.number)
4792 <      yy_aconf->port |= OPER_FLAG_HIDDEN_ADMIN;
4793 <    else
4794 <      yy_aconf->port &= ~OPER_FLAG_HIDDEN_ADMIN;
4795 <  }
4332 >    block_state.port.value |= OPER_FLAG_SQUIT;
4333   }
4334      break;
4335  
4336 <  case 196:
4337 <
4338 < /* Line 1455 of yacc.c  */
4802 < #line 1399 "ircd_parser.y"
4336 >  case 199:
4337 > /* Line 1787 of yacc.c  */
4338 > #line 1252 "conf_parser.y"
4339      {
4340    if (conf_parser_ctx.pass == 2)
4341 <  {
4806 <    if (yylval.number)
4807 <      yy_aconf->port |= OPER_FLAG_HIDDEN_OPER;
4808 <    else
4809 <      yy_aconf->port &= ~OPER_FLAG_HIDDEN_OPER;
4810 <  }
4341 >    block_state.port.value |= OPER_FLAG_K;
4342   }
4343      break;
4344  
4345 <  case 197:
4346 <
4347 < /* Line 1455 of yacc.c  */
4817 < #line 1410 "ircd_parser.y"
4345 >  case 200:
4346 > /* Line 1787 of yacc.c  */
4347 > #line 1256 "conf_parser.y"
4348      {
4349    if (conf_parser_ctx.pass == 2)
4350 <  {
4821 <    if (yylval.number)
4822 <      yy_aconf->port |= OPER_FLAG_OPERWALL;
4823 <    else
4824 <      yy_aconf->port &= ~OPER_FLAG_OPERWALL;
4825 <  }
4350 >    block_state.port.value |= OPER_FLAG_UNKLINE;
4351   }
4352      break;
4353  
4354 <  case 198:
4355 <
4356 < /* Line 1455 of yacc.c  */
4832 < #line 1421 "ircd_parser.y"
4354 >  case 201:
4355 > /* Line 1787 of yacc.c  */
4356 > #line 1260 "conf_parser.y"
4357      {
4358 +  if (conf_parser_ctx.pass == 2)
4359 +    block_state.port.value |= OPER_FLAG_DLINE;
4360   }
4361      break;
4362  
4363    case 202:
4364 + /* Line 1787 of yacc.c  */
4365 + #line 1264 "conf_parser.y"
4366 +    {
4367 +  if (conf_parser_ctx.pass == 2)
4368 +    block_state.port.value |= OPER_FLAG_UNDLINE;
4369 + }
4370 +    break;
4371  
4372 < /* Line 1455 of yacc.c  */
4373 < #line 1425 "ircd_parser.y"
4374 <    { not_atom = 1; }
4372 >  case 203:
4373 > /* Line 1787 of yacc.c  */
4374 > #line 1268 "conf_parser.y"
4375 >    {
4376 >  if (conf_parser_ctx.pass == 2)
4377 >    block_state.port.value |= OPER_FLAG_X;
4378 > }
4379      break;
4380  
4381    case 204:
4382 + /* Line 1787 of yacc.c  */
4383 + #line 1272 "conf_parser.y"
4384 +    {
4385 +  if (conf_parser_ctx.pass == 2)
4386 +    block_state.port.value |= OPER_FLAG_GLINE;
4387 + }
4388 +    break;
4389  
4390 < /* Line 1455 of yacc.c  */
4391 < #line 1426 "ircd_parser.y"
4392 <    { not_atom = 0; }
4390 >  case 205:
4391 > /* Line 1787 of yacc.c  */
4392 > #line 1276 "conf_parser.y"
4393 >    {
4394 >  if (conf_parser_ctx.pass == 2)
4395 >    block_state.port.value |= OPER_FLAG_DIE;
4396 > }
4397      break;
4398  
4399    case 206:
4400 <
4401 < /* Line 1455 of yacc.c  */
4854 < #line 1429 "ircd_parser.y"
4400 > /* Line 1787 of yacc.c  */
4401 > #line 1280 "conf_parser.y"
4402      {
4403    if (conf_parser_ctx.pass == 2)
4404 <  {
4858 <    if (not_atom)yy_aconf->port &= ~OPER_FLAG_GLOBAL_KILL;
4859 <    else yy_aconf->port |= OPER_FLAG_GLOBAL_KILL;
4860 <  }
4404 >    block_state.port.value |= OPER_FLAG_RESTART;
4405   }
4406      break;
4407  
4408    case 207:
4409 <
4410 < /* Line 1455 of yacc.c  */
4867 < #line 1436 "ircd_parser.y"
4409 > /* Line 1787 of yacc.c  */
4410 > #line 1284 "conf_parser.y"
4411      {
4412    if (conf_parser_ctx.pass == 2)
4413 <  {
4871 <    if (not_atom) yy_aconf->port &= ~OPER_FLAG_REMOTE;
4872 <    else yy_aconf->port |= OPER_FLAG_REMOTE;
4873 <  }
4413 >    block_state.port.value |= OPER_FLAG_REHASH;
4414   }
4415      break;
4416  
4417    case 208:
4418 <
4419 < /* Line 1455 of yacc.c  */
4880 < #line 1443 "ircd_parser.y"
4418 > /* Line 1787 of yacc.c  */
4419 > #line 1288 "conf_parser.y"
4420      {
4421    if (conf_parser_ctx.pass == 2)
4422 <  {
4884 <    if (not_atom) yy_aconf->port &= ~OPER_FLAG_K;
4885 <    else yy_aconf->port |= OPER_FLAG_K;
4886 <  }
4422 >    block_state.port.value |= OPER_FLAG_ADMIN;
4423   }
4424      break;
4425  
4426    case 209:
4427 <
4428 < /* Line 1455 of yacc.c  */
4893 < #line 1450 "ircd_parser.y"
4427 > /* Line 1787 of yacc.c  */
4428 > #line 1292 "conf_parser.y"
4429      {
4430    if (conf_parser_ctx.pass == 2)
4431 <  {
4897 <    if (not_atom) yy_aconf->port &= ~OPER_FLAG_UNKLINE;
4898 <    else yy_aconf->port |= OPER_FLAG_UNKLINE;
4899 <  }
4431 >    block_state.port.value |= OPER_FLAG_OPERWALL;
4432   }
4433      break;
4434  
4435    case 210:
4436 <
4437 < /* Line 1455 of yacc.c  */
4906 < #line 1457 "ircd_parser.y"
4436 > /* Line 1787 of yacc.c  */
4437 > #line 1296 "conf_parser.y"
4438      {
4439    if (conf_parser_ctx.pass == 2)
4440 <  {
4910 <    if (not_atom) yy_aconf->port &= ~OPER_FLAG_X;
4911 <    else yy_aconf->port |= OPER_FLAG_X;
4912 <  }
4440 >    block_state.port.value |= OPER_FLAG_GLOBOPS;
4441   }
4442      break;
4443  
4444    case 211:
4445 <
4446 < /* Line 1455 of yacc.c  */
4919 < #line 1464 "ircd_parser.y"
4445 > /* Line 1787 of yacc.c  */
4446 > #line 1300 "conf_parser.y"
4447      {
4448    if (conf_parser_ctx.pass == 2)
4449 <  {
4923 <    if (not_atom) yy_aconf->port &= ~OPER_FLAG_GLINE;
4924 <    else yy_aconf->port |= OPER_FLAG_GLINE;
4925 <  }
4449 >    block_state.port.value |= OPER_FLAG_WALLOPS;
4450   }
4451      break;
4452  
4453    case 212:
4454 <
4455 < /* Line 1455 of yacc.c  */
4932 < #line 1471 "ircd_parser.y"
4454 > /* Line 1787 of yacc.c  */
4455 > #line 1304 "conf_parser.y"
4456      {
4457    if (conf_parser_ctx.pass == 2)
4458 <  {
4936 <    if (not_atom) yy_aconf->port &= ~OPER_FLAG_DIE;
4937 <    else yy_aconf->port |= OPER_FLAG_DIE;
4938 <  }
4458 >    block_state.port.value |= OPER_FLAG_LOCOPS;
4459   }
4460      break;
4461  
4462    case 213:
4463 <
4464 < /* Line 1455 of yacc.c  */
4945 < #line 1478 "ircd_parser.y"
4463 > /* Line 1787 of yacc.c  */
4464 > #line 1308 "conf_parser.y"
4465      {
4466    if (conf_parser_ctx.pass == 2)
4467 <  {
4949 <    if (not_atom) yy_aconf->port &= ~OPER_FLAG_REHASH;
4950 <    else yy_aconf->port |= OPER_FLAG_REHASH;
4951 <  }
4467 >    block_state.port.value |= OPER_FLAG_REMOTEBAN;
4468   }
4469      break;
4470  
4471    case 214:
4472 <
4473 < /* Line 1455 of yacc.c  */
4958 < #line 1485 "ircd_parser.y"
4472 > /* Line 1787 of yacc.c  */
4473 > #line 1312 "conf_parser.y"
4474      {
4475    if (conf_parser_ctx.pass == 2)
4476 <  {
4962 <    if (not_atom) yy_aconf->port &= ~OPER_FLAG_ADMIN;
4963 <    else yy_aconf->port |= OPER_FLAG_ADMIN;
4964 <  }
4476 >    block_state.port.value |= OPER_FLAG_SET;
4477   }
4478      break;
4479  
4480    case 215:
4481 <
4482 < /* Line 1455 of yacc.c  */
4971 < #line 1492 "ircd_parser.y"
4481 > /* Line 1787 of yacc.c  */
4482 > #line 1316 "conf_parser.y"
4483      {
4484    if (conf_parser_ctx.pass == 2)
4485 <  {
4975 <    if (not_atom) yy_aconf->port &= ~OPER_FLAG_HIDDEN_ADMIN;
4976 <    else yy_aconf->port |= OPER_FLAG_HIDDEN_ADMIN;
4977 <  }
4485 >    block_state.port.value |= OPER_FLAG_MODULE;
4486   }
4487      break;
4488  
4489    case 216:
4490 <
4491 < /* Line 1455 of yacc.c  */
4984 < #line 1499 "ircd_parser.y"
4490 > /* Line 1787 of yacc.c  */
4491 > #line 1326 "conf_parser.y"
4492      {
4493 <  if (conf_parser_ctx.pass == 2)
4987 <  {
4988 <    if (not_atom) yy_aconf->port &= ~OPER_FLAG_N;
4989 <    else yy_aconf->port |= OPER_FLAG_N;
4990 <  }
4991 < }
4493 >  if (conf_parser_ctx.pass != 1)
4494      break;
4495  
4496 <  case 217:
4496 >  reset_block_state();
4497  
4498 < /* Line 1455 of yacc.c  */
4499 < #line 1506 "ircd_parser.y"
4500 <    {
4501 <  if (conf_parser_ctx.pass == 2)
4502 <  {
5001 <    if (not_atom) yy_aconf->port &= ~OPER_FLAG_OPERWALL;
5002 <    else yy_aconf->port |= OPER_FLAG_OPERWALL;
5003 <  }
4498 >  block_state.ping_freq.value = DEFAULT_PINGFREQUENCY;
4499 >  block_state.con_freq.value  = DEFAULT_CONNECTFREQUENCY;
4500 >  block_state.max_total.value = MAXIMUM_LINKS_DEFAULT;
4501 >  block_state.max_sendq.value = DEFAULT_SENDQ;
4502 >  block_state.max_recvq.value = DEFAULT_RECVQ;
4503   }
4504      break;
4505  
4506 <  case 218:
4507 <
4508 < /* Line 1455 of yacc.c  */
5010 < #line 1513 "ircd_parser.y"
4506 >  case 217:
4507 > /* Line 1787 of yacc.c  */
4508 > #line 1338 "conf_parser.y"
4509      {
4510 <  if (conf_parser_ctx.pass == 2)
4511 <  {
4512 <    if (not_atom) yy_aconf->port &= ~OPER_FLAG_OPER_SPY;
5015 <    else yy_aconf->port |= OPER_FLAG_OPER_SPY;
5016 <  }
5017 < }
4510 >  struct ClassItem *class = NULL;
4511 >
4512 >  if (conf_parser_ctx.pass != 1)
4513      break;
4514  
4515 <  case 219:
4515 >  if (!block_state.class.buf[0])
4516 >    break;
4517  
4518 < /* Line 1455 of yacc.c  */
4519 < #line 1520 "ircd_parser.y"
4520 <    {
4521 <  if (conf_parser_ctx.pass == 2)
4518 >  if (!(class = class_find(block_state.class.buf, 0)))
4519 >    class = class_make();
4520 >
4521 >  class->active = 1;
4522 >  MyFree(class->name);
4523 >  class->name = xstrdup(block_state.class.buf);
4524 >  class->ping_freq = block_state.ping_freq.value;
4525 >  class->max_perip = block_state.max_perip.value;
4526 >  class->con_freq = block_state.con_freq.value;
4527 >  class->max_total = block_state.max_total.value;
4528 >  class->max_global = block_state.max_global.value;
4529 >  class->max_local = block_state.max_local.value;
4530 >  class->max_ident = block_state.max_ident.value;
4531 >  class->max_sendq = block_state.max_sendq.value;
4532 >  class->max_recvq = block_state.max_recvq.value;
4533 >
4534 >  if (block_state.min_idle.value > block_state.max_idle.value)
4535    {
4536 <    if (not_atom) yy_aconf->port &= ~OPER_FLAG_HIDDEN_OPER;
4537 <    else yy_aconf->port |= OPER_FLAG_HIDDEN_OPER;
4536 >    block_state.min_idle.value = 0;
4537 >    block_state.max_idle.value = 0;
4538 >    block_state.flags.value &= ~CLASS_FLAGS_FAKE_IDLE;
4539    }
4540 +
4541 +  class->flags = block_state.flags.value;
4542 +  class->min_idle = block_state.min_idle.value;
4543 +  class->max_idle = block_state.max_idle.value;
4544 +
4545 +  if (class->number_per_cidr && block_state.number_per_cidr.value)
4546 +    if ((class->cidr_bitlen_ipv4 && block_state.cidr_bitlen_ipv4.value) ||
4547 +        (class->cidr_bitlen_ipv6 && block_state.cidr_bitlen_ipv6.value))
4548 +      if ((class->cidr_bitlen_ipv4 != block_state.cidr_bitlen_ipv4.value) ||
4549 +          (class->cidr_bitlen_ipv6 != block_state.cidr_bitlen_ipv6.value))
4550 +        rebuild_cidr_list(class);
4551 +
4552 +  class->cidr_bitlen_ipv4 = block_state.cidr_bitlen_ipv4.value;
4553 +  class->cidr_bitlen_ipv6 = block_state.cidr_bitlen_ipv6.value;
4554 +  class->number_per_cidr = block_state.number_per_cidr.value;
4555   }
4556      break;
4557  
4558 <  case 220:
4559 <
4560 < /* Line 1455 of yacc.c  */
5036 < #line 1527 "ircd_parser.y"
4558 >  case 237:
4559 > /* Line 1787 of yacc.c  */
4560 > #line 1404 "conf_parser.y"
4561      {
4562 <  if (conf_parser_ctx.pass == 2)
4563 <  {
5040 <    if (not_atom) yy_aconf->port &= ~OPER_FLAG_REMOTEBAN;
5041 <    else yy_aconf->port |= OPER_FLAG_REMOTEBAN;
5042 <  }
4562 >  if (conf_parser_ctx.pass == 1)
4563 >    strlcpy(block_state.class.buf, yylval.string, sizeof(block_state.class.buf));
4564   }
4565      break;
4566  
4567 <  case 221:
4568 <
4569 < /* Line 1455 of yacc.c  */
5049 < #line 1534 "ircd_parser.y"
4567 >  case 238:
4568 > /* Line 1787 of yacc.c  */
4569 > #line 1410 "conf_parser.y"
4570      {
4571 <  if (conf_parser_ctx.pass == 2)
4572 <  {
5053 <    if (not_atom) ClearConfEncrypted(yy_aconf);
5054 <    else SetConfEncrypted(yy_aconf);
5055 <  }
4571 >  if (conf_parser_ctx.pass == 1)
4572 >    block_state.ping_freq.value = (yyvsp[(3) - (4)].number);
4573   }
4574      break;
4575  
4576 <  case 222:
4577 <
4578 < /* Line 1455 of yacc.c  */
5062 < #line 1547 "ircd_parser.y"
4576 >  case 239:
4577 > /* Line 1787 of yacc.c  */
4578 > #line 1416 "conf_parser.y"
4579      {
4580    if (conf_parser_ctx.pass == 1)
4581 <  {
5066 <    yy_conf = make_conf_item(CLASS_TYPE);
5067 <    yy_class = map_to_conf(yy_conf);
5068 <  }
4581 >    block_state.max_perip.value = (yyvsp[(3) - (4)].number);
4582   }
4583      break;
4584  
4585 <  case 223:
4586 <
4587 < /* Line 1455 of yacc.c  */
5075 < #line 1554 "ircd_parser.y"
4585 >  case 240:
4586 > /* Line 1787 of yacc.c  */
4587 > #line 1422 "conf_parser.y"
4588      {
4589    if (conf_parser_ctx.pass == 1)
4590 <  {
4591 <    struct ConfItem *cconf = NULL;
4592 <    struct ClassItem *class = NULL;
4590 >    block_state.con_freq.value = (yyvsp[(3) - (4)].number);
4591 > }
4592 >    break;
4593  
4594 <    if (yy_class_name == NULL)
4595 <      delete_conf_item(yy_conf);
4596 <    else
4594 >  case 241:
4595 > /* Line 1787 of yacc.c  */
4596 > #line 1428 "conf_parser.y"
4597      {
4598 <      cconf = find_exact_name_conf(CLASS_TYPE, yy_class_name, NULL, NULL);
4599 <
5088 <      if (cconf != NULL)                /* The class existed already */
5089 <      {
5090 <        int user_count = 0;
5091 <
5092 <        rebuild_cidr_class(cconf, yy_class);
5093 <
5094 <        class = map_to_conf(cconf);
5095 <
5096 <        user_count = class->curr_user_count;
5097 <        memcpy(class, yy_class, sizeof(*class));
5098 <        class->curr_user_count = user_count;
5099 <        class->active = 1;
5100 <
5101 <        delete_conf_item(yy_conf);
5102 <
5103 <        MyFree(cconf->name);            /* Allows case change of class name */
5104 <        cconf->name = yy_class_name;
5105 <      }
5106 <      else      /* Brand new class */
5107 <      {
5108 <        MyFree(yy_conf->name);          /* just in case it was allocated */
5109 <        yy_conf->name = yy_class_name;
5110 <        yy_class->active = 1;
5111 <      }
5112 <    }
5113 <
5114 <    yy_class_name = NULL;
5115 <  }
4598 >  if (conf_parser_ctx.pass == 1)
4599 >    block_state.max_total.value = (yyvsp[(3) - (4)].number);
4600   }
4601      break;
4602  
4603    case 242:
4604 <
4605 < /* Line 1455 of yacc.c  */
5122 < #line 1614 "ircd_parser.y"
4604 > /* Line 1787 of yacc.c  */
4605 > #line 1434 "conf_parser.y"
4606      {
4607    if (conf_parser_ctx.pass == 1)
4608 <  {
5126 <    MyFree(yy_class_name);
5127 <    DupString(yy_class_name, yylval.string);
5128 <  }
4608 >    block_state.max_global.value = (yyvsp[(3) - (4)].number);
4609   }
4610      break;
4611  
4612    case 243:
4613 <
4614 < /* Line 1455 of yacc.c  */
5135 < #line 1623 "ircd_parser.y"
4613 > /* Line 1787 of yacc.c  */
4614 > #line 1440 "conf_parser.y"
4615      {
4616    if (conf_parser_ctx.pass == 1)
4617 <  {
5139 <    MyFree(yy_class_name);
5140 <    DupString(yy_class_name, yylval.string);
5141 <  }
4617 >    block_state.max_local.value = (yyvsp[(3) - (4)].number);
4618   }
4619      break;
4620  
4621    case 244:
4622 <
4623 < /* Line 1455 of yacc.c  */
5148 < #line 1632 "ircd_parser.y"
4622 > /* Line 1787 of yacc.c  */
4623 > #line 1446 "conf_parser.y"
4624      {
4625    if (conf_parser_ctx.pass == 1)
4626 <    PingFreq(yy_class) = (yyvsp[(3) - (4)].number);
4626 >    block_state.max_ident.value = (yyvsp[(3) - (4)].number);
4627   }
4628      break;
4629  
4630    case 245:
4631 <
4632 < /* Line 1455 of yacc.c  */
5158 < #line 1638 "ircd_parser.y"
4631 > /* Line 1787 of yacc.c  */
4632 > #line 1452 "conf_parser.y"
4633      {
4634    if (conf_parser_ctx.pass == 1)
4635 <    PingWarning(yy_class) = (yyvsp[(3) - (4)].number);
4635 >    block_state.max_sendq.value = (yyvsp[(3) - (4)].number);
4636   }
4637      break;
4638  
4639    case 246:
4640 <
4641 < /* Line 1455 of yacc.c  */
5168 < #line 1644 "ircd_parser.y"
4640 > /* Line 1787 of yacc.c  */
4641 > #line 1458 "conf_parser.y"
4642      {
4643    if (conf_parser_ctx.pass == 1)
4644 <    MaxPerIp(yy_class) = (yyvsp[(3) - (4)].number);
4644 >    if ((yyvsp[(3) - (4)].number) >= CLIENT_FLOOD_MIN && (yyvsp[(3) - (4)].number) <= CLIENT_FLOOD_MAX)
4645 >      block_state.max_recvq.value = (yyvsp[(3) - (4)].number);
4646   }
4647      break;
4648  
4649    case 247:
4650 <
4651 < /* Line 1455 of yacc.c  */
5178 < #line 1650 "ircd_parser.y"
4650 > /* Line 1787 of yacc.c  */
4651 > #line 1465 "conf_parser.y"
4652      {
4653    if (conf_parser_ctx.pass == 1)
4654 <    ConFreq(yy_class) = (yyvsp[(3) - (4)].number);
4654 >    block_state.cidr_bitlen_ipv4.value = (yyvsp[(3) - (4)].number) > 32 ? 32 : (yyvsp[(3) - (4)].number);
4655   }
4656      break;
4657  
4658    case 248:
4659 <
4660 < /* Line 1455 of yacc.c  */
5188 < #line 1656 "ircd_parser.y"
4659 > /* Line 1787 of yacc.c  */
4660 > #line 1471 "conf_parser.y"
4661      {
4662    if (conf_parser_ctx.pass == 1)
4663 <    MaxTotal(yy_class) = (yyvsp[(3) - (4)].number);
4663 >    block_state.cidr_bitlen_ipv6.value = (yyvsp[(3) - (4)].number) > 128 ? 128 : (yyvsp[(3) - (4)].number);
4664   }
4665      break;
4666  
4667    case 249:
4668 <
4669 < /* Line 1455 of yacc.c  */
5198 < #line 1662 "ircd_parser.y"
4668 > /* Line 1787 of yacc.c  */
4669 > #line 1477 "conf_parser.y"
4670      {
4671    if (conf_parser_ctx.pass == 1)
4672 <    MaxGlobal(yy_class) = (yyvsp[(3) - (4)].number);
4672 >    block_state.number_per_cidr.value = (yyvsp[(3) - (4)].number);
4673   }
4674      break;
4675  
4676    case 250:
4677 <
4678 < /* Line 1455 of yacc.c  */
5208 < #line 1668 "ircd_parser.y"
4677 > /* Line 1787 of yacc.c  */
4678 > #line 1483 "conf_parser.y"
4679      {
4680 <  if (conf_parser_ctx.pass == 1)
5211 <    MaxLocal(yy_class) = (yyvsp[(3) - (4)].number);
5212 < }
4680 >  if (conf_parser_ctx.pass != 1)
4681      break;
4682  
4683 <  case 251:
4684 <
5217 < /* Line 1455 of yacc.c  */
5218 < #line 1674 "ircd_parser.y"
5219 <    {
5220 <  if (conf_parser_ctx.pass == 1)
5221 <    MaxIdent(yy_class) = (yyvsp[(3) - (4)].number);
4683 >  block_state.min_idle.value = (yyvsp[(3) - (4)].number);
4684 >  block_state.flags.value |= CLASS_FLAGS_FAKE_IDLE;
4685   }
4686      break;
4687  
4688 <  case 252:
4689 <
4690 < /* Line 1455 of yacc.c  */
5228 < #line 1680 "ircd_parser.y"
4688 >  case 251:
4689 > /* Line 1787 of yacc.c  */
4690 > #line 1492 "conf_parser.y"
4691      {
4692 <  if (conf_parser_ctx.pass == 1)
5231 <    MaxSendq(yy_class) = (yyvsp[(3) - (4)].number);
5232 < }
4692 >  if (conf_parser_ctx.pass != 1)
4693      break;
4694  
4695 <  case 253:
4696 <
5237 < /* Line 1455 of yacc.c  */
5238 < #line 1686 "ircd_parser.y"
5239 <    {
5240 <  if (conf_parser_ctx.pass == 1)
5241 <    CidrBitlenIPV4(yy_class) = (yyvsp[(3) - (4)].number);
4695 >  block_state.max_idle.value = (yyvsp[(3) - (4)].number);
4696 >  block_state.flags.value |= CLASS_FLAGS_FAKE_IDLE;
4697   }
4698      break;
4699  
4700 <  case 254:
4701 <
4702 < /* Line 1455 of yacc.c  */
5248 < #line 1692 "ircd_parser.y"
4700 >  case 252:
4701 > /* Line 1787 of yacc.c  */
4702 > #line 1501 "conf_parser.y"
4703      {
4704    if (conf_parser_ctx.pass == 1)
4705 <    CidrBitlenIPV6(yy_class) = (yyvsp[(3) - (4)].number);
4705 >    block_state.flags.value &= CLASS_FLAGS_FAKE_IDLE;
4706   }
4707      break;
4708  
4709 <  case 255:
4710 <
4711 < /* Line 1455 of yacc.c  */
5258 < #line 1698 "ircd_parser.y"
4709 >  case 256:
4710 > /* Line 1787 of yacc.c  */
4711 > #line 1508 "conf_parser.y"
4712      {
4713    if (conf_parser_ctx.pass == 1)
4714 <    NumberPerCidr(yy_class) = (yyvsp[(3) - (4)].number);
4714 >    block_state.flags.value |= CLASS_FLAGS_RANDOM_IDLE;
4715   }
4716      break;
4717  
4718 <  case 256:
4719 <
4720 < /* Line 1455 of yacc.c  */
5268 < #line 1707 "ircd_parser.y"
4718 >  case 257:
4719 > /* Line 1787 of yacc.c  */
4720 > #line 1512 "conf_parser.y"
4721      {
4722 <  if (conf_parser_ctx.pass == 2)
4723 <  {
5272 <    listener_address = NULL;
5273 <    listener_flags = 0;
5274 <  }
4722 >  if (conf_parser_ctx.pass == 1)
4723 >    block_state.flags.value |= CLASS_FLAGS_HIDE_IDLE_FROM_OPERS;
4724   }
4725      break;
4726  
4727 <  case 257:
4728 <
4729 < /* Line 1455 of yacc.c  */
5281 < #line 1714 "ircd_parser.y"
4727 >  case 258:
4728 > /* Line 1787 of yacc.c  */
4729 > #line 1522 "conf_parser.y"
4730      {
4731    if (conf_parser_ctx.pass == 2)
4732 <  {
5285 <    MyFree(listener_address);
5286 <    listener_address = NULL;
5287 <  }
4732 >    reset_block_state();
4733   }
4734      break;
4735  
4736 <  case 258:
4737 <
4738 < /* Line 1455 of yacc.c  */
5294 < #line 1723 "ircd_parser.y"
4736 >  case 260:
4737 > /* Line 1787 of yacc.c  */
4738 > #line 1528 "conf_parser.y"
4739      {
4740 <  listener_flags = 0;
4740 >  block_state.flags.value = 0;
4741   }
4742      break;
4743  
4744 <  case 262:
4745 <
4746 < /* Line 1455 of yacc.c  */
5303 < #line 1729 "ircd_parser.y"
4744 >  case 264:
4745 > /* Line 1787 of yacc.c  */
4746 > #line 1534 "conf_parser.y"
4747      {
4748    if (conf_parser_ctx.pass == 2)
4749 <    listener_flags |= LISTENER_SSL;
4749 >    block_state.flags.value |= LISTENER_SSL;
4750   }
4751      break;
4752  
4753 <  case 263:
4754 <
4755 < /* Line 1455 of yacc.c  */
5313 < #line 1733 "ircd_parser.y"
4753 >  case 265:
4754 > /* Line 1787 of yacc.c  */
4755 > #line 1538 "conf_parser.y"
4756      {
4757    if (conf_parser_ctx.pass == 2)
4758 <    listener_flags |= LISTENER_HIDDEN;
4758 >    block_state.flags.value |= LISTENER_HIDDEN;
4759   }
4760      break;
4761  
4762 <  case 264:
4763 <
4764 < /* Line 1455 of yacc.c  */
5323 < #line 1737 "ircd_parser.y"
4762 >  case 266:
4763 > /* Line 1787 of yacc.c  */
4764 > #line 1542 "conf_parser.y"
4765      {
4766    if (conf_parser_ctx.pass == 2)
4767 <    listener_flags |= LISTENER_SERVER;
4767 >   block_state.flags.value |= LISTENER_SERVER;
4768   }
4769      break;
4770  
4771 <  case 272:
4772 <
4773 < /* Line 1455 of yacc.c  */
4774 < #line 1747 "ircd_parser.y"
5334 <    { listener_flags = 0; }
4771 >  case 274:
4772 > /* Line 1787 of yacc.c  */
4773 > #line 1550 "conf_parser.y"
4774 >    { block_state.flags.value = 0; }
4775      break;
4776  
4777 <  case 276:
4778 <
4779 < /* Line 1455 of yacc.c  */
5340 < #line 1752 "ircd_parser.y"
4777 >  case 278:
4778 > /* Line 1787 of yacc.c  */
4779 > #line 1555 "conf_parser.y"
4780      {
4781    if (conf_parser_ctx.pass == 2)
4782    {
4783 <    if ((listener_flags & LISTENER_SSL))
4783 >    if (block_state.flags.value & LISTENER_SSL)
4784   #ifdef HAVE_LIBCRYPTO
4785        if (!ServerInfo.server_ctx)
4786   #endif
4787        {
4788 <        yyerror("SSL not available - port closed");
4788 >        conf_error_report("SSL not available - port closed");
4789          break;
4790        }
4791 <    add_listener((yyvsp[(1) - (1)].number), listener_address, listener_flags);
4791 >    add_listener((yyvsp[(1) - (1)].number), block_state.addr.buf, block_state.flags.value);
4792    }
4793   }
4794      break;
4795  
4796 <  case 277:
4797 <
4798 < /* Line 1455 of yacc.c  */
5360 < #line 1766 "ircd_parser.y"
4796 >  case 279:
4797 > /* Line 1787 of yacc.c  */
4798 > #line 1569 "conf_parser.y"
4799      {
4800    if (conf_parser_ctx.pass == 2)
4801    {
4802      int i;
4803  
4804 <    if ((listener_flags & LISTENER_SSL))
4804 >    if (block_state.flags.value & LISTENER_SSL)
4805   #ifdef HAVE_LIBCRYPTO
4806        if (!ServerInfo.server_ctx)
4807   #endif
4808        {
4809 <        yyerror("SSL not available - port closed");
4809 >        conf_error_report("SSL not available - port closed");
4810          break;
4811        }
4812  
4813      for (i = (yyvsp[(1) - (3)].number); i <= (yyvsp[(3) - (3)].number); ++i)
4814 <      add_listener(i, listener_address, listener_flags);
4814 >      add_listener(i, block_state.addr.buf, block_state.flags.value);
4815    }
4816   }
4817      break;
4818  
4819 <  case 278:
4820 <
4821 < /* Line 1455 of yacc.c  */
5384 < #line 1786 "ircd_parser.y"
4819 >  case 280:
4820 > /* Line 1787 of yacc.c  */
4821 > #line 1589 "conf_parser.y"
4822      {
4823    if (conf_parser_ctx.pass == 2)
4824 <  {
5388 <    MyFree(listener_address);
5389 <    DupString(listener_address, yylval.string);
5390 <  }
4824 >    strlcpy(block_state.addr.buf, yylval.string, sizeof(block_state.addr.buf));
4825   }
4826      break;
4827  
4828 <  case 279:
4829 <
4830 < /* Line 1455 of yacc.c  */
5397 < #line 1795 "ircd_parser.y"
4828 >  case 281:
4829 > /* Line 1787 of yacc.c  */
4830 > #line 1595 "conf_parser.y"
4831      {
4832    if (conf_parser_ctx.pass == 2)
4833 <  {
5401 <    MyFree(listener_address);
5402 <    DupString(listener_address, yylval.string);
5403 <  }
4833 >    strlcpy(block_state.addr.buf, yylval.string, sizeof(block_state.addr.buf));
4834   }
4835      break;
4836  
4837 <  case 280:
4838 <
4839 < /* Line 1455 of yacc.c  */
5410 < #line 1807 "ircd_parser.y"
4837 >  case 282:
4838 > /* Line 1787 of yacc.c  */
4839 > #line 1604 "conf_parser.y"
4840      {
4841    if (conf_parser_ctx.pass == 2)
4842 <  {
5414 <    yy_conf = make_conf_item(CLIENT_TYPE);
5415 <    yy_aconf = map_to_conf(yy_conf);
5416 <  }
5417 <  else
5418 <  {
5419 <    MyFree(class_name);
5420 <    class_name = NULL;
5421 <  }
4842 >    reset_block_state();
4843   }
4844      break;
4845  
4846 <  case 281:
4847 <
4848 < /* Line 1455 of yacc.c  */
5428 < #line 1819 "ircd_parser.y"
5429 <    {
5430 <  if (conf_parser_ctx.pass == 2)
5431 <  {
5432 <    struct CollectItem *yy_tmp = NULL;
5433 <    dlink_node *ptr = NULL, *next_ptr = NULL;
5434 <
5435 <    if (yy_aconf->user && yy_aconf->host)
5436 <    {
5437 <      conf_add_class_to_conf(yy_conf, class_name);
5438 <      add_conf_by_address(CONF_CLIENT, yy_aconf);
5439 <    }
5440 <    else
5441 <      delete_conf_item(yy_conf);
5442 <
5443 <    /* copy over settings from first struct */
5444 <    DLINK_FOREACH_SAFE(ptr, next_ptr, col_conf_list.head)
4846 >  case 283:
4847 > /* Line 1787 of yacc.c  */
4848 > #line 1608 "conf_parser.y"
4849      {
4850 <      struct AccessItem *new_aconf;
5447 <      struct ConfItem *new_conf;
5448 <
5449 <      new_conf = make_conf_item(CLIENT_TYPE);
5450 <      new_aconf = map_to_conf(new_conf);
5451 <
5452 <      yy_tmp = ptr->data;
5453 <
5454 <      assert(yy_tmp->user && yy_tmp->host);
5455 <
5456 <      if (yy_aconf->passwd != NULL)
5457 <        DupString(new_aconf->passwd, yy_aconf->passwd);
5458 <      if (yy_conf->name != NULL)
5459 <        DupString(new_conf->name, yy_conf->name);
5460 <      if (yy_aconf->passwd != NULL)
5461 <        DupString(new_aconf->passwd, yy_aconf->passwd);
5462 <
5463 <      new_aconf->flags = yy_aconf->flags;
5464 <      new_aconf->port  = yy_aconf->port;
5465 <
5466 <      DupString(new_aconf->user, yy_tmp->user);
5467 <      collapse(new_aconf->user);
5468 <
5469 <      DupString(new_aconf->host, yy_tmp->host);
5470 <      collapse(new_aconf->host);
5471 <
5472 <      conf_add_class_to_conf(new_conf, class_name);
5473 <      add_conf_by_address(CONF_CLIENT, new_aconf);
5474 <      dlinkDelete(&yy_tmp->node, &col_conf_list);
5475 <      free_collect_item(yy_tmp);
5476 <    }
4850 >  dlink_node *ptr = NULL;
4851  
4852 <    MyFree(class_name);
5479 <    class_name = NULL;
5480 <    yy_conf = NULL;
5481 <    yy_aconf = NULL;
5482 <  }
5483 < }
4852 >  if (conf_parser_ctx.pass != 2)
4853      break;
4854  
4855 <  case 301:
5487 <
5488 < /* Line 1455 of yacc.c  */
5489 < #line 1884 "ircd_parser.y"
5490 <    {
5491 <  if (conf_parser_ctx.pass == 2)
4855 >  DLINK_FOREACH(ptr, block_state.mask.list.head)
4856    {
4857 <    struct CollectItem *yy_tmp = NULL;
4857 >    struct MaskItem *conf = NULL;
4858      struct split_nuh_item nuh;
4859  
4860 <    nuh.nuhmask  = yylval.string;
4860 >    nuh.nuhmask  = ptr->data;
4861      nuh.nickptr  = NULL;
4862 <    nuh.userptr  = userbuf;
4863 <    nuh.hostptr  = hostbuf;
5500 <
4862 >    nuh.userptr  = block_state.user.buf;
4863 >    nuh.hostptr  = block_state.host.buf;
4864      nuh.nicksize = 0;
4865 <    nuh.usersize = sizeof(userbuf);
4866 <    nuh.hostsize = sizeof(hostbuf);
5504 <
4865 >    nuh.usersize = sizeof(block_state.user.buf);
4866 >    nuh.hostsize = sizeof(block_state.host.buf);
4867      split_nuh(&nuh);
4868  
4869 <    if (yy_aconf->user == NULL)
4870 <    {
4871 <      DupString(yy_aconf->user, userbuf);
5510 <      DupString(yy_aconf->host, hostbuf);
5511 <    }
5512 <    else
5513 <    {
5514 <      yy_tmp = MyMalloc(sizeof(struct CollectItem));
4869 >    conf        = conf_make(CONF_CLIENT);
4870 >    conf->user  = xstrdup(block_state.user.buf);
4871 >    conf->host  = xstrdup(block_state.host.buf);
4872  
4873 <      DupString(yy_tmp->user, userbuf);
4874 <      DupString(yy_tmp->host, hostbuf);
4873 >    if (block_state.rpass.buf[0])
4874 >      conf->passwd = xstrdup(block_state.rpass.buf);
4875 >    if (block_state.name.buf[0])
4876 >      conf->name = xstrdup(block_state.name.buf);
4877  
4878 <      dlinkAdd(yy_tmp, &yy_tmp->node, &col_conf_list);
4879 <    }
4878 >    conf->flags = block_state.flags.value;
4879 >    conf->port  = block_state.port.value;
4880 >
4881 >    conf_add_class_to_conf(conf, block_state.class.buf);
4882 >    add_conf_by_address(CONF_CLIENT, conf);
4883    }
4884   }
4885      break;
4886  
4887 <  case 302:
4888 <
4889 < /* Line 1455 of yacc.c  */
5528 < #line 1921 "ircd_parser.y"
4887 >  case 295:
4888 > /* Line 1787 of yacc.c  */
4889 > #line 1651 "conf_parser.y"
4890      {
4891    if (conf_parser_ctx.pass == 2)
4892 <  {
5532 <    /* be paranoid */
5533 <    if (yy_aconf->passwd != NULL)
5534 <      memset(yy_aconf->passwd, 0, strlen(yy_aconf->passwd));
5535 <
5536 <    MyFree(yy_aconf->passwd);
5537 <    DupString(yy_aconf->passwd, yylval.string);
5538 <  }
4892 >    dlinkAdd(xstrdup(yylval.string), make_dlink_node(), &block_state.mask.list);
4893   }
4894      break;
4895  
4896 <  case 303:
4897 <
4898 < /* Line 1455 of yacc.c  */
5545 < #line 1934 "ircd_parser.y"
4896 >  case 296:
4897 > /* Line 1787 of yacc.c  */
4898 > #line 1657 "conf_parser.y"
4899      {
4900    if (conf_parser_ctx.pass == 2)
4901 <  {
5549 <    if (yylval.number)
5550 <      yy_aconf->flags |= CONF_FLAGS_SPOOF_NOTICE;
5551 <    else
5552 <      yy_aconf->flags &= ~CONF_FLAGS_SPOOF_NOTICE;
5553 <  }
4901 >    strlcpy(block_state.rpass.buf, yylval.string, sizeof(block_state.rpass.buf));
4902   }
4903      break;
4904  
4905 <  case 304:
4906 <
4907 < /* Line 1455 of yacc.c  */
5560 < #line 1945 "ircd_parser.y"
4905 >  case 297:
4906 > /* Line 1787 of yacc.c  */
4907 > #line 1663 "conf_parser.y"
4908      {
4909    if (conf_parser_ctx.pass == 2)
4910 <  {
5564 <    MyFree(class_name);
5565 <    DupString(class_name, yylval.string);
5566 <  }
4910 >    strlcpy(block_state.class.buf, yylval.string, sizeof(block_state.class.buf));
4911   }
4912      break;
4913  
4914 <  case 305:
4915 <
4916 < /* Line 1455 of yacc.c  */
5573 < #line 1954 "ircd_parser.y"
4914 >  case 298:
4915 > /* Line 1787 of yacc.c  */
4916 > #line 1669 "conf_parser.y"
4917      {
4918    if (conf_parser_ctx.pass == 2)
4919    {
4920      if (yylval.number)
4921 <      SetConfEncrypted(yy_aconf);
4921 >      block_state.flags.value |= CONF_FLAGS_ENCRYPTED;
4922      else
4923 <      ClearConfEncrypted(yy_aconf);
4923 >      block_state.flags.value &= ~CONF_FLAGS_ENCRYPTED;
4924    }
4925   }
4926      break;
4927  
4928 <  case 306:
4929 <
4930 < /* Line 1455 of yacc.c  */
5588 < #line 1965 "ircd_parser.y"
4928 >  case 299:
4929 > /* Line 1787 of yacc.c  */
4930 > #line 1680 "conf_parser.y"
4931      {
4932 +  if (conf_parser_ctx.pass == 2)
4933 +    block_state.flags.value &= (CONF_FLAGS_ENCRYPTED | CONF_FLAGS_SPOOF_IP);
4934   }
4935      break;
4936  
4937 <  case 310:
4938 <
4939 < /* Line 1455 of yacc.c  */
5596 < #line 1969 "ircd_parser.y"
5597 <    { not_atom = 1; }
5598 <    break;
5599 <
5600 <  case 312:
5601 <
5602 < /* Line 1455 of yacc.c  */
5603 < #line 1970 "ircd_parser.y"
5604 <    { not_atom = 0; }
5605 <    break;
5606 <
5607 <  case 314:
5608 <
5609 < /* Line 1455 of yacc.c  */
5610 < #line 1973 "ircd_parser.y"
4937 >  case 303:
4938 > /* Line 1787 of yacc.c  */
4939 > #line 1687 "conf_parser.y"
4940      {
4941    if (conf_parser_ctx.pass == 2)
4942 <  {
5614 <    if (not_atom) yy_aconf->flags &= ~CONF_FLAGS_SPOOF_NOTICE;
5615 <    else yy_aconf->flags |= CONF_FLAGS_SPOOF_NOTICE;
5616 <  }
5617 <
4942 >    block_state.flags.value |= CONF_FLAGS_SPOOF_NOTICE;
4943   }
4944      break;
4945  
4946 <  case 315:
4947 <
4948 < /* Line 1455 of yacc.c  */
5624 < #line 1981 "ircd_parser.y"
4946 >  case 304:
4947 > /* Line 1787 of yacc.c  */
4948 > #line 1691 "conf_parser.y"
4949      {
4950    if (conf_parser_ctx.pass == 2)
4951 <  {
5628 <    if (not_atom) yy_aconf->flags &= ~CONF_FLAGS_NOLIMIT;
5629 <    else yy_aconf->flags |= CONF_FLAGS_NOLIMIT;
5630 <  }
4951 >    block_state.flags.value |= CONF_FLAGS_NOLIMIT;
4952   }
4953      break;
4954  
4955 <  case 316:
4956 <
4957 < /* Line 1455 of yacc.c  */
5637 < #line 1988 "ircd_parser.y"
4955 >  case 305:
4956 > /* Line 1787 of yacc.c  */
4957 > #line 1695 "conf_parser.y"
4958      {
4959    if (conf_parser_ctx.pass == 2)
4960 <  {
5641 <    if (not_atom) yy_aconf->flags &= ~CONF_FLAGS_EXEMPTKLINE;
5642 <    else yy_aconf->flags |= CONF_FLAGS_EXEMPTKLINE;
5643 <  }
4960 >    block_state.flags.value |= CONF_FLAGS_EXEMPTKLINE;
4961   }
4962      break;
4963  
4964 <  case 317:
4965 <
4966 < /* Line 1455 of yacc.c  */
5650 < #line 1995 "ircd_parser.y"
4964 >  case 306:
4965 > /* Line 1787 of yacc.c  */
4966 > #line 1699 "conf_parser.y"
4967      {
4968    if (conf_parser_ctx.pass == 2)
4969 <  {
5654 <    if (not_atom) yy_aconf->flags &= ~CONF_FLAGS_NEED_IDENTD;
5655 <    else yy_aconf->flags |= CONF_FLAGS_NEED_IDENTD;
5656 <  }
4969 >    block_state.flags.value |= CONF_FLAGS_NEED_IDENTD;
4970   }
4971      break;
4972  
4973 <  case 318:
4974 <
4975 < /* Line 1455 of yacc.c  */
5663 < #line 2002 "ircd_parser.y"
4973 >  case 307:
4974 > /* Line 1787 of yacc.c  */
4975 > #line 1703 "conf_parser.y"
4976      {
4977    if (conf_parser_ctx.pass == 2)
4978 <  {
5667 <    if (not_atom) yy_aconf->flags &= ~CONF_FLAGS_CAN_FLOOD;
5668 <    else yy_aconf->flags |= CONF_FLAGS_CAN_FLOOD;
5669 <  }
4978 >    block_state.flags.value |= CONF_FLAGS_CAN_FLOOD;
4979   }
4980      break;
4981  
4982 <  case 319:
4983 <
4984 < /* Line 1455 of yacc.c  */
5676 < #line 2009 "ircd_parser.y"
4982 >  case 308:
4983 > /* Line 1787 of yacc.c  */
4984 > #line 1707 "conf_parser.y"
4985      {
4986    if (conf_parser_ctx.pass == 2)
4987 <  {
5680 <    if (not_atom) yy_aconf->flags &= ~CONF_FLAGS_IDLE_LINED;
5681 <    else yy_aconf->flags |= CONF_FLAGS_IDLE_LINED;
5682 <  }
4987 >    block_state.flags.value |= CONF_FLAGS_NO_TILDE;
4988   }
4989      break;
4990  
4991 <  case 320:
4992 <
4993 < /* Line 1455 of yacc.c  */
5689 < #line 2016 "ircd_parser.y"
4991 >  case 309:
4992 > /* Line 1787 of yacc.c  */
4993 > #line 1711 "conf_parser.y"
4994      {
4995    if (conf_parser_ctx.pass == 2)
4996 <  {
5693 <    if (not_atom) yy_aconf->flags &= ~CONF_FLAGS_NO_TILDE;
5694 <    else yy_aconf->flags |= CONF_FLAGS_NO_TILDE;
5695 <  }
4996 >    block_state.flags.value |= CONF_FLAGS_EXEMPTGLINE;
4997   }
4998      break;
4999  
5000 <  case 321:
5001 <
5002 < /* Line 1455 of yacc.c  */
5702 < #line 2023 "ircd_parser.y"
5000 >  case 310:
5001 > /* Line 1787 of yacc.c  */
5002 > #line 1715 "conf_parser.y"
5003      {
5004    if (conf_parser_ctx.pass == 2)
5005 <  {
5706 <    if (not_atom) yy_aconf->flags &= ~CONF_FLAGS_EXEMPTGLINE;
5707 <    else yy_aconf->flags |= CONF_FLAGS_EXEMPTGLINE;
5708 <  }
5005 >    block_state.flags.value |= CONF_FLAGS_EXEMPTRESV;
5006   }
5007      break;
5008  
5009 <  case 322:
5010 <
5011 < /* Line 1455 of yacc.c  */
5715 < #line 2030 "ircd_parser.y"
5009 >  case 311:
5010 > /* Line 1787 of yacc.c  */
5011 > #line 1719 "conf_parser.y"
5012      {
5013    if (conf_parser_ctx.pass == 2)
5014 <  {
5719 <    if (not_atom) yy_aconf->flags &= ~CONF_FLAGS_EXEMPTRESV;
5720 <    else yy_aconf->flags |= CONF_FLAGS_EXEMPTRESV;
5721 <  }
5014 >    block_state.flags.value |= CONF_FLAGS_WEBIRC;
5015   }
5016      break;
5017  
5018 <  case 323:
5019 <
5020 < /* Line 1455 of yacc.c  */
5728 < #line 2037 "ircd_parser.y"
5018 >  case 312:
5019 > /* Line 1787 of yacc.c  */
5020 > #line 1723 "conf_parser.y"
5021      {
5022    if (conf_parser_ctx.pass == 2)
5023 <  {
5732 <    if (not_atom) yy_aconf->flags &= ~CONF_FLAGS_NEED_PASSWORD;
5733 <    else yy_aconf->flags |= CONF_FLAGS_NEED_PASSWORD;
5734 <  }
5023 >    block_state.flags.value |= CONF_FLAGS_NEED_PASSWORD;
5024   }
5025      break;
5026  
5027 <  case 324:
5028 <
5029 < /* Line 1455 of yacc.c  */
5741 < #line 2046 "ircd_parser.y"
5027 >  case 313:
5028 > /* Line 1787 of yacc.c  */
5029 > #line 1729 "conf_parser.y"
5030      {
5031 <  if (conf_parser_ctx.pass == 2)
5744 <  {
5745 <    if (yylval.number)
5746 <      yy_aconf->flags |= CONF_FLAGS_EXEMPTKLINE;
5747 <    else
5748 <      yy_aconf->flags &= ~CONF_FLAGS_EXEMPTKLINE;
5749 <  }
5750 < }
5031 >  if (conf_parser_ctx.pass != 2)
5032      break;
5033  
5034 <  case 325:
5754 <
5755 < /* Line 1455 of yacc.c  */
5756 < #line 2057 "ircd_parser.y"
5757 <    {
5758 <  if (conf_parser_ctx.pass == 2)
5034 >  if (strlen(yylval.string) <= HOSTLEN && valid_hostname(yylval.string))
5035    {
5036 <    if (yylval.number)
5037 <      yy_aconf->flags |= CONF_FLAGS_NEED_IDENTD;
5762 <    else
5763 <      yy_aconf->flags &= ~CONF_FLAGS_NEED_IDENTD;
5036 >    strlcpy(block_state.name.buf, yylval.string, sizeof(block_state.name.buf));
5037 >    block_state.flags.value |= CONF_FLAGS_SPOOF_IP;
5038    }
5039 +  else
5040 +    ilog(LOG_TYPE_IRCD, "Spoof either is too long or contains invalid characters. Ignoring it.");
5041   }
5042      break;
5043  
5044 <  case 326:
5045 <
5046 < /* Line 1455 of yacc.c  */
5771 < #line 2068 "ircd_parser.y"
5044 >  case 314:
5045 > /* Line 1787 of yacc.c  */
5046 > #line 1743 "conf_parser.y"
5047      {
5048 <  if (conf_parser_ctx.pass == 2)
5774 <  {
5775 <    if (yylval.number)
5776 <      yy_aconf->flags |= CONF_FLAGS_NOLIMIT;
5777 <    else
5778 <      yy_aconf->flags &= ~CONF_FLAGS_NOLIMIT;
5779 <  }
5780 < }
5048 >  if (conf_parser_ctx.pass != 2)
5049      break;
5050  
5051 <  case 327:
5052 <
5785 < /* Line 1455 of yacc.c  */
5786 < #line 2079 "ircd_parser.y"
5787 <    {
5788 <  if (conf_parser_ctx.pass == 2)
5789 <  {
5790 <    if (yylval.number)
5791 <      yy_aconf->flags |= CONF_FLAGS_CAN_FLOOD;
5792 <    else
5793 <      yy_aconf->flags &= ~CONF_FLAGS_CAN_FLOOD;
5794 <  }
5051 >  strlcpy(block_state.name.buf, yylval.string, sizeof(block_state.name.buf));
5052 >  block_state.flags.value |= CONF_FLAGS_REDIR;
5053   }
5054      break;
5055  
5056 <  case 328:
5057 <
5058 < /* Line 1455 of yacc.c  */
5801 < #line 2090 "ircd_parser.y"
5056 >  case 315:
5057 > /* Line 1787 of yacc.c  */
5058 > #line 1752 "conf_parser.y"
5059      {
5060 <  if (conf_parser_ctx.pass == 2)
5804 <  {
5805 <    if (yylval.number)
5806 <      yy_aconf->flags |= CONF_FLAGS_NO_TILDE;
5807 <    else
5808 <      yy_aconf->flags &= ~CONF_FLAGS_NO_TILDE;
5809 <  }
5810 < }
5060 >  if (conf_parser_ctx.pass != 2)
5061      break;
5062  
5063 <  case 329:
5064 <
5815 < /* Line 1455 of yacc.c  */
5816 < #line 2101 "ircd_parser.y"
5817 <    {
5818 <  if (conf_parser_ctx.pass == 2)
5819 <  {
5820 <    if (yylval.number)
5821 <      yy_aconf->flags |= CONF_FLAGS_EXEMPTGLINE;
5822 <    else
5823 <      yy_aconf->flags &= ~CONF_FLAGS_EXEMPTGLINE;
5824 <  }
5063 >  block_state.flags.value |= CONF_FLAGS_REDIR;
5064 >  block_state.port.value = (yyvsp[(3) - (4)].number);
5065   }
5066      break;
5067  
5068 <  case 330:
5069 <
5070 < /* Line 1455 of yacc.c  */
5831 < #line 2113 "ircd_parser.y"
5068 >  case 316:
5069 > /* Line 1787 of yacc.c  */
5070 > #line 1765 "conf_parser.y"
5071      {
5072 <  if (conf_parser_ctx.pass == 2)
5073 <  {
5835 <    MyFree(yy_conf->name);
5072 >  if (conf_parser_ctx.pass != 2)
5073 >    break;
5074  
5075 <    if (strlen(yylval.string) < HOSTLEN)
5076 <    {    
5839 <      DupString(yy_conf->name, yylval.string);
5840 <      yy_aconf->flags |= CONF_FLAGS_SPOOF_IP;
5841 <    }
5842 <    else
5843 <    {
5844 <      ilog(L_ERROR, "Spoofs must be less than %d..ignoring it", HOSTLEN);
5845 <      yy_conf->name = NULL;
5846 <    }
5847 <  }
5075 >  reset_block_state();
5076 >  strlcpy(block_state.rpass.buf, CONF_NOREASON, sizeof(block_state.rpass.buf));
5077   }
5078      break;
5079  
5080 <  case 331:
5081 <
5082 < /* Line 1455 of yacc.c  */
5854 < #line 2132 "ircd_parser.y"
5080 >  case 317:
5081 > /* Line 1787 of yacc.c  */
5082 > #line 1772 "conf_parser.y"
5083      {
5084 <  if (conf_parser_ctx.pass == 2)
5857 <  {
5858 <    yy_aconf->flags |= CONF_FLAGS_REDIR;
5859 <    MyFree(yy_conf->name);
5860 <    DupString(yy_conf->name, yylval.string);
5861 <  }
5862 < }
5084 >  if (conf_parser_ctx.pass != 2)
5085      break;
5086  
5087 <  case 332:
5866 <
5867 < /* Line 1455 of yacc.c  */
5868 < #line 2142 "ircd_parser.y"
5869 <    {
5870 <  if (conf_parser_ctx.pass == 2)
5871 <  {
5872 <    yy_aconf->flags |= CONF_FLAGS_REDIR;
5873 <    yy_aconf->port = (yyvsp[(3) - (4)].number);
5874 <  }
5087 >  create_resv(block_state.name.buf, block_state.rpass.buf, &block_state.mask.list);
5088   }
5089      break;
5090  
5091 <  case 333:
5092 <
5093 < /* Line 1455 of yacc.c  */
5881 < #line 2151 "ircd_parser.y"
5091 >  case 324:
5092 > /* Line 1787 of yacc.c  */
5093 > #line 1783 "conf_parser.y"
5094      {
5095    if (conf_parser_ctx.pass == 2)
5096 <  {
5885 <    if (yylval.number)
5886 <      yy_aconf->flags |= CONF_FLAGS_NEED_PASSWORD;
5887 <    else
5888 <      yy_aconf->flags &= ~CONF_FLAGS_NEED_PASSWORD;
5889 <  }
5096 >    strlcpy(block_state.name.buf, yylval.string, sizeof(block_state.name.buf));
5097   }
5098      break;
5099  
5100 <  case 334:
5101 <
5102 < /* Line 1455 of yacc.c  */
5896 < #line 2166 "ircd_parser.y"
5100 >  case 325:
5101 > /* Line 1787 of yacc.c  */
5102 > #line 1789 "conf_parser.y"
5103      {
5104    if (conf_parser_ctx.pass == 2)
5105 <  {
5900 <    MyFree(resv_reason);
5901 <    resv_reason = NULL;
5902 <  }
5105 >    strlcpy(block_state.rpass.buf, yylval.string, sizeof(block_state.rpass.buf));
5106   }
5107      break;
5108  
5109 <  case 335:
5110 <
5111 < /* Line 1455 of yacc.c  */
5909 < #line 2173 "ircd_parser.y"
5109 >  case 326:
5110 > /* Line 1787 of yacc.c  */
5111 > #line 1795 "conf_parser.y"
5112      {
5113    if (conf_parser_ctx.pass == 2)
5114 <  {
5913 <    MyFree(resv_reason);
5914 <    resv_reason = NULL;
5915 <  }
5114 >    dlinkAdd(xstrdup(yylval.string), make_dlink_node(), &block_state.mask.list);
5115   }
5116      break;
5117  
5118 <  case 342:
5119 <
5120 < /* Line 1455 of yacc.c  */
5922 < #line 2185 "ircd_parser.y"
5118 >  case 332:
5119 > /* Line 1787 of yacc.c  */
5120 > #line 1810 "conf_parser.y"
5121      {
5122 <  if (conf_parser_ctx.pass == 2)
5925 <  {
5926 <    MyFree(resv_reason);
5927 <    DupString(resv_reason, yylval.string);
5928 <  }
5929 < }
5122 >  if (conf_parser_ctx.pass != 2)
5123      break;
5124  
5125 <  case 343:
5933 <
5934 < /* Line 1455 of yacc.c  */
5935 < #line 2194 "ircd_parser.y"
5936 <    {
5937 <  if (conf_parser_ctx.pass == 2)
5125 >  if (valid_servname(yylval.string))
5126    {
5127 <    if (IsChanPrefix(*yylval.string))
5128 <    {
5941 <      char def_reason[] = "No reason";
5942 <
5943 <      create_channel_resv(yylval.string, resv_reason != NULL ? resv_reason : def_reason, 1);
5944 <    }
5127 >    struct MaskItem *conf = conf_make(CONF_SERVICE);
5128 >    conf->name = xstrdup(yylval.string);
5129    }
5946  /* ignore it for now.. but we really should make a warning if
5947   * its an erroneous name --fl_ */
5130   }
5131      break;
5132  
5133 <  case 344:
5134 <
5135 < /* Line 1455 of yacc.c  */
5954 < #line 2209 "ircd_parser.y"
5133 >  case 333:
5134 > /* Line 1787 of yacc.c  */
5135 > #line 1825 "conf_parser.y"
5136      {
5137 <  if (conf_parser_ctx.pass == 2)
5957 <  {
5958 <    char def_reason[] = "No reason";
5959 <
5960 <    create_nick_resv(yylval.string, resv_reason != NULL ? resv_reason : def_reason, 1);
5961 <  }
5962 < }
5137 >  if (conf_parser_ctx.pass != 2)
5138      break;
5139  
5140 <  case 345:
5140 >  reset_block_state();
5141  
5142 < /* Line 1455 of yacc.c  */
5143 < #line 2222 "ircd_parser.y"
5144 <    {
5145 <  if (conf_parser_ctx.pass == 2)
5971 <  {
5972 <    yy_conf = make_conf_item(ULINE_TYPE);
5973 <    yy_match_item = map_to_conf(yy_conf);
5974 <    yy_match_item->action = SHARED_ALL;
5975 <  }
5142 >  strlcpy(block_state.name.buf, "*", sizeof(block_state.name.buf));
5143 >  strlcpy(block_state.user.buf, "*", sizeof(block_state.user.buf));
5144 >  strlcpy(block_state.host.buf, "*", sizeof(block_state.host.buf));
5145 >  block_state.flags.value = SHARED_ALL;
5146   }
5147      break;
5148  
5149 <  case 346:
5150 <
5151 < /* Line 1455 of yacc.c  */
5982 < #line 2230 "ircd_parser.y"
5149 >  case 334:
5150 > /* Line 1787 of yacc.c  */
5151 > #line 1836 "conf_parser.y"
5152      {
5153 <  if (conf_parser_ctx.pass == 2)
5154 <  {
5155 <    yy_conf = NULL;
5987 <  }
5988 < }
5153 >  struct MaskItem *conf = NULL;
5154 >
5155 >  if (conf_parser_ctx.pass != 2)
5156      break;
5157  
5158 <  case 353:
5158 >  conf = conf_make(CONF_ULINE);
5159 >  conf->flags = block_state.flags.value;
5160 >  conf->name = xstrdup(block_state.name.buf);
5161 >  conf->user = xstrdup(block_state.user.buf);
5162 >  conf->host = xstrdup(block_state.host.buf);
5163 > }
5164 >    break;
5165  
5166 < /* Line 1455 of yacc.c  */
5167 < #line 2241 "ircd_parser.y"
5166 >  case 341:
5167 > /* Line 1787 of yacc.c  */
5168 > #line 1853 "conf_parser.y"
5169      {
5170    if (conf_parser_ctx.pass == 2)
5171 <  {
5998 <    MyFree(yy_conf->name);
5999 <    DupString(yy_conf->name, yylval.string);
6000 <  }
5171 >    strlcpy(block_state.name.buf, yylval.string, sizeof(block_state.name.buf));
5172   }
5173      break;
5174  
5175 <  case 354:
5176 <
5177 < /* Line 1455 of yacc.c  */
6007 < #line 2250 "ircd_parser.y"
5175 >  case 342:
5176 > /* Line 1787 of yacc.c  */
5177 > #line 1859 "conf_parser.y"
5178      {
5179    if (conf_parser_ctx.pass == 2)
5180    {
# Line 6012 | Line 5182 | yyreduce:
5182  
5183      nuh.nuhmask  = yylval.string;
5184      nuh.nickptr  = NULL;
5185 <    nuh.userptr  = userbuf;
5186 <    nuh.hostptr  = hostbuf;
5185 >    nuh.userptr  = block_state.user.buf;
5186 >    nuh.hostptr  = block_state.host.buf;
5187  
5188      nuh.nicksize = 0;
5189 <    nuh.usersize = sizeof(userbuf);
5190 <    nuh.hostsize = sizeof(hostbuf);
5189 >    nuh.usersize = sizeof(block_state.user.buf);
5190 >    nuh.hostsize = sizeof(block_state.host.buf);
5191  
5192      split_nuh(&nuh);
6023
6024    DupString(yy_match_item->user, userbuf);
6025    DupString(yy_match_item->host, hostbuf);
5193    }
5194   }
5195      break;
5196  
5197 <  case 355:
5198 <
5199 < /* Line 1455 of yacc.c  */
6033 < #line 2272 "ircd_parser.y"
5197 >  case 343:
5198 > /* Line 1787 of yacc.c  */
5199 > #line 1878 "conf_parser.y"
5200      {
5201    if (conf_parser_ctx.pass == 2)
5202 <    yy_match_item->action = 0;
5202 >    block_state.flags.value = 0;
5203   }
5204      break;
5205  
5206 <  case 359:
5207 <
5208 < /* Line 1455 of yacc.c  */
6043 < #line 2279 "ircd_parser.y"
5206 >  case 347:
5207 > /* Line 1787 of yacc.c  */
5208 > #line 1885 "conf_parser.y"
5209      {
5210    if (conf_parser_ctx.pass == 2)
5211 <    yy_match_item->action |= SHARED_KLINE;
5211 >    block_state.flags.value |= SHARED_KLINE;
5212   }
5213      break;
5214  
5215 <  case 360:
5216 <
5217 < /* Line 1455 of yacc.c  */
6053 < #line 2283 "ircd_parser.y"
5215 >  case 348:
5216 > /* Line 1787 of yacc.c  */
5217 > #line 1889 "conf_parser.y"
5218      {
5219    if (conf_parser_ctx.pass == 2)
5220 <    yy_match_item->action |= SHARED_TKLINE;
5220 >    block_state.flags.value |= SHARED_UNKLINE;
5221   }
5222      break;
5223  
5224 <  case 361:
5225 <
5226 < /* Line 1455 of yacc.c  */
6063 < #line 2287 "ircd_parser.y"
5224 >  case 349:
5225 > /* Line 1787 of yacc.c  */
5226 > #line 1893 "conf_parser.y"
5227      {
5228    if (conf_parser_ctx.pass == 2)
5229 <    yy_match_item->action |= SHARED_UNKLINE;
5229 >    block_state.flags.value |= SHARED_DLINE;
5230   }
5231      break;
5232  
5233 <  case 362:
5234 <
5235 < /* Line 1455 of yacc.c  */
6073 < #line 2291 "ircd_parser.y"
5233 >  case 350:
5234 > /* Line 1787 of yacc.c  */
5235 > #line 1897 "conf_parser.y"
5236      {
5237    if (conf_parser_ctx.pass == 2)
5238 <    yy_match_item->action |= SHARED_XLINE;
5238 >    block_state.flags.value |= SHARED_UNDLINE;
5239   }
5240      break;
5241  
5242 <  case 363:
5243 <
5244 < /* Line 1455 of yacc.c  */
6083 < #line 2295 "ircd_parser.y"
5242 >  case 351:
5243 > /* Line 1787 of yacc.c  */
5244 > #line 1901 "conf_parser.y"
5245      {
5246    if (conf_parser_ctx.pass == 2)
5247 <    yy_match_item->action |= SHARED_TXLINE;
5247 >    block_state.flags.value |= SHARED_XLINE;
5248   }
5249      break;
5250  
5251 <  case 364:
5252 <
5253 < /* Line 1455 of yacc.c  */
6093 < #line 2299 "ircd_parser.y"
5251 >  case 352:
5252 > /* Line 1787 of yacc.c  */
5253 > #line 1905 "conf_parser.y"
5254      {
5255    if (conf_parser_ctx.pass == 2)
5256 <    yy_match_item->action |= SHARED_UNXLINE;
5256 >    block_state.flags.value |= SHARED_UNXLINE;
5257   }
5258      break;
5259  
5260 <  case 365:
5261 <
5262 < /* Line 1455 of yacc.c  */
6103 < #line 2303 "ircd_parser.y"
5260 >  case 353:
5261 > /* Line 1787 of yacc.c  */
5262 > #line 1909 "conf_parser.y"
5263      {
5264    if (conf_parser_ctx.pass == 2)
5265 <    yy_match_item->action |= SHARED_RESV;
5265 >    block_state.flags.value |= SHARED_RESV;
5266   }
5267      break;
5268  
5269 <  case 366:
5270 <
5271 < /* Line 1455 of yacc.c  */
6113 < #line 2307 "ircd_parser.y"
5269 >  case 354:
5270 > /* Line 1787 of yacc.c  */
5271 > #line 1913 "conf_parser.y"
5272      {
5273    if (conf_parser_ctx.pass == 2)
5274 <    yy_match_item->action |= SHARED_TRESV;
5274 >    block_state.flags.value |= SHARED_UNRESV;
5275   }
5276      break;
5277  
5278 <  case 367:
5279 <
5280 < /* Line 1455 of yacc.c  */
6123 < #line 2311 "ircd_parser.y"
5278 >  case 355:
5279 > /* Line 1787 of yacc.c  */
5280 > #line 1917 "conf_parser.y"
5281      {
5282    if (conf_parser_ctx.pass == 2)
5283 <    yy_match_item->action |= SHARED_UNRESV;
5283 >    block_state.flags.value |= SHARED_LOCOPS;
5284   }
5285      break;
5286  
5287 <  case 368:
5288 <
5289 < /* Line 1455 of yacc.c  */
6133 < #line 2315 "ircd_parser.y"
5287 >  case 356:
5288 > /* Line 1787 of yacc.c  */
5289 > #line 1921 "conf_parser.y"
5290      {
5291    if (conf_parser_ctx.pass == 2)
5292 <    yy_match_item->action |= SHARED_LOCOPS;
5292 >    block_state.flags.value = SHARED_ALL;
5293   }
5294      break;
5295  
5296 <  case 369:
5297 <
5298 < /* Line 1455 of yacc.c  */
6143 < #line 2319 "ircd_parser.y"
5296 >  case 357:
5297 > /* Line 1787 of yacc.c  */
5298 > #line 1930 "conf_parser.y"
5299      {
5300 <  if (conf_parser_ctx.pass == 2)
6146 <    yy_match_item->action = SHARED_ALL;
6147 < }
5300 >  if (conf_parser_ctx.pass != 2)
5301      break;
5302  
5303 <  case 370:
5303 >  reset_block_state();
5304  
5305 < /* Line 1455 of yacc.c  */
5306 < #line 2328 "ircd_parser.y"
6154 <    {
6155 <  if (conf_parser_ctx.pass == 2)
6156 <  {
6157 <    yy_conf = make_conf_item(CLUSTER_TYPE);
6158 <    yy_conf->flags = SHARED_ALL;
6159 <  }
5305 >  strlcpy(block_state.name.buf, "*", sizeof(block_state.name.buf));
5306 >  block_state.flags.value = SHARED_ALL;
5307   }
5308      break;
5309  
5310 <  case 371:
5311 <
5312 < /* Line 1455 of yacc.c  */
6166 < #line 2335 "ircd_parser.y"
5310 >  case 358:
5311 > /* Line 1787 of yacc.c  */
5312 > #line 1939 "conf_parser.y"
5313      {
5314 <  if (conf_parser_ctx.pass == 2)
6169 <  {
6170 <    if (yy_conf->name == NULL)
6171 <      DupString(yy_conf->name, "*");
6172 <    yy_conf = NULL;
6173 <  }
6174 < }
6175 <    break;
5314 >  struct MaskItem *conf = NULL;
5315  
5316 <  case 377:
6178 <
6179 < /* Line 1455 of yacc.c  */
6180 < #line 2348 "ircd_parser.y"
6181 <    {
6182 <  if (conf_parser_ctx.pass == 2)
6183 <    DupString(yy_conf->name, yylval.string);
6184 < }
5316 >  if (conf_parser_ctx.pass != 2)
5317      break;
5318  
5319 <  case 378:
5320 <
5321 < /* Line 1455 of yacc.c  */
6190 < #line 2354 "ircd_parser.y"
6191 <    {
6192 <  if (conf_parser_ctx.pass == 2)
6193 <    yy_conf->flags = 0;
5319 >  conf = conf_make(CONF_CLUSTER);
5320 >  conf->flags = block_state.flags.value;
5321 >  conf->name = xstrdup(block_state.name.buf);
5322   }
5323      break;
5324  
5325 <  case 382:
5326 <
5327 < /* Line 1455 of yacc.c  */
6200 < #line 2361 "ircd_parser.y"
5325 >  case 364:
5326 > /* Line 1787 of yacc.c  */
5327 > #line 1954 "conf_parser.y"
5328      {
5329    if (conf_parser_ctx.pass == 2)
5330 <    yy_conf->flags |= SHARED_KLINE;
5330 >    strlcpy(block_state.name.buf, yylval.string, sizeof(block_state.name.buf));
5331   }
5332      break;
5333  
5334 <  case 383:
5335 <
5336 < /* Line 1455 of yacc.c  */
6210 < #line 2365 "ircd_parser.y"
5334 >  case 365:
5335 > /* Line 1787 of yacc.c  */
5336 > #line 1960 "conf_parser.y"
5337      {
5338    if (conf_parser_ctx.pass == 2)
5339 <    yy_conf->flags |= SHARED_TKLINE;
5339 >    block_state.flags.value = 0;
5340   }
5341      break;
5342  
5343 <  case 384:
5344 <
5345 < /* Line 1455 of yacc.c  */
6220 < #line 2369 "ircd_parser.y"
5343 >  case 369:
5344 > /* Line 1787 of yacc.c  */
5345 > #line 1967 "conf_parser.y"
5346      {
5347    if (conf_parser_ctx.pass == 2)
5348 <    yy_conf->flags |= SHARED_UNKLINE;
5348 >    block_state.flags.value |= SHARED_KLINE;
5349   }
5350      break;
5351  
5352 <  case 385:
5353 <
5354 < /* Line 1455 of yacc.c  */
6230 < #line 2373 "ircd_parser.y"
5352 >  case 370:
5353 > /* Line 1787 of yacc.c  */
5354 > #line 1971 "conf_parser.y"
5355      {
5356    if (conf_parser_ctx.pass == 2)
5357 <    yy_conf->flags |= SHARED_XLINE;
5357 >    block_state.flags.value |= SHARED_UNKLINE;
5358   }
5359      break;
5360  
5361 <  case 386:
5362 <
5363 < /* Line 1455 of yacc.c  */
6240 < #line 2377 "ircd_parser.y"
5361 >  case 371:
5362 > /* Line 1787 of yacc.c  */
5363 > #line 1975 "conf_parser.y"
5364      {
5365    if (conf_parser_ctx.pass == 2)
5366 <    yy_conf->flags |= SHARED_TXLINE;
5366 >    block_state.flags.value |= SHARED_DLINE;
5367   }
5368      break;
5369  
5370 <  case 387:
5371 <
5372 < /* Line 1455 of yacc.c  */
6250 < #line 2381 "ircd_parser.y"
5370 >  case 372:
5371 > /* Line 1787 of yacc.c  */
5372 > #line 1979 "conf_parser.y"
5373      {
5374    if (conf_parser_ctx.pass == 2)
5375 <    yy_conf->flags |= SHARED_UNXLINE;
5375 >    block_state.flags.value |= SHARED_UNDLINE;
5376   }
5377      break;
5378  
5379 <  case 388:
5380 <
5381 < /* Line 1455 of yacc.c  */
6260 < #line 2385 "ircd_parser.y"
5379 >  case 373:
5380 > /* Line 1787 of yacc.c  */
5381 > #line 1983 "conf_parser.y"
5382      {
5383    if (conf_parser_ctx.pass == 2)
5384 <    yy_conf->flags |= SHARED_RESV;
5384 >    block_state.flags.value |= SHARED_XLINE;
5385   }
5386      break;
5387  
5388 <  case 389:
5389 <
5390 < /* Line 1455 of yacc.c  */
6270 < #line 2389 "ircd_parser.y"
5388 >  case 374:
5389 > /* Line 1787 of yacc.c  */
5390 > #line 1987 "conf_parser.y"
5391      {
5392    if (conf_parser_ctx.pass == 2)
5393 <    yy_conf->flags |= SHARED_TRESV;
5393 >    block_state.flags.value |= SHARED_UNXLINE;
5394   }
5395      break;
5396  
5397 <  case 390:
5398 <
5399 < /* Line 1455 of yacc.c  */
6280 < #line 2393 "ircd_parser.y"
5397 >  case 375:
5398 > /* Line 1787 of yacc.c  */
5399 > #line 1991 "conf_parser.y"
5400      {
5401    if (conf_parser_ctx.pass == 2)
5402 <    yy_conf->flags |= SHARED_UNRESV;
5402 >    block_state.flags.value |= SHARED_RESV;
5403   }
5404      break;
5405  
5406 <  case 391:
5407 <
5408 < /* Line 1455 of yacc.c  */
6290 < #line 2397 "ircd_parser.y"
5406 >  case 376:
5407 > /* Line 1787 of yacc.c  */
5408 > #line 1995 "conf_parser.y"
5409      {
5410    if (conf_parser_ctx.pass == 2)
5411 <    yy_conf->flags |= SHARED_LOCOPS;
5411 >    block_state.flags.value |= SHARED_UNRESV;
5412   }
5413      break;
5414  
5415 <  case 392:
5416 <
5417 < /* Line 1455 of yacc.c  */
6300 < #line 2401 "ircd_parser.y"
5415 >  case 377:
5416 > /* Line 1787 of yacc.c  */
5417 > #line 1999 "conf_parser.y"
5418      {
5419    if (conf_parser_ctx.pass == 2)
5420 <    yy_conf->flags = SHARED_ALL;
5420 >    block_state.flags.value |= SHARED_LOCOPS;
5421   }
5422      break;
5423  
5424 <  case 393:
5425 <
5426 < /* Line 1455 of yacc.c  */
6310 < #line 2410 "ircd_parser.y"
5424 >  case 378:
5425 > /* Line 1787 of yacc.c  */
5426 > #line 2003 "conf_parser.y"
5427      {
5428    if (conf_parser_ctx.pass == 2)
5429 <  {
6314 <    yy_conf = make_conf_item(SERVER_TYPE);
6315 <    yy_aconf = (struct AccessItem *)map_to_conf(yy_conf);
6316 <    yy_aconf->passwd = NULL;
6317 <    /* defaults */
6318 <    yy_aconf->port = PORTNUM;
6319 <
6320 <    if (ConfigFileEntry.burst_away)
6321 <      yy_aconf->flags = CONF_FLAGS_BURST_AWAY;
6322 <  }
6323 <  else
6324 <  {
6325 <    MyFree(class_name);
6326 <    class_name = NULL;
6327 <  }
5429 >    block_state.flags.value = SHARED_ALL;
5430   }
5431      break;
5432  
5433 <  case 394:
5434 <
5435 < /* Line 1455 of yacc.c  */
6334 < #line 2428 "ircd_parser.y"
5433 >  case 379:
5434 > /* Line 1787 of yacc.c  */
5435 > #line 2012 "conf_parser.y"
5436      {
6336  if (conf_parser_ctx.pass == 2)
6337  {
6338    struct CollectItem *yy_hconf=NULL;
6339    struct CollectItem *yy_lconf=NULL;
6340    dlink_node *ptr;
6341    dlink_node *next_ptr;
6342 #ifdef HAVE_LIBCRYPTO
6343    if (yy_aconf->host &&
6344        ((yy_aconf->passwd && yy_aconf->spasswd) ||
6345         (yy_aconf->rsa_public_key && IsConfCryptLink(yy_aconf))))
6346 #else /* !HAVE_LIBCRYPTO */
6347      if (yy_aconf->host && !IsConfCryptLink(yy_aconf) &&
6348          yy_aconf->passwd && yy_aconf->spasswd)
6349 #endif /* !HAVE_LIBCRYPTO */
6350        {
6351          if (conf_add_server(yy_conf, class_name) == -1)
6352          {
6353            delete_conf_item(yy_conf);
6354            yy_conf = NULL;
6355            yy_aconf = NULL;
6356          }
6357        }
6358        else
6359        {
6360          /* Even if yy_conf ->name is NULL
6361           * should still unhook any hub/leaf confs still pending
6362           */
6363          unhook_hub_leaf_confs();
5437  
5438 <          if (yy_conf->name != NULL)
5439 <          {
6367 < #ifndef HAVE_LIBCRYPTO
6368 <            if (IsConfCryptLink(yy_aconf))
6369 <              yyerror("Ignoring connect block -- no OpenSSL support");
6370 < #else
6371 <            if (IsConfCryptLink(yy_aconf) && !yy_aconf->rsa_public_key)
6372 <              yyerror("Ignoring connect block -- missing key");
6373 < #endif
6374 <            if (yy_aconf->host == NULL)
6375 <              yyerror("Ignoring connect block -- missing host");
6376 <            else if (!IsConfCryptLink(yy_aconf) &&
6377 <                    (!yy_aconf->passwd || !yy_aconf->spasswd))
6378 <              yyerror("Ignoring connect block -- missing password");
6379 <          }
6380 <
6381 <
6382 <          /* XXX
6383 <           * This fixes a try_connections() core (caused by invalid class_ptr
6384 <           * pointers) reported by metalrock. That's an ugly fix, but there
6385 <           * is currently no better way. The entire config subsystem needs an
6386 <           * rewrite ASAP. make_conf_item() shouldn't really add things onto
6387 <           * a doubly linked list immediately without any sanity checks!  -Michael
6388 <           */
6389 <          delete_conf_item(yy_conf);
6390 <
6391 <          yy_aconf = NULL;
6392 <          yy_conf = NULL;
6393 <        }
6394 <
6395 <      /*
6396 <       * yy_conf is still pointing at the server that is having
6397 <       * a connect block built for it. This means, y_aconf->name
6398 <       * points to the actual irc name this server will be known as.
6399 <       * Now this new server has a set or even just one hub_mask (or leaf_mask)
6400 <       * given in the link list at yy_hconf. Fill in the HUB confs
6401 <       * from this link list now.
6402 <       */        
6403 <      DLINK_FOREACH_SAFE(ptr, next_ptr, hub_conf_list.head)
6404 <      {
6405 <        struct ConfItem *new_hub_conf;
6406 <        struct MatchItem *match_item;
6407 <
6408 <        yy_hconf = ptr->data;
6409 <
6410 <        /* yy_conf == NULL is a fatal error for this connect block! */
6411 <        if ((yy_conf != NULL) && (yy_conf->name != NULL))
6412 <        {
6413 <          new_hub_conf = make_conf_item(HUB_TYPE);
6414 <          match_item = (struct MatchItem *)map_to_conf(new_hub_conf);
6415 <          DupString(new_hub_conf->name, yy_conf->name);
6416 <          if (yy_hconf->user != NULL)
6417 <            DupString(match_item->user, yy_hconf->user);
6418 <          else
6419 <            DupString(match_item->user, "*");
6420 <          if (yy_hconf->host != NULL)
6421 <            DupString(match_item->host, yy_hconf->host);
6422 <          else
6423 <            DupString(match_item->host, "*");
6424 <        }
6425 <        dlinkDelete(&yy_hconf->node, &hub_conf_list);
6426 <        free_collect_item(yy_hconf);
6427 <      }
6428 <
6429 <      /* Ditto for the LEAF confs */
6430 <
6431 <      DLINK_FOREACH_SAFE(ptr, next_ptr, leaf_conf_list.head)
6432 <      {
6433 <        struct ConfItem *new_leaf_conf;
6434 <        struct MatchItem *match_item;
6435 <
6436 <        yy_lconf = ptr->data;
5438 >  if (conf_parser_ctx.pass != 2)
5439 >    break;
5440  
5441 <        if ((yy_conf != NULL) && (yy_conf->name != NULL))
5442 <        {
6440 <          new_leaf_conf = make_conf_item(LEAF_TYPE);
6441 <          match_item = (struct MatchItem *)map_to_conf(new_leaf_conf);
6442 <          DupString(new_leaf_conf->name, yy_conf->name);
6443 <          if (yy_lconf->user != NULL)
6444 <            DupString(match_item->user, yy_lconf->user);
6445 <          else
6446 <            DupString(match_item->user, "*");
6447 <          if (yy_lconf->host != NULL)
6448 <            DupString(match_item->host, yy_lconf->host);
6449 <          else
6450 <            DupString(match_item->host, "*");
6451 <        }
6452 <        dlinkDelete(&yy_lconf->node, &leaf_conf_list);
6453 <        free_collect_item(yy_lconf);
6454 <      }
6455 <      MyFree(class_name);
6456 <      class_name = NULL;
6457 <      yy_conf = NULL;
6458 <      yy_aconf = NULL;
6459 <  }
5441 >  reset_block_state();
5442 >  block_state.port.value = PORTNUM;
5443   }
5444      break;
5445  
5446 <  case 419:
5447 <
5448 < /* Line 1455 of yacc.c  */
6466 < #line 2567 "ircd_parser.y"
5446 >  case 380:
5447 > /* Line 1787 of yacc.c  */
5448 > #line 2020 "conf_parser.y"
5449      {
5450 <  if (conf_parser_ctx.pass == 2)
5451 <  {
6470 <    if (yy_conf->name != NULL)
6471 <      yyerror("Multiple connect name entry");
5450 >  struct MaskItem *conf = NULL;
5451 >  struct addrinfo hints, *res;
5452  
5453 <    MyFree(yy_conf->name);
6474 <    DupString(yy_conf->name, yylval.string);
6475 <  }
6476 < }
5453 >  if (conf_parser_ctx.pass != 2)
5454      break;
5455  
5456 <  case 420:
5457 <
6481 < /* Line 1455 of yacc.c  */
6482 < #line 2579 "ircd_parser.y"
6483 <    {
6484 <  if (conf_parser_ctx.pass == 2)
6485 <  {
6486 <    if (yy_conf->name != NULL)
6487 <      yyerror("Multiple connect name entry");
6488 <
6489 <    MyFree(yy_conf->name);
6490 <    DupString(yy_conf->name, yylval.string);
6491 <  }
6492 < }
5456 >  if (!block_state.name.buf[0] ||
5457 >      !block_state.host.buf[0])
5458      break;
5459  
5460 <  case 421:
5460 >  if (!block_state.rpass.buf[0] ||
5461 >      !block_state.spass.buf[0])
5462 >    break;
5463  
5464 < /* Line 1455 of yacc.c  */
5465 < #line 2591 "ircd_parser.y"
6499 <    {
6500 <  if (conf_parser_ctx.pass == 2)
6501 <  {
6502 <    MyFree(yy_aconf->host);
6503 <    DupString(yy_aconf->host, yylval.string);
6504 <  }
6505 < }
5464 >  if (has_wildcards(block_state.name.buf) ||
5465 >      has_wildcards(block_state.host.buf))
5466      break;
5467  
5468 <  case 422:
5468 >  conf = conf_make(CONF_SERVER);
5469 >  conf->port = block_state.port.value;
5470 >  conf->flags = block_state.flags.value;
5471 >  conf->aftype = block_state.aftype.value;
5472 >  conf->host = xstrdup(block_state.host.buf);
5473 >  conf->name = xstrdup(block_state.name.buf);
5474 >  conf->passwd = xstrdup(block_state.rpass.buf);
5475 >  conf->spasswd = xstrdup(block_state.spass.buf);
5476 >  conf->cipher_list = xstrdup(block_state.ciph.buf);
5477  
5478 < /* Line 1455 of yacc.c  */
5479 < #line 2600 "ircd_parser.y"
6512 <    {
6513 <  if (conf_parser_ctx.pass == 2)
6514 <  {
6515 <    struct addrinfo hints, *res;
5478 >  dlinkMoveList(&block_state.leaf.list, &conf->leaf_list);
5479 >  dlinkMoveList(&block_state.hub.list, &conf->hub_list);
5480  
5481 +  if (block_state.bind.buf[0])
5482 +  {
5483      memset(&hints, 0, sizeof(hints));
5484  
5485      hints.ai_family   = AF_UNSPEC;
5486      hints.ai_socktype = SOCK_STREAM;
5487      hints.ai_flags    = AI_PASSIVE | AI_NUMERICHOST;
5488  
5489 <    if (irc_getaddrinfo(yylval.string, NULL, &hints, &res))
5490 <      ilog(L_ERROR, "Invalid netmask for server vhost(%s)", yylval.string);
5489 >    if (getaddrinfo(block_state.bind.buf, NULL, &hints, &res))
5490 >      ilog(LOG_TYPE_IRCD, "Invalid netmask for server vhost(%s)", block_state.bind.buf);
5491      else
5492      {
5493        assert(res != NULL);
5494  
5495 <      memcpy(&yy_aconf->my_ipnum, res->ai_addr, res->ai_addrlen);
5496 <      yy_aconf->my_ipnum.ss.ss_family = res->ai_family;
5497 <      yy_aconf->my_ipnum.ss_len = res->ai_addrlen;
5498 <      irc_freeaddrinfo(res);
6533 <    }
6534 <  }
6535 < }
6536 <    break;
6537 <
6538 <  case 423:
6539 <
6540 < /* Line 1455 of yacc.c  */
6541 < #line 2626 "ircd_parser.y"
6542 <    {
6543 <  if (conf_parser_ctx.pass == 2)
6544 <  {
6545 <    if ((yyvsp[(3) - (4)].string)[0] == ':')
6546 <      yyerror("Server passwords cannot begin with a colon");
6547 <    else if (strchr((yyvsp[(3) - (4)].string), ' ') != NULL)
6548 <      yyerror("Server passwords cannot contain spaces");
6549 <    else {
6550 <      if (yy_aconf->spasswd != NULL)
6551 <        memset(yy_aconf->spasswd, 0, strlen(yy_aconf->spasswd));
6552 <
6553 <      MyFree(yy_aconf->spasswd);
6554 <      DupString(yy_aconf->spasswd, yylval.string);
5495 >      memcpy(&conf->bind, res->ai_addr, res->ai_addrlen);
5496 >      conf->bind.ss.ss_family = res->ai_family;
5497 >      conf->bind.ss_len = res->ai_addrlen;
5498 >      freeaddrinfo(res);
5499      }
5500    }
6557 }
6558    break;
6559
6560  case 424:
6561
6562 /* Line 1455 of yacc.c  */
6563 #line 2644 "ircd_parser.y"
6564    {
6565  if (conf_parser_ctx.pass == 2)
6566  {
6567    if ((yyvsp[(3) - (4)].string)[0] == ':')
6568      yyerror("Server passwords cannot begin with a colon");
6569    else if (strchr((yyvsp[(3) - (4)].string), ' ') != NULL)
6570      yyerror("Server passwords cannot contain spaces");
6571    else {
6572      if (yy_aconf->passwd != NULL)
6573        memset(yy_aconf->passwd, 0, strlen(yy_aconf->passwd));
5501  
5502 <      MyFree(yy_aconf->passwd);
5503 <      DupString(yy_aconf->passwd, yylval.string);
6577 <    }
6578 <  }
6579 < }
6580 <    break;
6581 <
6582 <  case 425:
6583 <
6584 < /* Line 1455 of yacc.c  */
6585 < #line 2662 "ircd_parser.y"
6586 <    {
6587 <  if (conf_parser_ctx.pass == 2)
6588 <    yy_aconf->port = (yyvsp[(3) - (4)].number);
5502 >  conf_add_class_to_conf(conf, block_state.class.buf);
5503 >  lookup_confhost(conf);
5504   }
5505      break;
5506  
5507 <  case 426:
5508 <
5509 < /* Line 1455 of yacc.c  */
6595 < #line 2668 "ircd_parser.y"
5507 >  case 397:
5508 > /* Line 1787 of yacc.c  */
5509 > #line 2086 "conf_parser.y"
5510      {
5511    if (conf_parser_ctx.pass == 2)
5512 <    yy_aconf->aftype = AF_INET;
5512 >    strlcpy(block_state.name.buf, yylval.string, sizeof(block_state.name.buf));
5513   }
5514      break;
5515  
5516 <  case 427:
5517 <
5518 < /* Line 1455 of yacc.c  */
6605 < #line 2672 "ircd_parser.y"
5516 >  case 398:
5517 > /* Line 1787 of yacc.c  */
5518 > #line 2092 "conf_parser.y"
5519      {
6607 #ifdef IPV6
5520    if (conf_parser_ctx.pass == 2)
5521 <    yy_aconf->aftype = AF_INET6;
6610 < #endif
5521 >    strlcpy(block_state.host.buf, yylval.string, sizeof(block_state.host.buf));
5522   }
5523      break;
5524  
5525 <  case 428:
5526 <
5527 < /* Line 1455 of yacc.c  */
6617 < #line 2680 "ircd_parser.y"
5525 >  case 399:
5526 > /* Line 1787 of yacc.c  */
5527 > #line 2098 "conf_parser.y"
5528      {
5529    if (conf_parser_ctx.pass == 2)
5530 <  {
6621 <    MyFree(yy_aconf->fakename);
6622 <    DupString(yy_aconf->fakename, yylval.string);
6623 <  }
5530 >    strlcpy(block_state.bind.buf, yylval.string, sizeof(block_state.bind.buf));
5531   }
5532      break;
5533  
5534 <  case 429:
5535 <
5536 < /* Line 1455 of yacc.c  */
6630 < #line 2689 "ircd_parser.y"
5534 >  case 400:
5535 > /* Line 1787 of yacc.c  */
5536 > #line 2104 "conf_parser.y"
5537      {
5538 < }
5538 >  if (conf_parser_ctx.pass != 2)
5539      break;
5540  
5541 <  case 433:
5542 <
5543 < /* Line 1455 of yacc.c  */
5544 < #line 2693 "ircd_parser.y"
5545 <    { not_atom = 1; }
5546 <    break;
6641 <
6642 <  case 435:
6643 <
6644 < /* Line 1455 of yacc.c  */
6645 < #line 2694 "ircd_parser.y"
6646 <    { not_atom = 0; }
6647 <    break;
6648 <
6649 <  case 437:
6650 <
6651 < /* Line 1455 of yacc.c  */
6652 < #line 2697 "ircd_parser.y"
6653 <    {
6654 <  if (conf_parser_ctx.pass == 2)
6655 < #ifndef HAVE_LIBZ
6656 <    yyerror("Ignoring flags = compressed; -- no zlib support");
6657 < #else
6658 < {
6659 <   if (not_atom)ClearConfCompressed(yy_aconf);
6660 <   else SetConfCompressed(yy_aconf);
6661 < }
6662 < #endif
6663 < }
6664 <    break;
6665 <
6666 <  case 438:
6667 <
6668 < /* Line 1455 of yacc.c  */
6669 < #line 2708 "ircd_parser.y"
6670 <    {
6671 <  if (conf_parser_ctx.pass == 2)
6672 <  {
6673 <    if (not_atom)ClearConfCryptLink(yy_aconf);
6674 <    else SetConfCryptLink(yy_aconf);
6675 <  }
5541 >  if ((yyvsp[(3) - (4)].string)[0] == ':')
5542 >    conf_error_report("Server passwords cannot begin with a colon");
5543 >  else if (strchr((yyvsp[(3) - (4)].string), ' ') != NULL)
5544 >    conf_error_report("Server passwords cannot contain spaces");
5545 >  else
5546 >    strlcpy(block_state.spass.buf, yylval.string, sizeof(block_state.spass.buf));
5547   }
5548      break;
5549  
5550 <  case 439:
5551 <
5552 < /* Line 1455 of yacc.c  */
6682 < #line 2715 "ircd_parser.y"
5550 >  case 401:
5551 > /* Line 1787 of yacc.c  */
5552 > #line 2117 "conf_parser.y"
5553      {
5554 <  if (conf_parser_ctx.pass == 2)
6685 <  {
6686 <    if (not_atom)ClearConfAllowAutoConn(yy_aconf);
6687 <    else SetConfAllowAutoConn(yy_aconf);
6688 <  }
6689 < }
5554 >  if (conf_parser_ctx.pass != 2)
5555      break;
5556  
5557 <  case 440:
5558 <
5559 < /* Line 1455 of yacc.c  */
5560 < #line 2722 "ircd_parser.y"
5561 <    {
5562 <  if (conf_parser_ctx.pass == 2)
6698 <  {
6699 <    if (not_atom)ClearConfAwayBurst(yy_aconf);
6700 <    else SetConfAwayBurst(yy_aconf);
6701 <  }
5557 >  if ((yyvsp[(3) - (4)].string)[0] == ':')
5558 >    conf_error_report("Server passwords cannot begin with a colon");
5559 >  else if (strchr((yyvsp[(3) - (4)].string), ' ') != NULL)
5560 >    conf_error_report("Server passwords cannot contain spaces");
5561 >  else
5562 >    strlcpy(block_state.rpass.buf, yylval.string, sizeof(block_state.rpass.buf));
5563   }
5564      break;
5565  
5566 <  case 441:
5567 <
5568 < /* Line 1455 of yacc.c  */
6708 < #line 2729 "ircd_parser.y"
5566 >  case 402:
5567 > /* Line 1787 of yacc.c  */
5568 > #line 2130 "conf_parser.y"
5569      {
5570    if (conf_parser_ctx.pass == 2)
5571 <  {
6712 <    if (not_atom)ClearConfTopicBurst(yy_aconf);
6713 <    else SetConfTopicBurst(yy_aconf);
6714 <  }
5571 >    block_state.port.value = (yyvsp[(3) - (4)].number);
5572   }
5573      break;
5574  
5575 <  case 442:
5576 <
5577 < /* Line 1455 of yacc.c  */
6721 < #line 2739 "ircd_parser.y"
5575 >  case 403:
5576 > /* Line 1787 of yacc.c  */
5577 > #line 2136 "conf_parser.y"
5578      {
6723 #ifdef HAVE_LIBCRYPTO
5579    if (conf_parser_ctx.pass == 2)
5580 <  {
6726 <    BIO *file;
6727 <
6728 <    if (yy_aconf->rsa_public_key != NULL)
6729 <    {
6730 <      RSA_free(yy_aconf->rsa_public_key);
6731 <      yy_aconf->rsa_public_key = NULL;
6732 <    }
6733 <
6734 <    if (yy_aconf->rsa_public_key_file != NULL)
6735 <    {
6736 <      MyFree(yy_aconf->rsa_public_key_file);
6737 <      yy_aconf->rsa_public_key_file = NULL;
6738 <    }
6739 <
6740 <    DupString(yy_aconf->rsa_public_key_file, yylval.string);
6741 <
6742 <    if ((file = BIO_new_file(yylval.string, "r")) == NULL)
6743 <    {
6744 <      yyerror("Ignoring rsa_public_key_file -- file doesn't exist");
6745 <      break;
6746 <    }
6747 <
6748 <    yy_aconf->rsa_public_key = (RSA *)PEM_read_bio_RSA_PUBKEY(file, NULL, 0, NULL);
6749 <
6750 <    if (yy_aconf->rsa_public_key == NULL)
6751 <    {
6752 <      yyerror("Ignoring rsa_public_key_file -- Key invalid; check key syntax.");
6753 <      break;
6754 <    }
6755 <      
6756 <    BIO_set_close(file, BIO_CLOSE);
6757 <    BIO_free(file);
6758 <  }
6759 < #endif /* HAVE_LIBCRYPTO */
5580 >    block_state.aftype.value = AF_INET;
5581   }
5582      break;
5583  
5584 <  case 443:
5585 <
5586 < /* Line 1455 of yacc.c  */
6766 < #line 2780 "ircd_parser.y"
5584 >  case 404:
5585 > /* Line 1787 of yacc.c  */
5586 > #line 2140 "conf_parser.y"
5587      {
5588 + #ifdef IPV6
5589    if (conf_parser_ctx.pass == 2)
5590 <  {
5591 <    if (yylval.number)
6771 <      yy_aconf->flags |= CONF_FLAGS_ENCRYPTED;
6772 <    else
6773 <      yy_aconf->flags &= ~CONF_FLAGS_ENCRYPTED;
6774 <  }
5590 >    block_state.aftype.value = AF_INET6;
5591 > #endif
5592   }
5593      break;
5594  
5595 <  case 444:
5596 <
5597 < /* Line 1455 of yacc.c  */
6781 < #line 2791 "ircd_parser.y"
5595 >  case 405:
5596 > /* Line 1787 of yacc.c  */
5597 > #line 2148 "conf_parser.y"
5598      {
5599 <  if (conf_parser_ctx.pass == 2)
6784 <  {
6785 <    if (yylval.number)
6786 <      yy_aconf->flags |= CONF_FLAGS_CRYPTLINK;
6787 <    else
6788 <      yy_aconf->flags &= ~CONF_FLAGS_CRYPTLINK;
6789 <  }
5599 >  block_state.flags.value &= CONF_FLAGS_ENCRYPTED;
5600   }
5601      break;
5602  
5603 <  case 445:
5604 <
5605 < /* Line 1455 of yacc.c  */
6796 < #line 2802 "ircd_parser.y"
5603 >  case 409:
5604 > /* Line 1787 of yacc.c  */
5605 > #line 2154 "conf_parser.y"
5606      {
5607    if (conf_parser_ctx.pass == 2)
5608 <  {
6800 <    if (yylval.number)
6801 < #ifndef HAVE_LIBZ
6802 <      yyerror("Ignoring compressed=yes; -- no zlib support");
6803 < #else
6804 <      yy_aconf->flags |= CONF_FLAGS_COMPRESSED;
6805 < #endif
6806 <    else
6807 <      yy_aconf->flags &= ~CONF_FLAGS_COMPRESSED;
6808 <  }
5608 >    block_state.flags.value |= CONF_FLAGS_ALLOW_AUTO_CONN;
5609   }
5610      break;
5611  
5612 <  case 446:
5613 <
5614 < /* Line 1455 of yacc.c  */
6815 < #line 2817 "ircd_parser.y"
5612 >  case 410:
5613 > /* Line 1787 of yacc.c  */
5614 > #line 2158 "conf_parser.y"
5615      {
5616    if (conf_parser_ctx.pass == 2)
5617 <  {
6819 <    if (yylval.number)
6820 <      yy_aconf->flags |= CONF_FLAGS_ALLOW_AUTO_CONN;
6821 <    else
6822 <      yy_aconf->flags &= ~CONF_FLAGS_ALLOW_AUTO_CONN;
6823 <  }
5617 >    block_state.flags.value |= CONF_FLAGS_SSL;
5618   }
5619      break;
5620  
5621 <  case 447:
5622 <
5623 < /* Line 1455 of yacc.c  */
6830 < #line 2828 "ircd_parser.y"
5621 >  case 411:
5622 > /* Line 1787 of yacc.c  */
5623 > #line 2164 "conf_parser.y"
5624      {
5625    if (conf_parser_ctx.pass == 2)
5626    {
5627      if (yylval.number)
5628 <      SetConfTopicBurst(yy_aconf);
5628 >      block_state.flags.value |= CONF_FLAGS_ENCRYPTED;
5629      else
5630 <      ClearConfTopicBurst(yy_aconf);
5630 >      block_state.flags.value &= ~CONF_FLAGS_ENCRYPTED;
5631    }
5632   }
5633      break;
5634  
5635 <  case 448:
5636 <
5637 < /* Line 1455 of yacc.c  */
6845 < #line 2839 "ircd_parser.y"
5635 >  case 412:
5636 > /* Line 1787 of yacc.c  */
5637 > #line 2175 "conf_parser.y"
5638      {
5639    if (conf_parser_ctx.pass == 2)
5640 <  {
6849 <    struct CollectItem *yy_tmp;
6850 <
6851 <    yy_tmp = (struct CollectItem *)MyMalloc(sizeof(struct CollectItem));
6852 <    DupString(yy_tmp->host, yylval.string);
6853 <    DupString(yy_tmp->user, "*");
6854 <    dlinkAdd(yy_tmp, &yy_tmp->node, &hub_conf_list);
6855 <  }
5640 >    dlinkAdd(xstrdup(yylval.string), make_dlink_node(), &block_state.hub.list);
5641   }
5642      break;
5643  
5644 <  case 449:
5645 <
5646 < /* Line 1455 of yacc.c  */
6862 < #line 2852 "ircd_parser.y"
5644 >  case 413:
5645 > /* Line 1787 of yacc.c  */
5646 > #line 2181 "conf_parser.y"
5647      {
5648    if (conf_parser_ctx.pass == 2)
5649 <  {
6866 <    struct CollectItem *yy_tmp;
6867 <
6868 <    yy_tmp = (struct CollectItem *)MyMalloc(sizeof(struct CollectItem));
6869 <    DupString(yy_tmp->host, yylval.string);
6870 <    DupString(yy_tmp->user, "*");
6871 <    dlinkAdd(yy_tmp, &yy_tmp->node, &leaf_conf_list);
6872 <  }
5649 >    dlinkAdd(xstrdup(yylval.string), make_dlink_node(), &block_state.leaf.list);
5650   }
5651      break;
5652  
5653 <  case 450:
5654 <
5655 < /* Line 1455 of yacc.c  */
6879 < #line 2865 "ircd_parser.y"
5653 >  case 414:
5654 > /* Line 1787 of yacc.c  */
5655 > #line 2187 "conf_parser.y"
5656      {
5657    if (conf_parser_ctx.pass == 2)
5658 <  {
6883 <    MyFree(class_name);
6884 <    DupString(class_name, yylval.string);
6885 <  }
5658 >    strlcpy(block_state.class.buf, yylval.string, sizeof(block_state.class.buf));
5659   }
5660      break;
5661  
5662 <  case 451:
5663 <
5664 < /* Line 1455 of yacc.c  */
6892 < #line 2874 "ircd_parser.y"
5662 >  case 415:
5663 > /* Line 1787 of yacc.c  */
5664 > #line 2193 "conf_parser.y"
5665      {
5666   #ifdef HAVE_LIBCRYPTO
5667    if (conf_parser_ctx.pass == 2)
5668 <  {
6897 <    struct EncCapability *ecap;
6898 <    const char *cipher_name;
6899 <    int found = 0;
6900 <
6901 <    yy_aconf->cipher_preference = NULL;
6902 <    cipher_name = yylval.string;
6903 <
6904 <    for (ecap = CipherTable; ecap->name; ecap++)
6905 <    {
6906 <      if ((irccmp(ecap->name, cipher_name) == 0) &&
6907 <          (ecap->cap & CAP_ENC_MASK))
6908 <      {
6909 <        yy_aconf->cipher_preference = ecap;
6910 <        found = 1;
6911 <        break;
6912 <      }
6913 <    }
6914 <
6915 <    if (!found)
6916 <      yyerror("Invalid cipher");
6917 <  }
5668 >    strlcpy(block_state.ciph.buf, yylval.string, sizeof(block_state.ciph.buf));
5669   #else
5670    if (conf_parser_ctx.pass == 2)
5671 <    yyerror("Ignoring cipher_preference -- no OpenSSL support");
5671 >    conf_error_report("Ignoring connect::ciphers -- no OpenSSL support");
5672   #endif
5673   }
5674      break;
5675  
5676 <  case 452:
5677 <
5678 < /* Line 1455 of yacc.c  */
6928 < #line 2909 "ircd_parser.y"
5676 >  case 416:
5677 > /* Line 1787 of yacc.c  */
5678 > #line 2208 "conf_parser.y"
5679      {
5680    if (conf_parser_ctx.pass == 2)
5681 <  {
6932 <    userbuf[0] = hostbuf[0] = reasonbuf[0] = '\0';
6933 <    regex_ban = 0;
6934 <  }
5681 >    reset_block_state();
5682   }
5683      break;
5684  
5685 <  case 453:
5686 <
5687 < /* Line 1455 of yacc.c  */
6941 < #line 2916 "ircd_parser.y"
6942 <    {
6943 <  if (conf_parser_ctx.pass == 2)
6944 <  {
6945 <    if (userbuf[0] && hostbuf[0])
5685 >  case 417:
5686 > /* Line 1787 of yacc.c  */
5687 > #line 2212 "conf_parser.y"
5688      {
5689 <      if (regex_ban)
6948 <      {
6949 < #ifdef HAVE_LIBPCRE
6950 <        pcre *exp_user = NULL;
6951 <        pcre *exp_host = NULL;
6952 <        const char *errptr = NULL;
5689 >  struct MaskItem *conf = NULL;
5690  
5691 <        if (!(exp_user = ircd_pcre_compile(userbuf, &errptr)) ||
6955 <            !(exp_host = ircd_pcre_compile(hostbuf, &errptr)))
6956 <        {
6957 <          ilog(L_ERROR, "Failed to add regular expression based K-Line: %s",
6958 <               errptr);
6959 <          break;
6960 <        }
6961 <
6962 <        yy_aconf = map_to_conf(make_conf_item(RKLINE_TYPE));
6963 <        yy_aconf->regexuser = exp_user;
6964 <        yy_aconf->regexhost = exp_host;
6965 <
6966 <        DupString(yy_aconf->user, userbuf);
6967 <        DupString(yy_aconf->host, hostbuf);
6968 <
6969 <        if (reasonbuf[0])
6970 <          DupString(yy_aconf->reason, reasonbuf);
6971 <        else
6972 <          DupString(yy_aconf->reason, "No reason");
6973 < #else
6974 <        ilog(L_ERROR, "Failed to add regular expression based K-Line: no PCRE support");
6975 <        break;
6976 < #endif
6977 <      }
6978 <      else
6979 <      {
6980 <        yy_aconf = map_to_conf(make_conf_item(KLINE_TYPE));
6981 <
6982 <        DupString(yy_aconf->user, userbuf);
6983 <        DupString(yy_aconf->host, hostbuf);
6984 <
6985 <        if (reasonbuf[0])
6986 <          DupString(yy_aconf->reason, reasonbuf);
6987 <        else
6988 <          DupString(yy_aconf->reason, "No reason");
6989 <        add_conf_by_address(CONF_KILL, yy_aconf);
6990 <      }
6991 <    }
6992 <
6993 <    yy_aconf = NULL;
6994 <  }
6995 < }
5691 >  if (conf_parser_ctx.pass != 2)
5692      break;
5693  
5694 <  case 454:
5695 <
7000 < /* Line 1455 of yacc.c  */
7001 < #line 2972 "ircd_parser.y"
7002 <    {
7003 < }
5694 >  if (!block_state.user.buf[0] ||
5695 >      !block_state.host.buf[0])
5696      break;
5697  
5698 <  case 458:
5698 >  conf = conf_make(CONF_KLINE);
5699 >  conf->user = xstrdup(block_state.user.buf);
5700 >  conf->host = xstrdup(block_state.host.buf);
5701  
5702 < /* Line 1455 of yacc.c  */
5703 < #line 2977 "ircd_parser.y"
5704 <    {
5705 <  if (conf_parser_ctx.pass == 2)
5706 <    regex_ban = 1;
5702 >  if (block_state.rpass.buf[0])
5703 >    conf->reason = xstrdup(block_state.rpass.buf);
5704 >  else
5705 >    conf->reason = xstrdup(CONF_NOREASON);
5706 >  add_conf_by_address(CONF_KLINE, conf);
5707   }
5708      break;
5709  
5710 <  case 465:
5711 <
5712 < /* Line 1455 of yacc.c  */
7019 < #line 2986 "ircd_parser.y"
5710 >  case 423:
5711 > /* Line 1787 of yacc.c  */
5712 > #line 2237 "conf_parser.y"
5713      {
5714 +
5715    if (conf_parser_ctx.pass == 2)
5716    {
5717      struct split_nuh_item nuh;
5718  
5719      nuh.nuhmask  = yylval.string;
5720      nuh.nickptr  = NULL;
5721 <    nuh.userptr  = userbuf;
5722 <    nuh.hostptr  = hostbuf;
5721 >    nuh.userptr  = block_state.user.buf;
5722 >    nuh.hostptr  = block_state.host.buf;
5723  
5724      nuh.nicksize = 0;
5725 <    nuh.usersize = sizeof(userbuf);
5726 <    nuh.hostsize = sizeof(hostbuf);
5725 >    nuh.usersize = sizeof(block_state.user.buf);
5726 >    nuh.hostsize = sizeof(block_state.host.buf);
5727  
5728      split_nuh(&nuh);
5729    }
5730   }
5731      break;
5732  
5733 <  case 466:
5734 <
5735 < /* Line 1455 of yacc.c  */
7042 < #line 3005 "ircd_parser.y"
5733 >  case 424:
5734 > /* Line 1787 of yacc.c  */
5735 > #line 2257 "conf_parser.y"
5736      {
5737    if (conf_parser_ctx.pass == 2)
5738 <    strlcpy(reasonbuf, yylval.string, sizeof(reasonbuf));
5738 >    strlcpy(block_state.rpass.buf, yylval.string, sizeof(block_state.rpass.buf));
5739   }
5740      break;
5741  
5742 <  case 467:
5743 <
5744 < /* Line 1455 of yacc.c  */
7052 < #line 3014 "ircd_parser.y"
5742 >  case 425:
5743 > /* Line 1787 of yacc.c  */
5744 > #line 2266 "conf_parser.y"
5745      {
5746    if (conf_parser_ctx.pass == 2)
5747 <    hostbuf[0] = reasonbuf[0] = '\0';
5747 >    reset_block_state();
5748   }
5749      break;
5750  
5751 <  case 468:
5752 <
5753 < /* Line 1455 of yacc.c  */
7062 < #line 3018 "ircd_parser.y"
5751 >  case 426:
5752 > /* Line 1787 of yacc.c  */
5753 > #line 2270 "conf_parser.y"
5754      {
5755 <  if (conf_parser_ctx.pass == 2)
5755 >  struct MaskItem *conf = NULL;
5756 >
5757 >  if (conf_parser_ctx.pass != 2)
5758 >    break;
5759 >
5760 >  if (!block_state.addr.buf[0])
5761 >    break;
5762 >
5763 >  if (parse_netmask(block_state.addr.buf, NULL, NULL) != HM_HOST)
5764    {
5765 <    if (hostbuf[0] && parse_netmask(hostbuf, NULL, NULL) != HM_HOST)
5766 <    {
7068 <      yy_aconf = map_to_conf(make_conf_item(DLINE_TYPE));
7069 <      DupString(yy_aconf->host, hostbuf);
5765 >    conf = conf_make(CONF_DLINE);
5766 >    conf->host = xstrdup(block_state.addr.buf);
5767  
5768 <      if (reasonbuf[0])
5769 <        DupString(yy_aconf->reason, reasonbuf);
5770 <      else
5771 <        DupString(yy_aconf->reason, "No reason");
5772 <      add_conf_by_address(CONF_DLINE, yy_aconf);
7076 <      yy_aconf = NULL;
7077 <    }
5768 >    if (block_state.rpass.buf[0])
5769 >      conf->reason = xstrdup(block_state.rpass.buf);
5770 >    else
5771 >      conf->reason = xstrdup(CONF_NOREASON);
5772 >    add_conf_by_address(CONF_DLINE, conf);
5773    }
5774   }
5775      break;
5776  
5777 <  case 474:
5778 <
5779 < /* Line 1455 of yacc.c  */
7085 < #line 3040 "ircd_parser.y"
5777 >  case 432:
5778 > /* Line 1787 of yacc.c  */
5779 > #line 2296 "conf_parser.y"
5780      {
5781    if (conf_parser_ctx.pass == 2)
5782 <    strlcpy(hostbuf, yylval.string, sizeof(hostbuf));
5782 >    strlcpy(block_state.addr.buf, yylval.string, sizeof(block_state.addr.buf));
5783   }
5784      break;
5785  
5786 <  case 475:
5787 <
5788 < /* Line 1455 of yacc.c  */
7095 < #line 3046 "ircd_parser.y"
5786 >  case 433:
5787 > /* Line 1787 of yacc.c  */
5788 > #line 2302 "conf_parser.y"
5789      {
5790    if (conf_parser_ctx.pass == 2)
5791 <    strlcpy(reasonbuf, yylval.string, sizeof(reasonbuf));
5791 >    strlcpy(block_state.rpass.buf, yylval.string, sizeof(block_state.rpass.buf));
5792   }
5793      break;
5794  
5795 <  case 481:
5796 <
5797 < /* Line 1455 of yacc.c  */
7105 < #line 3060 "ircd_parser.y"
5795 >  case 439:
5796 > /* Line 1787 of yacc.c  */
5797 > #line 2316 "conf_parser.y"
5798      {
5799    if (conf_parser_ctx.pass == 2)
5800    {
5801      if (yylval.string[0] && parse_netmask(yylval.string, NULL, NULL) != HM_HOST)
5802      {
5803 <      yy_aconf = map_to_conf(make_conf_item(EXEMPTDLINE_TYPE));
5804 <      DupString(yy_aconf->host, yylval.string);
5803 >      struct MaskItem *conf = conf_make(CONF_EXEMPT);
5804 >      conf->host = xstrdup(yylval.string);
5805  
5806 <      add_conf_by_address(CONF_EXEMPTDLINE, yy_aconf);
7115 <      yy_aconf = NULL;
5806 >      add_conf_by_address(CONF_EXEMPT, conf);
5807      }
5808    }
5809   }
5810      break;
5811  
5812 <  case 482:
5813 <
5814 < /* Line 1455 of yacc.c  */
7124 < #line 3078 "ircd_parser.y"
5812 >  case 440:
5813 > /* Line 1787 of yacc.c  */
5814 > #line 2333 "conf_parser.y"
5815      {
5816    if (conf_parser_ctx.pass == 2)
5817 <  {
7128 <    regex_ban = 0;
7129 <    reasonbuf[0] = gecos_name[0] = '\0';
7130 <  }
5817 >    reset_block_state();
5818   }
5819      break;
5820  
5821 <  case 483:
5822 <
5823 < /* Line 1455 of yacc.c  */
7137 < #line 3085 "ircd_parser.y"
7138 <    {
7139 <  if (conf_parser_ctx.pass == 2)
7140 <  {
7141 <    if (gecos_name[0])
5821 >  case 441:
5822 > /* Line 1787 of yacc.c  */
5823 > #line 2337 "conf_parser.y"
5824      {
5825 <      if (regex_ban)
7144 <      {
7145 < #ifdef HAVE_LIBPCRE
7146 <        pcre *exp_p = NULL;
7147 <        const char *errptr = NULL;
5825 >  struct MaskItem *conf = NULL;
5826  
5827 <        if (!(exp_p = ircd_pcre_compile(gecos_name, &errptr)))
7150 <        {
7151 <          ilog(L_ERROR, "Failed to add regular expression based X-Line: %s",
7152 <               errptr);
7153 <          break;
7154 <        }
7155 <
7156 <        yy_conf = make_conf_item(RXLINE_TYPE);
7157 <        yy_conf->regexpname = exp_p;
7158 < #else
7159 <        ilog(L_ERROR, "Failed to add regular expression based X-Line: no PCRE support");
7160 <        break;
7161 < #endif
7162 <      }
7163 <      else
7164 <        yy_conf = make_conf_item(XLINE_TYPE);
7165 <
7166 <      yy_match_item = map_to_conf(yy_conf);
7167 <      DupString(yy_conf->name, gecos_name);
7168 <
7169 <      if (reasonbuf[0])
7170 <        DupString(yy_match_item->reason, reasonbuf);
7171 <      else
7172 <        DupString(yy_match_item->reason, "No reason");
7173 <    }
7174 <  }
7175 < }
5827 >  if (conf_parser_ctx.pass != 2)
5828      break;
5829  
5830 <  case 484:
7179 <
7180 < /* Line 1455 of yacc.c  */
7181 < #line 3125 "ircd_parser.y"
7182 <    {
7183 < }
5830 >  if (!block_state.name.buf[0])
5831      break;
5832  
5833 <  case 488:
5833 >  conf = conf_make(CONF_XLINE);
5834 >  conf->name = xstrdup(block_state.name.buf);
5835  
5836 < /* Line 1455 of yacc.c  */
5837 < #line 3130 "ircd_parser.y"
5838 <    {
5839 <  if (conf_parser_ctx.pass == 2)
7192 <    regex_ban = 1;
5836 >  if (block_state.rpass.buf[0])
5837 >    conf->reason = xstrdup(block_state.rpass.buf);
5838 >  else
5839 >    conf->reason = xstrdup(CONF_NOREASON);
5840   }
5841      break;
5842  
5843 <  case 495:
5844 <
5845 < /* Line 1455 of yacc.c  */
7199 < #line 3139 "ircd_parser.y"
5843 >  case 447:
5844 > /* Line 1787 of yacc.c  */
5845 > #line 2359 "conf_parser.y"
5846      {
5847    if (conf_parser_ctx.pass == 2)
5848 <    strlcpy(gecos_name, yylval.string, sizeof(gecos_name));
5848 >    strlcpy(block_state.name.buf, yylval.string, sizeof(block_state.name.buf));
5849   }
5850      break;
5851  
5852 <  case 496:
5853 <
5854 < /* Line 1455 of yacc.c  */
7209 < #line 3145 "ircd_parser.y"
5852 >  case 448:
5853 > /* Line 1787 of yacc.c  */
5854 > #line 2365 "conf_parser.y"
5855      {
5856    if (conf_parser_ctx.pass == 2)
5857 <    strlcpy(reasonbuf, yylval.string, sizeof(reasonbuf));
5857 >    strlcpy(block_state.rpass.buf, yylval.string, sizeof(block_state.rpass.buf));
5858   }
5859      break;
5860  
5861 <  case 557:
5862 <
5863 < /* Line 1455 of yacc.c  */
7219 < #line 3190 "ircd_parser.y"
5861 >  case 501:
5862 > /* Line 1787 of yacc.c  */
5863 > #line 2409 "conf_parser.y"
5864      {
5865    ConfigFileEntry.max_watch = (yyvsp[(3) - (4)].number);
5866   }
5867      break;
5868  
5869 <  case 558:
5870 <
5871 < /* Line 1455 of yacc.c  */
7228 < #line 3195 "ircd_parser.y"
5869 >  case 502:
5870 > /* Line 1787 of yacc.c  */
5871 > #line 2414 "conf_parser.y"
5872      {
5873 <  ConfigFileEntry.gline_min_cidr = (yyvsp[(3) - (4)].number);
5873 >  if (conf_parser_ctx.pass == 2)
5874 >    ConfigFileEntry.glines = yylval.number;
5875   }
5876      break;
5877  
5878 <  case 559:
5879 <
5880 < /* Line 1455 of yacc.c  */
7237 < #line 3200 "ircd_parser.y"
5878 >  case 503:
5879 > /* Line 1787 of yacc.c  */
5880 > #line 2420 "conf_parser.y"
5881      {
5882 <  ConfigFileEntry.gline_min_cidr6 = (yyvsp[(3) - (4)].number);
5882 >  if (conf_parser_ctx.pass == 2)
5883 >    ConfigFileEntry.gline_time = (yyvsp[(3) - (4)].number);
5884   }
5885      break;
5886  
5887 <  case 560:
5888 <
5889 < /* Line 1455 of yacc.c  */
7246 < #line 3205 "ircd_parser.y"
5887 >  case 504:
5888 > /* Line 1787 of yacc.c  */
5889 > #line 2426 "conf_parser.y"
5890      {
5891 <  ConfigFileEntry.burst_away = yylval.number;
5891 >  if (conf_parser_ctx.pass == 2)
5892 >    ConfigFileEntry.gline_request_time = (yyvsp[(3) - (4)].number);
5893   }
5894      break;
5895  
5896 <  case 561:
5897 <
5898 < /* Line 1455 of yacc.c  */
7255 < #line 3210 "ircd_parser.y"
5896 >  case 505:
5897 > /* Line 1787 of yacc.c  */
5898 > #line 2432 "conf_parser.y"
5899      {
5900 <  ConfigFileEntry.use_whois_actually = yylval.number;
5900 >  ConfigFileEntry.gline_min_cidr = (yyvsp[(3) - (4)].number);
5901   }
5902      break;
5903  
5904 <  case 562:
5905 <
5906 < /* Line 1455 of yacc.c  */
7264 < #line 3215 "ircd_parser.y"
5904 >  case 506:
5905 > /* Line 1787 of yacc.c  */
5906 > #line 2437 "conf_parser.y"
5907      {
5908 <  GlobalSetOptions.rejecttime = yylval.number;
5908 >  ConfigFileEntry.gline_min_cidr6 = (yyvsp[(3) - (4)].number);
5909   }
5910      break;
5911  
5912 <  case 563:
5913 <
5914 < /* Line 1455 of yacc.c  */
7273 < #line 3220 "ircd_parser.y"
5912 >  case 507:
5913 > /* Line 1787 of yacc.c  */
5914 > #line 2442 "conf_parser.y"
5915      {
5916    ConfigFileEntry.tkline_expire_notices = yylval.number;
5917   }
5918      break;
5919  
5920 <  case 564:
5921 <
5922 < /* Line 1455 of yacc.c  */
7282 < #line 3225 "ircd_parser.y"
5920 >  case 508:
5921 > /* Line 1787 of yacc.c  */
5922 > #line 2447 "conf_parser.y"
5923      {
5924    ConfigFileEntry.kill_chase_time_limit = (yyvsp[(3) - (4)].number);
5925   }
5926      break;
5927  
5928 <  case 565:
5929 <
5930 < /* Line 1455 of yacc.c  */
7291 < #line 3230 "ircd_parser.y"
5928 >  case 509:
5929 > /* Line 1787 of yacc.c  */
5930 > #line 2452 "conf_parser.y"
5931      {
5932    ConfigFileEntry.hide_spoof_ips = yylval.number;
5933   }
5934      break;
5935  
5936 <  case 566:
5937 <
5938 < /* Line 1455 of yacc.c  */
7300 < #line 3235 "ircd_parser.y"
5936 >  case 510:
5937 > /* Line 1787 of yacc.c  */
5938 > #line 2457 "conf_parser.y"
5939      {
5940    ConfigFileEntry.ignore_bogus_ts = yylval.number;
5941   }
5942      break;
5943  
5944 <  case 567:
5945 <
5946 < /* Line 1455 of yacc.c  */
7309 < #line 3240 "ircd_parser.y"
5944 >  case 511:
5945 > /* Line 1787 of yacc.c  */
5946 > #line 2462 "conf_parser.y"
5947      {
5948    ConfigFileEntry.disable_remote = yylval.number;
5949   }
5950      break;
5951  
5952 <  case 568:
5953 <
5954 < /* Line 1455 of yacc.c  */
7318 < #line 3245 "ircd_parser.y"
5952 >  case 512:
5953 > /* Line 1787 of yacc.c  */
5954 > #line 2467 "conf_parser.y"
5955      {
5956    ConfigFileEntry.failed_oper_notice = yylval.number;
5957   }
5958      break;
5959  
5960 <  case 569:
5961 <
5962 < /* Line 1455 of yacc.c  */
7327 < #line 3250 "ircd_parser.y"
5960 >  case 513:
5961 > /* Line 1787 of yacc.c  */
5962 > #line 2472 "conf_parser.y"
5963      {
5964    ConfigFileEntry.anti_nick_flood = yylval.number;
5965   }
5966      break;
5967  
5968 <  case 570:
5969 <
5970 < /* Line 1455 of yacc.c  */
7336 < #line 3255 "ircd_parser.y"
5968 >  case 514:
5969 > /* Line 1787 of yacc.c  */
5970 > #line 2477 "conf_parser.y"
5971      {
5972    ConfigFileEntry.max_nick_time = (yyvsp[(3) - (4)].number);
5973   }
5974      break;
5975  
5976 <  case 571:
5977 <
5978 < /* Line 1455 of yacc.c  */
7345 < #line 3260 "ircd_parser.y"
5976 >  case 515:
5977 > /* Line 1787 of yacc.c  */
5978 > #line 2482 "conf_parser.y"
5979      {
5980    ConfigFileEntry.max_nick_changes = (yyvsp[(3) - (4)].number);
5981   }
5982      break;
5983  
5984 <  case 572:
5985 <
5986 < /* Line 1455 of yacc.c  */
7354 < #line 3265 "ircd_parser.y"
5984 >  case 516:
5985 > /* Line 1787 of yacc.c  */
5986 > #line 2487 "conf_parser.y"
5987      {
5988    ConfigFileEntry.max_accept = (yyvsp[(3) - (4)].number);
5989   }
5990      break;
5991  
5992 <  case 573:
5993 <
5994 < /* Line 1455 of yacc.c  */
7363 < #line 3270 "ircd_parser.y"
5992 >  case 517:
5993 > /* Line 1787 of yacc.c  */
5994 > #line 2492 "conf_parser.y"
5995      {
5996    ConfigFileEntry.anti_spam_exit_message_time = (yyvsp[(3) - (4)].number);
5997   }
5998      break;
5999  
6000 <  case 574:
6001 <
6002 < /* Line 1455 of yacc.c  */
7372 < #line 3275 "ircd_parser.y"
6000 >  case 518:
6001 > /* Line 1787 of yacc.c  */
6002 > #line 2497 "conf_parser.y"
6003      {
6004    ConfigFileEntry.ts_warn_delta = (yyvsp[(3) - (4)].number);
6005   }
6006      break;
6007  
6008 <  case 575:
6009 <
6010 < /* Line 1455 of yacc.c  */
7381 < #line 3280 "ircd_parser.y"
6008 >  case 519:
6009 > /* Line 1787 of yacc.c  */
6010 > #line 2502 "conf_parser.y"
6011      {
6012    if (conf_parser_ctx.pass == 2)
6013      ConfigFileEntry.ts_max_delta = (yyvsp[(3) - (4)].number);
6014   }
6015      break;
6016  
6017 <  case 576:
6018 <
6019 < /* Line 1455 of yacc.c  */
7391 < #line 3286 "ircd_parser.y"
6017 >  case 520:
6018 > /* Line 1787 of yacc.c  */
6019 > #line 2508 "conf_parser.y"
6020      {
6021    if (((yyvsp[(3) - (4)].number) > 0) && conf_parser_ctx.pass == 1)
6022    {
6023 <    ilog(L_CRIT, "You haven't read your config file properly.");
6024 <    ilog(L_CRIT, "There is a line in the example conf that will kill your server if not removed.");
6025 <    ilog(L_CRIT, "Consider actually reading/editing the conf file, and removing this line.");
6023 >    ilog(LOG_TYPE_IRCD, "You haven't read your config file properly.");
6024 >    ilog(LOG_TYPE_IRCD, "There is a line in the example conf that will kill your server if not removed.");
6025 >    ilog(LOG_TYPE_IRCD, "Consider actually reading/editing the conf file, and removing this line.");
6026      exit(0);
6027    }
6028   }
6029      break;
6030  
6031 <  case 577:
6032 <
6033 < /* Line 1455 of yacc.c  */
7406 < #line 3297 "ircd_parser.y"
7407 <    {
7408 <  ConfigFileEntry.kline_with_reason = yylval.number;
7409 < }
7410 <    break;
7411 <
7412 <  case 578:
7413 <
7414 < /* Line 1455 of yacc.c  */
7415 < #line 3302 "ircd_parser.y"
7416 <    {
7417 <  if (conf_parser_ctx.pass == 2)
7418 <  {
7419 <    MyFree(ConfigFileEntry.kline_reason);
7420 <    DupString(ConfigFileEntry.kline_reason, yylval.string);
7421 <  }
7422 < }
7423 <    break;
7424 <
7425 <  case 579:
7426 <
7427 < /* Line 1455 of yacc.c  */
7428 < #line 3311 "ircd_parser.y"
6031 >  case 521:
6032 > /* Line 1787 of yacc.c  */
6033 > #line 2519 "conf_parser.y"
6034      {
6035    ConfigFileEntry.invisible_on_connect = yylval.number;
6036   }
6037      break;
6038  
6039 <  case 580:
6040 <
6041 < /* Line 1455 of yacc.c  */
7437 < #line 3316 "ircd_parser.y"
6039 >  case 522:
6040 > /* Line 1787 of yacc.c  */
6041 > #line 2524 "conf_parser.y"
6042      {
6043    ConfigFileEntry.warn_no_nline = yylval.number;
6044   }
6045      break;
6046  
6047 <  case 581:
6048 <
6049 < /* Line 1455 of yacc.c  */
7446 < #line 3321 "ircd_parser.y"
6047 >  case 523:
6048 > /* Line 1787 of yacc.c  */
6049 > #line 2529 "conf_parser.y"
6050      {
6051    ConfigFileEntry.stats_e_disabled = yylval.number;
6052   }
6053      break;
6054  
6055 <  case 582:
6056 <
6057 < /* Line 1455 of yacc.c  */
7455 < #line 3326 "ircd_parser.y"
6055 >  case 524:
6056 > /* Line 1787 of yacc.c  */
6057 > #line 2534 "conf_parser.y"
6058      {
6059    ConfigFileEntry.stats_o_oper_only = yylval.number;
6060   }
6061      break;
6062  
6063 <  case 583:
6064 <
6065 < /* Line 1455 of yacc.c  */
7464 < #line 3331 "ircd_parser.y"
6063 >  case 525:
6064 > /* Line 1787 of yacc.c  */
6065 > #line 2539 "conf_parser.y"
6066      {
6067    ConfigFileEntry.stats_P_oper_only = yylval.number;
6068   }
6069      break;
6070  
6071 <  case 584:
6072 <
6073 < /* Line 1455 of yacc.c  */
7473 < #line 3336 "ircd_parser.y"
6071 >  case 526:
6072 > /* Line 1787 of yacc.c  */
6073 > #line 2544 "conf_parser.y"
6074      {
6075    ConfigFileEntry.stats_k_oper_only = 2 * yylval.number;
6076   }
6077      break;
6078  
6079 <  case 585:
6080 <
6081 < /* Line 1455 of yacc.c  */
7482 < #line 3339 "ircd_parser.y"
6079 >  case 527:
6080 > /* Line 1787 of yacc.c  */
6081 > #line 2547 "conf_parser.y"
6082      {
6083    ConfigFileEntry.stats_k_oper_only = 1;
6084   }
6085      break;
6086  
6087 <  case 586:
6088 <
6089 < /* Line 1455 of yacc.c  */
7491 < #line 3344 "ircd_parser.y"
6087 >  case 528:
6088 > /* Line 1787 of yacc.c  */
6089 > #line 2552 "conf_parser.y"
6090      {
6091    ConfigFileEntry.stats_i_oper_only = 2 * yylval.number;
6092   }
6093      break;
6094  
6095 <  case 587:
6096 <
6097 < /* Line 1455 of yacc.c  */
7500 < #line 3347 "ircd_parser.y"
6095 >  case 529:
6096 > /* Line 1787 of yacc.c  */
6097 > #line 2555 "conf_parser.y"
6098      {
6099    ConfigFileEntry.stats_i_oper_only = 1;
6100   }
6101      break;
6102  
6103 <  case 588:
6104 <
6105 < /* Line 1455 of yacc.c  */
7509 < #line 3352 "ircd_parser.y"
6103 >  case 530:
6104 > /* Line 1787 of yacc.c  */
6105 > #line 2560 "conf_parser.y"
6106      {
6107    ConfigFileEntry.pace_wait = (yyvsp[(3) - (4)].number);
6108   }
6109      break;
6110  
6111 <  case 589:
6112 <
6113 < /* Line 1455 of yacc.c  */
7518 < #line 3357 "ircd_parser.y"
6111 >  case 531:
6112 > /* Line 1787 of yacc.c  */
6113 > #line 2565 "conf_parser.y"
6114      {
6115    ConfigFileEntry.caller_id_wait = (yyvsp[(3) - (4)].number);
6116   }
6117      break;
6118  
6119 <  case 590:
6120 <
6121 < /* Line 1455 of yacc.c  */
7527 < #line 3362 "ircd_parser.y"
6119 >  case 532:
6120 > /* Line 1787 of yacc.c  */
6121 > #line 2570 "conf_parser.y"
6122      {
6123    ConfigFileEntry.opers_bypass_callerid = yylval.number;
6124   }
6125      break;
6126  
6127 <  case 591:
6128 <
6129 < /* Line 1455 of yacc.c  */
7536 < #line 3367 "ircd_parser.y"
6127 >  case 533:
6128 > /* Line 1787 of yacc.c  */
6129 > #line 2575 "conf_parser.y"
6130      {
6131    ConfigFileEntry.pace_wait_simple = (yyvsp[(3) - (4)].number);
6132   }
6133      break;
6134  
6135 <  case 592:
6136 <
6137 < /* Line 1455 of yacc.c  */
7545 < #line 3372 "ircd_parser.y"
6135 >  case 534:
6136 > /* Line 1787 of yacc.c  */
6137 > #line 2580 "conf_parser.y"
6138      {
6139    ConfigFileEntry.short_motd = yylval.number;
6140   }
6141      break;
6142  
6143 <  case 593:
6144 <
6145 < /* Line 1455 of yacc.c  */
7554 < #line 3377 "ircd_parser.y"
6143 >  case 535:
6144 > /* Line 1787 of yacc.c  */
6145 > #line 2585 "conf_parser.y"
6146      {
6147    ConfigFileEntry.no_oper_flood = yylval.number;
6148   }
6149      break;
6150  
6151 <  case 594:
6152 <
6153 < /* Line 1455 of yacc.c  */
7563 < #line 3382 "ircd_parser.y"
6151 >  case 536:
6152 > /* Line 1787 of yacc.c  */
6153 > #line 2590 "conf_parser.y"
6154      {
6155    ConfigFileEntry.true_no_oper_flood = yylval.number;
6156   }
6157      break;
6158  
6159 <  case 595:
6160 <
6161 < /* Line 1455 of yacc.c  */
7572 < #line 3387 "ircd_parser.y"
6159 >  case 537:
6160 > /* Line 1787 of yacc.c  */
6161 > #line 2595 "conf_parser.y"
6162      {
6163    ConfigFileEntry.oper_pass_resv = yylval.number;
6164   }
6165      break;
6166  
6167 <  case 596:
6168 <
6169 < /* Line 1455 of yacc.c  */
7581 < #line 3392 "ircd_parser.y"
7582 <    {
7583 <  if (conf_parser_ctx.pass == 2)
7584 <  {
7585 <    if (strlen(yylval.string) > LOCALE_LENGTH-2)
7586 <      yylval.string[LOCALE_LENGTH-1] = '\0';
7587 <
7588 <    set_locale(yylval.string);
7589 <  }
7590 < }
7591 <    break;
7592 <
7593 <  case 597:
7594 <
7595 < /* Line 1455 of yacc.c  */
7596 < #line 3403 "ircd_parser.y"
7597 <    {
7598 <  ConfigFileEntry.idletime = (yyvsp[(3) - (4)].number);
7599 < }
7600 <    break;
7601 <
7602 <  case 598:
7603 <
7604 < /* Line 1455 of yacc.c  */
7605 < #line 3408 "ircd_parser.y"
6167 >  case 538:
6168 > /* Line 1787 of yacc.c  */
6169 > #line 2600 "conf_parser.y"
6170      {
6171    ConfigFileEntry.dots_in_ident = (yyvsp[(3) - (4)].number);
6172   }
6173      break;
6174  
6175 <  case 599:
6176 <
6177 < /* Line 1455 of yacc.c  */
7614 < #line 3413 "ircd_parser.y"
6175 >  case 539:
6176 > /* Line 1787 of yacc.c  */
6177 > #line 2605 "conf_parser.y"
6178      {
6179    ConfigFileEntry.max_targets = (yyvsp[(3) - (4)].number);
6180   }
6181      break;
6182  
6183 <  case 600:
6184 <
6185 < /* Line 1455 of yacc.c  */
7623 < #line 3418 "ircd_parser.y"
6183 >  case 540:
6184 > /* Line 1787 of yacc.c  */
6185 > #line 2610 "conf_parser.y"
6186      {
6187 <  if (conf_parser_ctx.pass == 2)
7626 <  {
7627 <    MyFree(ConfigFileEntry.servlink_path);
7628 <    DupString(ConfigFileEntry.servlink_path, yylval.string);
7629 <  }
7630 < }
7631 <    break;
7632 <
7633 <  case 601:
7634 <
7635 < /* Line 1455 of yacc.c  */
7636 < #line 3427 "ircd_parser.y"
7637 <    {
7638 < #ifdef HAVE_LIBCRYPTO
7639 <  if (conf_parser_ctx.pass == 2)
7640 <  {
7641 <    struct EncCapability *ecap;
7642 <    const char *cipher_name;
7643 <    int found = 0;
7644 <
7645 <    ConfigFileEntry.default_cipher_preference = NULL;
7646 <    cipher_name = yylval.string;
7647 <
7648 <    for (ecap = CipherTable; ecap->name; ecap++)
7649 <    {
7650 <      if ((irccmp(ecap->name, cipher_name) == 0) &&
7651 <          (ecap->cap & CAP_ENC_MASK))
7652 <      {
7653 <        ConfigFileEntry.default_cipher_preference = ecap;
7654 <        found = 1;
7655 <        break;
7656 <      }
7657 <    }
7658 <
7659 <    if (!found)
7660 <      yyerror("Invalid cipher");
7661 <  }
7662 < #else
7663 <  if (conf_parser_ctx.pass == 2)
7664 <    yyerror("Ignoring default_cipher_preference -- no OpenSSL support");
7665 < #endif
6187 >  ConfigFileEntry.use_egd = yylval.number;
6188   }
6189      break;
6190  
6191 <  case 602:
6192 <
6193 < /* Line 1455 of yacc.c  */
7672 < #line 3459 "ircd_parser.y"
6191 >  case 541:
6192 > /* Line 1787 of yacc.c  */
6193 > #line 2615 "conf_parser.y"
6194      {
6195    if (conf_parser_ctx.pass == 2)
6196    {
6197 <    ConfigFileEntry.compression_level = (yyvsp[(3) - (4)].number);
6198 < #ifndef HAVE_LIBZ
7678 <    yyerror("Ignoring compression_level -- no zlib support");
7679 < #else
7680 <    if ((ConfigFileEntry.compression_level < 1) ||
7681 <        (ConfigFileEntry.compression_level > 9))
7682 <    {
7683 <      yyerror("Ignoring invalid compression_level, using default");
7684 <      ConfigFileEntry.compression_level = 0;
7685 <    }
7686 < #endif
6197 >    MyFree(ConfigFileEntry.egdpool_path);
6198 >    ConfigFileEntry.egdpool_path = xstrdup(yylval.string);
6199    }
6200   }
6201      break;
6202  
6203 <  case 603:
6204 <
6205 < /* Line 1455 of yacc.c  */
7694 < #line 3477 "ircd_parser.y"
6203 >  case 542:
6204 > /* Line 1787 of yacc.c  */
6205 > #line 2624 "conf_parser.y"
6206      {
6207 <  ConfigFileEntry.use_egd = yylval.number;
7697 < }
7698 <    break;
7699 <
7700 <  case 604:
7701 <
7702 < /* Line 1455 of yacc.c  */
7703 < #line 3482 "ircd_parser.y"
7704 <    {
7705 <  if (conf_parser_ctx.pass == 2)
6207 >  if (conf_parser_ctx.pass == 2 && valid_servname(yylval.string))
6208    {
6209 <    MyFree(ConfigFileEntry.egdpool_path);
6210 <    DupString(ConfigFileEntry.egdpool_path, yylval.string);
6209 >    MyFree(ConfigFileEntry.service_name);
6210 >    ConfigFileEntry.service_name = xstrdup(yylval.string);
6211    }
6212   }
6213      break;
6214  
6215 <  case 605:
6216 <
6217 < /* Line 1455 of yacc.c  */
7716 < #line 3491 "ircd_parser.y"
6215 >  case 543:
6216 > /* Line 1787 of yacc.c  */
6217 > #line 2633 "conf_parser.y"
6218      {
6219    ConfigFileEntry.ping_cookie = yylval.number;
6220   }
6221      break;
6222  
6223 <  case 606:
6224 <
6225 < /* Line 1455 of yacc.c  */
7725 < #line 3496 "ircd_parser.y"
6223 >  case 544:
6224 > /* Line 1787 of yacc.c  */
6225 > #line 2638 "conf_parser.y"
6226      {
6227    ConfigFileEntry.disable_auth = yylval.number;
6228   }
6229      break;
6230  
6231 <  case 607:
6232 <
6233 < /* Line 1455 of yacc.c  */
7734 < #line 3501 "ircd_parser.y"
6231 >  case 545:
6232 > /* Line 1787 of yacc.c  */
6233 > #line 2643 "conf_parser.y"
6234      {
6235    ConfigFileEntry.throttle_time = yylval.number;
6236   }
6237      break;
6238  
6239 <  case 608:
6240 <
6241 < /* Line 1455 of yacc.c  */
7743 < #line 3506 "ircd_parser.y"
6239 >  case 546:
6240 > /* Line 1787 of yacc.c  */
6241 > #line 2648 "conf_parser.y"
6242      {
6243    ConfigFileEntry.oper_umodes = 0;
6244   }
6245      break;
6246  
6247 <  case 612:
6248 <
6249 < /* Line 1455 of yacc.c  */
7752 < #line 3512 "ircd_parser.y"
6247 >  case 550:
6248 > /* Line 1787 of yacc.c  */
6249 > #line 2654 "conf_parser.y"
6250      {
6251    ConfigFileEntry.oper_umodes |= UMODE_BOTS;
6252   }
6253      break;
6254  
6255 <  case 613:
6256 <
6257 < /* Line 1455 of yacc.c  */
7761 < #line 3515 "ircd_parser.y"
6255 >  case 551:
6256 > /* Line 1787 of yacc.c  */
6257 > #line 2657 "conf_parser.y"
6258      {
6259    ConfigFileEntry.oper_umodes |= UMODE_CCONN;
6260   }
6261      break;
6262  
6263 <  case 614:
6264 <
6265 < /* Line 1455 of yacc.c  */
7770 < #line 3518 "ircd_parser.y"
7771 <    {
7772 <  ConfigFileEntry.oper_umodes |= UMODE_CCONN_FULL;
7773 < }
7774 <    break;
7775 <
7776 <  case 615:
7777 <
7778 < /* Line 1455 of yacc.c  */
7779 < #line 3521 "ircd_parser.y"
6263 >  case 552:
6264 > /* Line 1787 of yacc.c  */
6265 > #line 2660 "conf_parser.y"
6266      {
6267    ConfigFileEntry.oper_umodes |= UMODE_DEAF;
6268   }
6269      break;
6270  
6271 <  case 616:
6272 <
6273 < /* Line 1455 of yacc.c  */
7788 < #line 3524 "ircd_parser.y"
6271 >  case 553:
6272 > /* Line 1787 of yacc.c  */
6273 > #line 2663 "conf_parser.y"
6274      {
6275    ConfigFileEntry.oper_umodes |= UMODE_DEBUG;
6276   }
6277      break;
6278  
6279 <  case 617:
6280 <
6281 < /* Line 1455 of yacc.c  */
7797 < #line 3527 "ircd_parser.y"
6279 >  case 554:
6280 > /* Line 1787 of yacc.c  */
6281 > #line 2666 "conf_parser.y"
6282      {
6283    ConfigFileEntry.oper_umodes |= UMODE_FULL;
6284   }
6285      break;
6286  
6287 <  case 618:
6287 >  case 555:
6288 > /* Line 1787 of yacc.c  */
6289 > #line 2669 "conf_parser.y"
6290 >    {
6291 >  ConfigFileEntry.oper_umodes |= UMODE_HIDDEN;
6292 > }
6293 >    break;
6294  
6295 < /* Line 1455 of yacc.c  */
6296 < #line 3530 "ircd_parser.y"
6295 >  case 556:
6296 > /* Line 1787 of yacc.c  */
6297 > #line 2672 "conf_parser.y"
6298      {
6299    ConfigFileEntry.oper_umodes |= UMODE_SKILL;
6300   }
6301      break;
6302  
6303 <  case 619:
6304 <
6305 < /* Line 1455 of yacc.c  */
7815 < #line 3533 "ircd_parser.y"
6303 >  case 557:
6304 > /* Line 1787 of yacc.c  */
6305 > #line 2675 "conf_parser.y"
6306      {
6307    ConfigFileEntry.oper_umodes |= UMODE_NCHANGE;
6308   }
6309      break;
6310  
6311 <  case 620:
6312 <
6313 < /* Line 1455 of yacc.c  */
7824 < #line 3536 "ircd_parser.y"
6311 >  case 558:
6312 > /* Line 1787 of yacc.c  */
6313 > #line 2678 "conf_parser.y"
6314      {
6315    ConfigFileEntry.oper_umodes |= UMODE_REJ;
6316   }
6317      break;
6318  
6319 <  case 621:
6320 <
6321 < /* Line 1455 of yacc.c  */
7833 < #line 3539 "ircd_parser.y"
6319 >  case 559:
6320 > /* Line 1787 of yacc.c  */
6321 > #line 2681 "conf_parser.y"
6322      {
6323    ConfigFileEntry.oper_umodes |= UMODE_UNAUTH;
6324   }
6325      break;
6326  
6327 <  case 622:
6328 <
6329 < /* Line 1455 of yacc.c  */
7842 < #line 3542 "ircd_parser.y"
6327 >  case 560:
6328 > /* Line 1787 of yacc.c  */
6329 > #line 2684 "conf_parser.y"
6330      {
6331    ConfigFileEntry.oper_umodes |= UMODE_SPY;
6332   }
6333      break;
6334  
6335 <  case 623:
6336 <
6337 < /* Line 1455 of yacc.c  */
7851 < #line 3545 "ircd_parser.y"
6335 >  case 561:
6336 > /* Line 1787 of yacc.c  */
6337 > #line 2687 "conf_parser.y"
6338      {
6339    ConfigFileEntry.oper_umodes |= UMODE_EXTERNAL;
6340   }
6341      break;
6342  
6343 <  case 624:
6344 <
6345 < /* Line 1455 of yacc.c  */
7860 < #line 3548 "ircd_parser.y"
6343 >  case 562:
6344 > /* Line 1787 of yacc.c  */
6345 > #line 2690 "conf_parser.y"
6346      {
6347    ConfigFileEntry.oper_umodes |= UMODE_OPERWALL;
6348   }
6349      break;
6350  
6351 <  case 625:
6352 <
6353 < /* Line 1455 of yacc.c  */
7869 < #line 3551 "ircd_parser.y"
6351 >  case 563:
6352 > /* Line 1787 of yacc.c  */
6353 > #line 2693 "conf_parser.y"
6354      {
6355    ConfigFileEntry.oper_umodes |= UMODE_SERVNOTICE;
6356   }
6357      break;
6358  
6359 <  case 626:
6360 <
6361 < /* Line 1455 of yacc.c  */
7878 < #line 3554 "ircd_parser.y"
6359 >  case 564:
6360 > /* Line 1787 of yacc.c  */
6361 > #line 2696 "conf_parser.y"
6362      {
6363    ConfigFileEntry.oper_umodes |= UMODE_INVISIBLE;
6364   }
6365      break;
6366  
6367 <  case 627:
6368 <
6369 < /* Line 1455 of yacc.c  */
7887 < #line 3557 "ircd_parser.y"
6367 >  case 565:
6368 > /* Line 1787 of yacc.c  */
6369 > #line 2699 "conf_parser.y"
6370      {
6371    ConfigFileEntry.oper_umodes |= UMODE_WALLOP;
6372   }
6373      break;
6374  
6375 <  case 628:
6376 <
6377 < /* Line 1455 of yacc.c  */
7896 < #line 3560 "ircd_parser.y"
6375 >  case 566:
6376 > /* Line 1787 of yacc.c  */
6377 > #line 2702 "conf_parser.y"
6378      {
6379    ConfigFileEntry.oper_umodes |= UMODE_SOFTCALLERID;
6380   }
6381      break;
6382  
6383 <  case 629:
6384 <
6385 < /* Line 1455 of yacc.c  */
7905 < #line 3563 "ircd_parser.y"
6383 >  case 567:
6384 > /* Line 1787 of yacc.c  */
6385 > #line 2705 "conf_parser.y"
6386      {
6387    ConfigFileEntry.oper_umodes |= UMODE_CALLERID;
6388   }
6389      break;
6390  
6391 <  case 630:
6392 <
6393 < /* Line 1455 of yacc.c  */
7914 < #line 3566 "ircd_parser.y"
6391 >  case 568:
6392 > /* Line 1787 of yacc.c  */
6393 > #line 2708 "conf_parser.y"
6394      {
6395    ConfigFileEntry.oper_umodes |= UMODE_LOCOPS;
6396   }
6397      break;
6398  
6399 <  case 631:
6400 <
6401 < /* Line 1455 of yacc.c  */
7923 < #line 3571 "ircd_parser.y"
6399 >  case 569:
6400 > /* Line 1787 of yacc.c  */
6401 > #line 2711 "conf_parser.y"
6402      {
6403 <  ConfigFileEntry.oper_only_umodes = 0;
6403 >  ConfigFileEntry.oper_umodes |= UMODE_REGONLY;
6404   }
6405      break;
6406  
6407 <  case 635:
6408 <
6409 < /* Line 1455 of yacc.c  */
7932 < #line 3577 "ircd_parser.y"
6407 >  case 570:
6408 > /* Line 1787 of yacc.c  */
6409 > #line 2714 "conf_parser.y"
6410      {
6411 <  ConfigFileEntry.oper_only_umodes |= UMODE_BOTS;
6411 >  ConfigFileEntry.oper_umodes |= UMODE_FARCONNECT;
6412   }
6413      break;
6414  
6415 <  case 636:
6416 <
6417 < /* Line 1455 of yacc.c  */
7941 < #line 3580 "ircd_parser.y"
6415 >  case 571:
6416 > /* Line 1787 of yacc.c  */
6417 > #line 2719 "conf_parser.y"
6418      {
6419 <  ConfigFileEntry.oper_only_umodes |= UMODE_CCONN;
6419 >  ConfigFileEntry.oper_only_umodes = 0;
6420   }
6421      break;
6422  
6423 <  case 637:
6424 <
6425 < /* Line 1455 of yacc.c  */
7950 < #line 3583 "ircd_parser.y"
6423 >  case 575:
6424 > /* Line 1787 of yacc.c  */
6425 > #line 2725 "conf_parser.y"
6426      {
6427 <  ConfigFileEntry.oper_only_umodes |= UMODE_CCONN_FULL;
6427 >  ConfigFileEntry.oper_only_umodes |= UMODE_BOTS;
6428   }
6429      break;
6430  
6431 <  case 638:
6431 >  case 576:
6432 > /* Line 1787 of yacc.c  */
6433 > #line 2728 "conf_parser.y"
6434 >    {
6435 >  ConfigFileEntry.oper_only_umodes |= UMODE_CCONN;
6436 > }
6437 >    break;
6438  
6439 < /* Line 1455 of yacc.c  */
6440 < #line 3586 "ircd_parser.y"
6439 >  case 577:
6440 > /* Line 1787 of yacc.c  */
6441 > #line 2731 "conf_parser.y"
6442      {
6443    ConfigFileEntry.oper_only_umodes |= UMODE_DEAF;
6444   }
6445      break;
6446  
6447 <  case 639:
6448 <
6449 < /* Line 1455 of yacc.c  */
7968 < #line 3589 "ircd_parser.y"
6447 >  case 578:
6448 > /* Line 1787 of yacc.c  */
6449 > #line 2734 "conf_parser.y"
6450      {
6451    ConfigFileEntry.oper_only_umodes |= UMODE_DEBUG;
6452   }
6453      break;
6454  
6455 <  case 640:
6456 <
6457 < /* Line 1455 of yacc.c  */
7977 < #line 3592 "ircd_parser.y"
6455 >  case 579:
6456 > /* Line 1787 of yacc.c  */
6457 > #line 2737 "conf_parser.y"
6458      {
6459    ConfigFileEntry.oper_only_umodes |= UMODE_FULL;
6460   }
6461      break;
6462  
6463 <  case 641:
6464 <
6465 < /* Line 1455 of yacc.c  */
7986 < #line 3595 "ircd_parser.y"
6463 >  case 580:
6464 > /* Line 1787 of yacc.c  */
6465 > #line 2740 "conf_parser.y"
6466      {
6467    ConfigFileEntry.oper_only_umodes |= UMODE_SKILL;
6468   }
6469      break;
6470  
6471 <  case 642:
6471 >  case 581:
6472 > /* Line 1787 of yacc.c  */
6473 > #line 2743 "conf_parser.y"
6474 >    {
6475 >  ConfigFileEntry.oper_only_umodes |= UMODE_HIDDEN;
6476 > }
6477 >    break;
6478  
6479 < /* Line 1455 of yacc.c  */
6480 < #line 3598 "ircd_parser.y"
6479 >  case 582:
6480 > /* Line 1787 of yacc.c  */
6481 > #line 2746 "conf_parser.y"
6482      {
6483    ConfigFileEntry.oper_only_umodes |= UMODE_NCHANGE;
6484   }
6485      break;
6486  
6487 <  case 643:
6488 <
6489 < /* Line 1455 of yacc.c  */
8004 < #line 3601 "ircd_parser.y"
6487 >  case 583:
6488 > /* Line 1787 of yacc.c  */
6489 > #line 2749 "conf_parser.y"
6490      {
6491    ConfigFileEntry.oper_only_umodes |= UMODE_REJ;
6492   }
6493      break;
6494  
6495 <  case 644:
6496 <
6497 < /* Line 1455 of yacc.c  */
8013 < #line 3604 "ircd_parser.y"
6495 >  case 584:
6496 > /* Line 1787 of yacc.c  */
6497 > #line 2752 "conf_parser.y"
6498      {
6499    ConfigFileEntry.oper_only_umodes |= UMODE_UNAUTH;
6500   }
6501      break;
6502  
6503 <  case 645:
6504 <
6505 < /* Line 1455 of yacc.c  */
8022 < #line 3607 "ircd_parser.y"
6503 >  case 585:
6504 > /* Line 1787 of yacc.c  */
6505 > #line 2755 "conf_parser.y"
6506      {
6507    ConfigFileEntry.oper_only_umodes |= UMODE_SPY;
6508   }
6509      break;
6510  
6511 <  case 646:
6512 <
6513 < /* Line 1455 of yacc.c  */
8031 < #line 3610 "ircd_parser.y"
6511 >  case 586:
6512 > /* Line 1787 of yacc.c  */
6513 > #line 2758 "conf_parser.y"
6514      {
6515    ConfigFileEntry.oper_only_umodes |= UMODE_EXTERNAL;
6516   }
6517      break;
6518  
6519 <  case 647:
6520 <
6521 < /* Line 1455 of yacc.c  */
8040 < #line 3613 "ircd_parser.y"
6519 >  case 587:
6520 > /* Line 1787 of yacc.c  */
6521 > #line 2761 "conf_parser.y"
6522      {
6523    ConfigFileEntry.oper_only_umodes |= UMODE_OPERWALL;
6524   }
6525      break;
6526  
6527 <  case 648:
6528 <
6529 < /* Line 1455 of yacc.c  */
8049 < #line 3616 "ircd_parser.y"
6527 >  case 588:
6528 > /* Line 1787 of yacc.c  */
6529 > #line 2764 "conf_parser.y"
6530      {
6531    ConfigFileEntry.oper_only_umodes |= UMODE_SERVNOTICE;
6532   }
6533      break;
6534  
6535 <  case 649:
6536 <
6537 < /* Line 1455 of yacc.c  */
8058 < #line 3619 "ircd_parser.y"
6535 >  case 589:
6536 > /* Line 1787 of yacc.c  */
6537 > #line 2767 "conf_parser.y"
6538      {
6539    ConfigFileEntry.oper_only_umodes |= UMODE_INVISIBLE;
6540   }
6541      break;
6542  
6543 <  case 650:
6544 <
6545 < /* Line 1455 of yacc.c  */
8067 < #line 3622 "ircd_parser.y"
6543 >  case 590:
6544 > /* Line 1787 of yacc.c  */
6545 > #line 2770 "conf_parser.y"
6546      {
6547    ConfigFileEntry.oper_only_umodes |= UMODE_WALLOP;
6548   }
6549      break;
6550  
6551 <  case 651:
6552 <
6553 < /* Line 1455 of yacc.c  */
8076 < #line 3625 "ircd_parser.y"
6551 >  case 591:
6552 > /* Line 1787 of yacc.c  */
6553 > #line 2773 "conf_parser.y"
6554      {
6555    ConfigFileEntry.oper_only_umodes |= UMODE_SOFTCALLERID;
6556   }
6557      break;
6558  
6559 <  case 652:
6560 <
6561 < /* Line 1455 of yacc.c  */
8085 < #line 3628 "ircd_parser.y"
6559 >  case 592:
6560 > /* Line 1787 of yacc.c  */
6561 > #line 2776 "conf_parser.y"
6562      {
6563    ConfigFileEntry.oper_only_umodes |= UMODE_CALLERID;
6564   }
6565      break;
6566  
6567 <  case 653:
6568 <
6569 < /* Line 1455 of yacc.c  */
8094 < #line 3631 "ircd_parser.y"
6567 >  case 593:
6568 > /* Line 1787 of yacc.c  */
6569 > #line 2779 "conf_parser.y"
6570      {
6571    ConfigFileEntry.oper_only_umodes |= UMODE_LOCOPS;
6572   }
6573      break;
6574  
6575 <  case 654:
6576 <
6577 < /* Line 1455 of yacc.c  */
8103 < #line 3636 "ircd_parser.y"
8104 <    {
8105 <  ConfigFileEntry.min_nonwildcard = (yyvsp[(3) - (4)].number);
8106 < }
8107 <    break;
8108 <
8109 <  case 655:
8110 <
8111 < /* Line 1455 of yacc.c  */
8112 < #line 3641 "ircd_parser.y"
8113 <    {
8114 <  ConfigFileEntry.min_nonwildcard_simple = (yyvsp[(3) - (4)].number);
8115 < }
8116 <    break;
8117 <
8118 <  case 656:
8119 <
8120 < /* Line 1455 of yacc.c  */
8121 < #line 3646 "ircd_parser.y"
8122 <    {
8123 <  ConfigFileEntry.default_floodcount = (yyvsp[(3) - (4)].number);
8124 < }
8125 <    break;
8126 <
8127 <  case 657:
8128 <
8129 < /* Line 1455 of yacc.c  */
8130 < #line 3651 "ircd_parser.y"
8131 <    {
8132 <  ConfigFileEntry.client_flood = (yyvsp[(3) - (4)].number);
8133 < }
8134 <    break;
8135 <
8136 <  case 658:
8137 <
8138 < /* Line 1455 of yacc.c  */
8139 < #line 3656 "ircd_parser.y"
8140 <    {
8141 <  ConfigFileEntry.dot_in_ip6_addr = yylval.number;
8142 < }
8143 <    break;
8144 <
8145 <  case 659:
8146 <
8147 < /* Line 1455 of yacc.c  */
8148 < #line 3664 "ircd_parser.y"
8149 <    {
8150 <  if (conf_parser_ctx.pass == 2)
8151 <  {
8152 <    yy_conf = make_conf_item(GDENY_TYPE);
8153 <    yy_aconf = map_to_conf(yy_conf);
8154 <  }
8155 < }
8156 <    break;
8157 <
8158 <  case 660:
8159 <
8160 < /* Line 1455 of yacc.c  */
8161 < #line 3671 "ircd_parser.y"
8162 <    {
8163 <  if (conf_parser_ctx.pass == 2)
8164 <  {
8165 <    /*
8166 <     * since we re-allocate yy_conf/yy_aconf after the end of action=, at the
8167 <     * end we will have one extra, so we should free it.
8168 <     */
8169 <    if (yy_conf->name == NULL || yy_aconf->user == NULL)
8170 <    {
8171 <      delete_conf_item(yy_conf);
8172 <      yy_conf = NULL;
8173 <      yy_aconf = NULL;
8174 <    }
8175 <  }
8176 < }
8177 <    break;
8178 <
8179 <  case 670:
8180 <
8181 < /* Line 1455 of yacc.c  */
8182 < #line 3697 "ircd_parser.y"
8183 <    {
8184 <  if (conf_parser_ctx.pass == 2)
8185 <    ConfigFileEntry.glines = yylval.number;
8186 < }
8187 <    break;
8188 <
8189 <  case 671:
8190 <
8191 < /* Line 1455 of yacc.c  */
8192 < #line 3703 "ircd_parser.y"
8193 <    {
8194 <  if (conf_parser_ctx.pass == 2)
8195 <    ConfigFileEntry.gline_time = (yyvsp[(3) - (4)].number);
8196 < }
8197 <    break;
8198 <
8199 <  case 672:
8200 <
8201 < /* Line 1455 of yacc.c  */
8202 < #line 3709 "ircd_parser.y"
8203 <    {
8204 <  if (conf_parser_ctx.pass == 2)
8205 <    ConfigFileEntry.gline_logging = 0;
8206 < }
8207 <    break;
8208 <
8209 <  case 676:
8210 <
8211 < /* Line 1455 of yacc.c  */
8212 < #line 3715 "ircd_parser.y"
8213 <    {
8214 <  if (conf_parser_ctx.pass == 2)
8215 <    ConfigFileEntry.gline_logging |= GDENY_REJECT;
8216 < }
8217 <    break;
8218 <
8219 <  case 677:
8220 <
8221 < /* Line 1455 of yacc.c  */
8222 < #line 3719 "ircd_parser.y"
8223 <    {
8224 <  if (conf_parser_ctx.pass == 2)
8225 <    ConfigFileEntry.gline_logging |= GDENY_BLOCK;
8226 < }
8227 <    break;
8228 <
8229 <  case 678:
8230 <
8231 < /* Line 1455 of yacc.c  */
8232 < #line 3725 "ircd_parser.y"
8233 <    {
8234 <  if (conf_parser_ctx.pass == 2)
8235 <  {
8236 <    struct split_nuh_item nuh;
8237 <
8238 <    nuh.nuhmask  = yylval.string;
8239 <    nuh.nickptr  = NULL;
8240 <    nuh.userptr  = userbuf;
8241 <    nuh.hostptr  = hostbuf;
8242 <
8243 <    nuh.nicksize = 0;
8244 <    nuh.usersize = sizeof(userbuf);
8245 <    nuh.hostsize = sizeof(hostbuf);
8246 <
8247 <    split_nuh(&nuh);
8248 <
8249 <    if (yy_aconf->user == NULL)
8250 <    {
8251 <      DupString(yy_aconf->user, userbuf);
8252 <      DupString(yy_aconf->host, hostbuf);
8253 <    }
8254 <    else
6575 >  case 594:
6576 > /* Line 1787 of yacc.c  */
6577 > #line 2782 "conf_parser.y"
6578      {
6579 <      struct CollectItem *yy_tmp = MyMalloc(sizeof(struct CollectItem));
8257 <
8258 <      DupString(yy_tmp->user, userbuf);
8259 <      DupString(yy_tmp->host, hostbuf);
8260 <
8261 <      dlinkAdd(yy_tmp, &yy_tmp->node, &col_conf_list);
8262 <    }
8263 <  }
6579 >  ConfigFileEntry.oper_only_umodes |= UMODE_REGONLY;
6580   }
6581      break;
6582  
6583 <  case 679:
6584 <
6585 < /* Line 1455 of yacc.c  */
8270 < #line 3759 "ircd_parser.y"
6583 >  case 595:
6584 > /* Line 1787 of yacc.c  */
6585 > #line 2785 "conf_parser.y"
6586      {
6587 <  if (conf_parser_ctx.pass == 2)  
8273 <  {
8274 <    MyFree(yy_conf->name);
8275 <    DupString(yy_conf->name, yylval.string);
8276 <  }
6587 >  ConfigFileEntry.oper_only_umodes |= UMODE_FARCONNECT;
6588   }
6589      break;
6590  
6591 <  case 680:
6592 <
6593 < /* Line 1455 of yacc.c  */
8283 < #line 3768 "ircd_parser.y"
8284 <    {
8285 <  if (conf_parser_ctx.pass == 2)
8286 <    yy_aconf->flags = 0;
8287 < }
8288 <    break;
8289 <
8290 <  case 681:
8291 <
8292 < /* Line 1455 of yacc.c  */
8293 < #line 3772 "ircd_parser.y"
8294 <    {
8295 <  if (conf_parser_ctx.pass == 2)
8296 <  {
8297 <    struct CollectItem *yy_tmp = NULL;
8298 <    dlink_node *ptr, *next_ptr;
8299 <
8300 <    DLINK_FOREACH_SAFE(ptr, next_ptr, col_conf_list.head)
6591 >  case 596:
6592 > /* Line 1787 of yacc.c  */
6593 > #line 2790 "conf_parser.y"
6594      {
6595 <      struct AccessItem *new_aconf;
8303 <      struct ConfItem *new_conf;
8304 <
8305 <      yy_tmp = ptr->data;
8306 <      new_conf = make_conf_item(GDENY_TYPE);
8307 <      new_aconf = map_to_conf(new_conf);
8308 <
8309 <      new_aconf->flags = yy_aconf->flags;
8310 <
8311 <      if (yy_conf->name != NULL)
8312 <        DupString(new_conf->name, yy_conf->name);
8313 <      else
8314 <        DupString(new_conf->name, "*");
8315 <      if (yy_aconf->user != NULL)
8316 <         DupString(new_aconf->user, yy_tmp->user);
8317 <      else  
8318 <        DupString(new_aconf->user, "*");
8319 <      if (yy_aconf->host != NULL)
8320 <        DupString(new_aconf->host, yy_tmp->host);
8321 <      else
8322 <        DupString(new_aconf->host, "*");
8323 <
8324 <      dlinkDelete(&yy_tmp->node, &col_conf_list);
8325 <    }
8326 <
8327 <    /*
8328 <     * In case someone has fed us with more than one action= after user/name
8329 <     * which would leak memory  -Michael
8330 <     */
8331 <    if (yy_conf->name == NULL || yy_aconf->user == NULL)
8332 <      delete_conf_item(yy_conf);
8333 <
8334 <    yy_conf = make_conf_item(GDENY_TYPE);
8335 <    yy_aconf = map_to_conf(yy_conf);
8336 <  }
6595 >  ConfigFileEntry.min_nonwildcard = (yyvsp[(3) - (4)].number);
6596   }
6597      break;
6598  
6599 <  case 684:
6600 <
6601 < /* Line 1455 of yacc.c  */
8343 < #line 3819 "ircd_parser.y"
6599 >  case 597:
6600 > /* Line 1787 of yacc.c  */
6601 > #line 2795 "conf_parser.y"
6602      {
6603 <  if (conf_parser_ctx.pass == 2)
8346 <    yy_aconf->flags |= GDENY_REJECT;
6603 >  ConfigFileEntry.min_nonwildcard_simple = (yyvsp[(3) - (4)].number);
6604   }
6605      break;
6606  
6607 <  case 685:
6608 <
6609 < /* Line 1455 of yacc.c  */
8353 < #line 3823 "ircd_parser.y"
6607 >  case 598:
6608 > /* Line 1787 of yacc.c  */
6609 > #line 2800 "conf_parser.y"
6610      {
6611 <  if (conf_parser_ctx.pass == 2)
8356 <    yy_aconf->flags |= GDENY_BLOCK;
6611 >  ConfigFileEntry.default_floodcount = (yyvsp[(3) - (4)].number);
6612   }
6613      break;
6614  
6615 <  case 708:
6616 <
6617 < /* Line 1455 of yacc.c  */
8363 < #line 3847 "ircd_parser.y"
6615 >  case 615:
6616 > /* Line 1787 of yacc.c  */
6617 > #line 2823 "conf_parser.y"
6618      {
6619    ConfigChannel.disable_fake_channels = yylval.number;
6620   }
6621      break;
6622  
6623 <  case 709:
6624 <
6625 < /* Line 1455 of yacc.c  */
8372 < #line 3852 "ircd_parser.y"
8373 <    {
8374 <  ConfigChannel.restrict_channels = yylval.number;
8375 < }
8376 <    break;
8377 <
8378 <  case 710:
8379 <
8380 < /* Line 1455 of yacc.c  */
8381 < #line 3857 "ircd_parser.y"
8382 <    {
8383 <  ConfigChannel.disable_local_channels = yylval.number;
8384 < }
8385 <    break;
8386 <
8387 <  case 711:
8388 <
8389 < /* Line 1455 of yacc.c  */
8390 < #line 3862 "ircd_parser.y"
8391 <    {
8392 <  ConfigChannel.use_except = yylval.number;
8393 < }
8394 <    break;
8395 <
8396 <  case 712:
8397 <
8398 < /* Line 1455 of yacc.c  */
8399 < #line 3867 "ircd_parser.y"
8400 <    {
8401 <  ConfigChannel.use_invex = yylval.number;
8402 < }
8403 <    break;
8404 <
8405 <  case 713:
8406 <
8407 < /* Line 1455 of yacc.c  */
8408 < #line 3872 "ircd_parser.y"
8409 <    {
8410 <  ConfigChannel.use_knock = yylval.number;
8411 < }
8412 <    break;
8413 <
8414 <  case 714:
8415 <
8416 < /* Line 1455 of yacc.c  */
8417 < #line 3877 "ircd_parser.y"
6623 >  case 616:
6624 > /* Line 1787 of yacc.c  */
6625 > #line 2828 "conf_parser.y"
6626      {
6627    ConfigChannel.knock_delay = (yyvsp[(3) - (4)].number);
6628   }
6629      break;
6630  
6631 <  case 715:
6632 <
6633 < /* Line 1455 of yacc.c  */
8426 < #line 3882 "ircd_parser.y"
6631 >  case 617:
6632 > /* Line 1787 of yacc.c  */
6633 > #line 2833 "conf_parser.y"
6634      {
6635    ConfigChannel.knock_delay_channel = (yyvsp[(3) - (4)].number);
6636   }
6637      break;
6638  
6639 <  case 716:
6640 <
6641 < /* Line 1455 of yacc.c  */
8435 < #line 3887 "ircd_parser.y"
6639 >  case 618:
6640 > /* Line 1787 of yacc.c  */
6641 > #line 2838 "conf_parser.y"
6642      {
6643    ConfigChannel.max_chans_per_user = (yyvsp[(3) - (4)].number);
6644   }
6645      break;
6646  
6647 <  case 717:
6648 <
6649 < /* Line 1455 of yacc.c  */
8444 < #line 3892 "ircd_parser.y"
6647 >  case 619:
6648 > /* Line 1787 of yacc.c  */
6649 > #line 2843 "conf_parser.y"
6650      {
6651 <  ConfigChannel.quiet_on_ban = yylval.number;
6651 >  ConfigChannel.max_chans_per_oper = (yyvsp[(3) - (4)].number);
6652   }
6653      break;
6654  
6655 <  case 718:
6656 <
6657 < /* Line 1455 of yacc.c  */
8453 < #line 3897 "ircd_parser.y"
6655 >  case 620:
6656 > /* Line 1787 of yacc.c  */
6657 > #line 2848 "conf_parser.y"
6658      {
6659    ConfigChannel.max_bans = (yyvsp[(3) - (4)].number);
6660   }
6661      break;
6662  
6663 <  case 719:
6664 <
6665 < /* Line 1455 of yacc.c  */
8462 < #line 3902 "ircd_parser.y"
6663 >  case 621:
6664 > /* Line 1787 of yacc.c  */
6665 > #line 2853 "conf_parser.y"
6666      {
6667    ConfigChannel.default_split_user_count = (yyvsp[(3) - (4)].number);
6668   }
6669      break;
6670  
6671 <  case 720:
6672 <
6673 < /* Line 1455 of yacc.c  */
8471 < #line 3907 "ircd_parser.y"
6671 >  case 622:
6672 > /* Line 1787 of yacc.c  */
6673 > #line 2858 "conf_parser.y"
6674      {
6675    ConfigChannel.default_split_server_count = (yyvsp[(3) - (4)].number);
6676   }
6677      break;
6678  
6679 <  case 721:
6680 <
6681 < /* Line 1455 of yacc.c  */
8480 < #line 3912 "ircd_parser.y"
6679 >  case 623:
6680 > /* Line 1787 of yacc.c  */
6681 > #line 2863 "conf_parser.y"
6682      {
6683    ConfigChannel.no_create_on_split = yylval.number;
6684   }
6685      break;
6686  
6687 <  case 722:
6688 <
6689 < /* Line 1455 of yacc.c  */
8489 < #line 3917 "ircd_parser.y"
6687 >  case 624:
6688 > /* Line 1787 of yacc.c  */
6689 > #line 2868 "conf_parser.y"
6690      {
6691    ConfigChannel.no_join_on_split = yylval.number;
6692   }
6693      break;
6694  
6695 <  case 723:
6696 <
6697 < /* Line 1455 of yacc.c  */
8498 < #line 3922 "ircd_parser.y"
8499 <    {
8500 <  ConfigChannel.burst_topicwho = yylval.number;
8501 < }
8502 <    break;
8503 <
8504 <  case 724:
8505 <
8506 < /* Line 1455 of yacc.c  */
8507 < #line 3927 "ircd_parser.y"
6695 >  case 625:
6696 > /* Line 1787 of yacc.c  */
6697 > #line 2873 "conf_parser.y"
6698      {
6699    GlobalSetOptions.joinfloodcount = yylval.number;
6700   }
6701      break;
6702  
6703 <  case 725:
6704 <
6705 < /* Line 1455 of yacc.c  */
8516 < #line 3932 "ircd_parser.y"
6703 >  case 626:
6704 > /* Line 1787 of yacc.c  */
6705 > #line 2878 "conf_parser.y"
6706      {
6707    GlobalSetOptions.joinfloodtime = yylval.number;
6708   }
6709      break;
6710  
6711 <  case 737:
6712 <
6713 < /* Line 1455 of yacc.c  */
8525 < #line 3951 "ircd_parser.y"
6711 >  case 638:
6712 > /* Line 1787 of yacc.c  */
6713 > #line 2897 "conf_parser.y"
6714      {
6715    if (conf_parser_ctx.pass == 2)
6716      ConfigServerHide.flatten_links = yylval.number;
6717   }
6718      break;
6719  
6720 <  case 738:
6721 <
6722 < /* Line 1455 of yacc.c  */
8535 < #line 3957 "ircd_parser.y"
6720 >  case 639:
6721 > /* Line 1787 of yacc.c  */
6722 > #line 2903 "conf_parser.y"
6723      {
6724    if (conf_parser_ctx.pass == 2)
6725      ConfigServerHide.hide_servers = yylval.number;
6726   }
6727      break;
6728  
6729 <  case 739:
6729 >  case 640:
6730 > /* Line 1787 of yacc.c  */
6731 > #line 2909 "conf_parser.y"
6732 >    {
6733 >  if (conf_parser_ctx.pass == 2)
6734 >    ConfigServerHide.hide_services = yylval.number;
6735 > }
6736 >    break;
6737  
6738 < /* Line 1455 of yacc.c  */
6739 < #line 3963 "ircd_parser.y"
6738 >  case 641:
6739 > /* Line 1787 of yacc.c  */
6740 > #line 2915 "conf_parser.y"
6741      {
6742    if (conf_parser_ctx.pass == 2)
6743    {
6744      MyFree(ConfigServerHide.hidden_name);
6745 <    DupString(ConfigServerHide.hidden_name, yylval.string);
6745 >    ConfigServerHide.hidden_name = xstrdup(yylval.string);
6746    }
6747   }
6748      break;
6749  
6750 <  case 740:
6751 <
6752 < /* Line 1455 of yacc.c  */
8558 < #line 3972 "ircd_parser.y"
6750 >  case 642:
6751 > /* Line 1787 of yacc.c  */
6752 > #line 2924 "conf_parser.y"
6753      {
6754    if (conf_parser_ctx.pass == 2)
6755    {
# Line 8570 | Line 6764 | yyreduce:
6764   }
6765      break;
6766  
6767 <  case 741:
6768 <
6769 < /* Line 1455 of yacc.c  */
8576 < #line 3986 "ircd_parser.y"
6767 >  case 643:
6768 > /* Line 1787 of yacc.c  */
6769 > #line 2938 "conf_parser.y"
6770      {
6771    if (conf_parser_ctx.pass == 2)
6772      ConfigServerHide.hidden = yylval.number;
6773   }
6774      break;
6775  
6776 <  case 742:
6777 <
6778 < /* Line 1455 of yacc.c  */
8586 < #line 3992 "ircd_parser.y"
8587 <    {
8588 <  if (conf_parser_ctx.pass == 2)
8589 <    ConfigServerHide.disable_hidden = yylval.number;
8590 < }
8591 <    break;
8592 <
8593 <  case 743:
8594 <
8595 < /* Line 1455 of yacc.c  */
8596 < #line 3998 "ircd_parser.y"
6776 >  case 644:
6777 > /* Line 1787 of yacc.c  */
6778 > #line 2944 "conf_parser.y"
6779      {
6780    if (conf_parser_ctx.pass == 2)
6781      ConfigServerHide.hide_server_ips = yylval.number;
# Line 8601 | Line 6783 | yyreduce:
6783      break;
6784  
6785  
6786 <
6787 < /* Line 1455 of yacc.c  */
8606 < #line 8607 "ircd_parser.c"
6786 > /* Line 1787 of yacc.c  */
6787 > #line 6788 "conf_parser.c"
6788        default: break;
6789      }
6790 +  /* User semantic actions sometimes alter yychar, and that requires
6791 +     that yytoken be updated with the new translation.  We take the
6792 +     approach of translating immediately before every use of yytoken.
6793 +     One alternative is translating here after every semantic action,
6794 +     but that translation would be missed if the semantic action invokes
6795 +     YYABORT, YYACCEPT, or YYERROR immediately after altering yychar or
6796 +     if it invokes YYBACKUP.  In the case of YYABORT or YYACCEPT, an
6797 +     incorrect destructor might then be invoked immediately.  In the
6798 +     case of YYERROR or YYBACKUP, subsequent parser actions might lead
6799 +     to an incorrect destructor call or verbose syntax error message
6800 +     before the lookahead is translated.  */
6801    YY_SYMBOL_PRINT ("-> $$ =", yyr1[yyn], &yyval, &yyloc);
6802  
6803    YYPOPSTACK (yylen);
# Line 8633 | Line 6825 | yyreduce:
6825   | yyerrlab -- here on detecting error |
6826   `------------------------------------*/
6827   yyerrlab:
6828 +  /* Make sure we have latest lookahead translation.  See comments at
6829 +     user semantic actions for why this is necessary.  */
6830 +  yytoken = yychar == YYEMPTY ? YYEMPTY : YYTRANSLATE (yychar);
6831 +
6832    /* If not already recovering from an error, report this error.  */
6833    if (!yyerrstatus)
6834      {
# Line 8640 | Line 6836 | yyerrlab:
6836   #if ! YYERROR_VERBOSE
6837        yyerror (YY_("syntax error"));
6838   #else
6839 + # define YYSYNTAX_ERROR yysyntax_error (&yymsg_alloc, &yymsg, \
6840 +                                        yyssp, yytoken)
6841        {
6842 <        YYSIZE_T yysize = yysyntax_error (0, yystate, yychar);
6843 <        if (yymsg_alloc < yysize && yymsg_alloc < YYSTACK_ALLOC_MAXIMUM)
6844 <          {
6845 <            YYSIZE_T yyalloc = 2 * yysize;
6846 <            if (! (yysize <= yyalloc && yyalloc <= YYSTACK_ALLOC_MAXIMUM))
6847 <              yyalloc = YYSTACK_ALLOC_MAXIMUM;
6848 <            if (yymsg != yymsgbuf)
6849 <              YYSTACK_FREE (yymsg);
6850 <            yymsg = (char *) YYSTACK_ALLOC (yyalloc);
6851 <            if (yymsg)
6852 <              yymsg_alloc = yyalloc;
6853 <            else
6854 <              {
6855 <                yymsg = yymsgbuf;
6856 <                yymsg_alloc = sizeof yymsgbuf;
6857 <              }
6858 <          }
6859 <
6860 <        if (0 < yysize && yysize <= yymsg_alloc)
6861 <          {
6862 <            (void) yysyntax_error (yymsg, yystate, yychar);
6863 <            yyerror (yymsg);
6864 <          }
6865 <        else
6866 <          {
8669 <            yyerror (YY_("syntax error"));
8670 <            if (yysize != 0)
8671 <              goto yyexhaustedlab;
8672 <          }
6842 >        char const *yymsgp = YY_("syntax error");
6843 >        int yysyntax_error_status;
6844 >        yysyntax_error_status = YYSYNTAX_ERROR;
6845 >        if (yysyntax_error_status == 0)
6846 >          yymsgp = yymsg;
6847 >        else if (yysyntax_error_status == 1)
6848 >          {
6849 >            if (yymsg != yymsgbuf)
6850 >              YYSTACK_FREE (yymsg);
6851 >            yymsg = (char *) YYSTACK_ALLOC (yymsg_alloc);
6852 >            if (!yymsg)
6853 >              {
6854 >                yymsg = yymsgbuf;
6855 >                yymsg_alloc = sizeof yymsgbuf;
6856 >                yysyntax_error_status = 2;
6857 >              }
6858 >            else
6859 >              {
6860 >                yysyntax_error_status = YYSYNTAX_ERROR;
6861 >                yymsgp = yymsg;
6862 >              }
6863 >          }
6864 >        yyerror (yymsgp);
6865 >        if (yysyntax_error_status == 2)
6866 >          goto yyexhaustedlab;
6867        }
6868 + # undef YYSYNTAX_ERROR
6869   #endif
6870      }
6871  
# Line 8729 | Line 6924 | yyerrlab1:
6924    for (;;)
6925      {
6926        yyn = yypact[yystate];
6927 <      if (yyn != YYPACT_NINF)
6927 >      if (!yypact_value_is_default (yyn))
6928          {
6929            yyn += YYTERROR;
6930            if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYTERROR)
# Line 8752 | Line 6947 | yyerrlab1:
6947        YY_STACK_PRINT (yyss, yyssp);
6948      }
6949  
6950 +  YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
6951    *++yyvsp = yylval;
6952 +  YY_IGNORE_MAYBE_UNINITIALIZED_END
6953  
6954  
6955    /* Shift the error token.  */
# Line 8776 | Line 6973 | yyabortlab:
6973    yyresult = 1;
6974    goto yyreturn;
6975  
6976 < #if !defined(yyoverflow) || YYERROR_VERBOSE
6976 > #if !defined yyoverflow || YYERROR_VERBOSE
6977   /*-------------------------------------------------.
6978   | yyexhaustedlab -- memory exhaustion comes here.  |
6979   `-------------------------------------------------*/
# Line 8788 | Line 6985 | yyexhaustedlab:
6985  
6986   yyreturn:
6987    if (yychar != YYEMPTY)
6988 <     yydestruct ("Cleanup: discarding lookahead",
6989 <                 yytoken, &yylval);
6988 >    {
6989 >      /* Make sure we have latest lookahead translation.  See comments at
6990 >         user semantic actions for why this is necessary.  */
6991 >      yytoken = YYTRANSLATE (yychar);
6992 >      yydestruct ("Cleanup: discarding lookahead",
6993 >                  yytoken, &yylval);
6994 >    }
6995    /* Do not reclaim the symbols of the rule which action triggered
6996       this YYABORT or YYACCEPT.  */
6997    YYPOPSTACK (yylen);
# Line 8813 | Line 7015 | yyreturn:
7015   }
7016  
7017  
8816

Comparing:
ircd-hybrid-7.2/src/ircd_parser.c (property svn:keywords), Revision 1009 by michael, Sun Sep 13 15:02:30 2009 UTC vs.
ircd-hybrid/trunk/src/conf_parser.c (property svn:keywords), Revision 2185 by michael, Tue Jun 4 12:29:18 2013 UTC

# Line 0 | Line 1
1 + Id Revision

Diff Legend

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