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

Comparing:
ircd-hybrid-8/src/conf_parser.c (file contents), Revision 1309 by michael, Sun Mar 25 11:24:18 2012 UTC vs.
ircd-hybrid/trunk/src/conf_parser.c (file contents), Revision 1715 by michael, Mon Dec 24 15:19:32 2012 UTC

# Line 1 | Line 1
1 < /* A Bison parser, made by GNU Bison 2.5.  */
1 > /* A Bison parser, made by GNU Bison 2.7.  */
2  
3   /* Bison implementation for Yacc-like parsers in C
4    
5 <      Copyright (C) 1984, 1989-1990, 2000-2011 Free Software Foundation, Inc.
5 >      Copyright (C) 1984, 1989-1990, 2000-2012 Free Software Foundation, Inc.
6    
7     This program is free software: you can redistribute it and/or modify
8     it under the terms of the GNU General Public License as published by
# Line 44 | Line 44
44   #define YYBISON 1
45  
46   /* Bison version.  */
47 < #define YYBISON_VERSION "2.5"
47 > #define YYBISON_VERSION "2.7"
48  
49   /* Skeleton name.  */
50   #define YYSKELETON_NAME "yacc.c"
# Line 58 | Line 58
58   /* Pull parsers.  */
59   #define YYPULL 1
60  
61 /* Using locations.  */
62 #define YYLSP_NEEDED 0
61  
62  
63  
64   /* Copy the first part of user declarations.  */
65 <
66 < /* Line 268 of yacc.c  */
69 < #line 25 "ircd_parser.y"
65 > /* Line 371 of yacc.c  */
66 > #line 25 "conf_parser.y"
67  
68  
69   #define YY_NO_UNPUT
# Line 78 | Line 75
75   #include "ircd.h"
76   #include "list.h"
77   #include "conf.h"
78 + #include "conf_class.h"
79   #include "event.h"
80   #include "log.h"
81   #include "client.h"     /* for UMODE_ALL only */
# Line 100 | Line 98
98   #include <openssl/dh.h>
99   #endif
100  
101 < static char *class_name = NULL;
104 < static struct ConfItem *yy_conf = NULL;
105 < static struct AccessItem *yy_aconf = NULL;
106 < static struct MatchItem *yy_match_item = NULL;
107 < static struct ClassItem *yy_class = NULL;
108 < static char *yy_class_name = NULL;
109 <
110 < static dlink_list col_conf_list  = { NULL, NULL, 0 };
111 < static dlink_list hub_conf_list  = { NULL, NULL, 0 };
112 < static dlink_list leaf_conf_list = { NULL, NULL, 0 };
113 < static unsigned int listener_flags = 0;
114 < static unsigned int regex_ban = 0;
115 < static char userbuf[IRCD_BUFSIZE];
116 < static char hostbuf[IRCD_BUFSIZE];
117 < static char reasonbuf[REASONLEN + 1];
118 < static char gecos_name[REALLEN * 4];
119 < static char lfile[IRCD_BUFSIZE];
120 < static unsigned int ltype = 0;
121 < static unsigned int lsize = 0;
122 < static char *resv_reason = NULL;
123 < static char *listener_address = NULL;
101 > int yylex(void);
102  
103 < struct CollectItem
103 > static struct
104   {
105 <  dlink_node node;
106 <  char *name;
107 <  char *user;
108 <  char *host;
109 <  char *passwd;
110 <  int  port;
111 <  int  flags;
112 < #ifdef HAVE_LIBCRYPTO
113 <  char *rsa_public_key_file;
114 <  RSA *rsa_public_key;
115 < #endif
116 < };
105 >  struct {
106 >    dlink_list list;
107 >  } mask,
108 >    leaf,
109 >    hub;
110 >
111 >  struct {
112 >    char buf[IRCD_BUFSIZE];
113 >  } name,
114 >    user,
115 >    host,
116 >    addr,
117 >    bind,
118 >    file,
119 >    ciph,
120 >    rpass,
121 >    spass,
122 >    class;
123 >
124 >  struct {
125 >    unsigned int value;
126 >  } flags,
127 >    modes,
128 >    size,
129 >    type,
130 >    port,
131 >    aftype,
132 >    ping_freq,
133 >    max_perip,
134 >    con_freq,
135 >    max_total,
136 >    max_global,
137 >    max_local,
138 >    max_ident,
139 >    max_sendq,
140 >    max_recvq,
141 >    cidr_bitlen_ipv4,
142 >    cidr_bitlen_ipv6,
143 >    number_per_cidr;
144 > } block_state;
145  
146   static void
147 < free_collect_item(struct CollectItem *item)
147 > reset_block_state(void)
148   {
149 <  MyFree(item->name);
144 <  MyFree(item->user);
145 <  MyFree(item->host);
146 <  MyFree(item->passwd);
147 < #ifdef HAVE_LIBCRYPTO
148 <  MyFree(item->rsa_public_key_file);
149 < #endif
150 <  MyFree(item);
151 < }
149 >  dlink_node *ptr = NULL, *ptr_next = NULL;
150  
151 < static void
152 < unhook_hub_leaf_confs(void)
153 < {
154 <  dlink_node *ptr;
155 <  dlink_node *next_ptr;
156 <  struct CollectItem *yy_hconf;
159 <  struct CollectItem *yy_lconf;
151 >  DLINK_FOREACH_SAFE(ptr, ptr_next, block_state.mask.list.head)
152 >  {
153 >    MyFree(ptr->data);
154 >    dlinkDelete(ptr, &block_state.mask.list);
155 >    free_dlink_node(ptr);
156 >  }
157  
158 <  DLINK_FOREACH_SAFE(ptr, next_ptr, hub_conf_list.head)
158 >  DLINK_FOREACH_SAFE(ptr, ptr_next, block_state.leaf.list.head)
159    {
160 <    yy_hconf = ptr->data;
161 <    dlinkDelete(&yy_hconf->node, &hub_conf_list);
162 <    free_collect_item(yy_hconf);
160 >    MyFree(ptr->data);
161 >    dlinkDelete(ptr, &block_state.leaf.list);
162 >    free_dlink_node(ptr);
163    }
164  
165 <  DLINK_FOREACH_SAFE(ptr, next_ptr, leaf_conf_list.head)
165 >  DLINK_FOREACH_SAFE(ptr, ptr_next, block_state.hub.list.head)
166    {
167 <    yy_lconf = ptr->data;
168 <    dlinkDelete(&yy_lconf->node, &leaf_conf_list);
169 <    free_collect_item(yy_lconf);
167 >    MyFree(ptr->data);
168 >    dlinkDelete(ptr, &block_state.hub.list);
169 >    free_dlink_node(ptr);
170    }
174 }
171  
172 +  memset(&block_state, 0, sizeof(block_state));
173 + }
174  
175  
176 < /* Line 268 of yacc.c  */
177 < #line 180 "ircd_parser.c"
176 > /* Line 371 of yacc.c  */
177 > #line 178 "conf_parser.c"
178  
179 < /* Enabling traces.  */
180 < #ifndef YYDEBUG
181 < # define YYDEBUG 0
182 < #endif
179 > # ifndef YY_NULL
180 > #  if defined __cplusplus && 201103L <= __cplusplus
181 > #   define YY_NULL nullptr
182 > #  else
183 > #   define YY_NULL 0
184 > #  endif
185 > # endif
186  
187   /* Enabling verbose error messages.  */
188   #ifdef YYERROR_VERBOSE
# Line 191 | Line 192 | unhook_hub_leaf_confs(void)
192   # define YYERROR_VERBOSE 0
193   #endif
194  
195 < /* Enabling the token table.  */
196 < #ifndef YYTOKEN_TABLE
197 < # define YYTOKEN_TABLE 0
195 > /* In a future release of Bison, this section will be replaced
196 >   by #include "y.tab.h".  */
197 > #ifndef YY_YY_Y_TAB_H_INCLUDED
198 > # define YY_YY_Y_TAB_H_INCLUDED
199 > /* Enabling traces.  */
200 > #ifndef YYDEBUG
201 > # define YYDEBUG 0
202 > #endif
203 > #if YYDEBUG
204 > extern int yydebug;
205   #endif
198
206  
207   /* Tokens.  */
208   #ifndef YYTOKENTYPE
# Line 204 | Line 211 | unhook_hub_leaf_confs(void)
211        know about them.  */
212     enum yytokentype {
213       ACCEPT_PASSWORD = 258,
214 <     ACTION = 259,
215 <     ADMIN = 260,
216 <     AFTYPE = 261,
217 <     T_ALLOW = 262,
218 <     ANTI_NICK_FLOOD = 263,
219 <     ANTI_SPAM_EXIT_MESSAGE_TIME = 264,
220 <     AUTOCONN = 265,
221 <     T_BLOCK = 266,
222 <     BURST_AWAY = 267,
223 <     BURST_TOPICWHO = 268,
224 <     BYTES = 269,
225 <     KBYTES = 270,
226 <     MBYTES = 271,
227 <     GBYTES = 272,
228 <     TBYTES = 273,
229 <     CALLER_ID_WAIT = 274,
230 <     CAN_FLOOD = 275,
231 <     CHANNEL = 276,
232 <     CIDR_BITLEN_IPV4 = 277,
233 <     CIDR_BITLEN_IPV6 = 278,
234 <     CLASS = 279,
235 <     CONNECT = 280,
236 <     CONNECTFREQ = 281,
237 <     DEFAULT_FLOODCOUNT = 282,
238 <     DEFAULT_SPLIT_SERVER_COUNT = 283,
239 <     DEFAULT_SPLIT_USER_COUNT = 284,
240 <     DENY = 285,
241 <     DESCRIPTION = 286,
242 <     DIE = 287,
243 <     DISABLE_AUTH = 288,
244 <     DISABLE_FAKE_CHANNELS = 289,
245 <     DISABLE_HIDDEN = 290,
246 <     DISABLE_LOCAL_CHANNELS = 291,
247 <     DISABLE_REMOTE_COMMANDS = 292,
248 <     DOTS_IN_IDENT = 293,
249 <     DURATION = 294,
250 <     EGDPOOL_PATH = 295,
251 <     EMAIL = 296,
252 <     ENABLE = 297,
253 <     ENCRYPTED = 298,
254 <     EXCEED_LIMIT = 299,
255 <     EXEMPT = 300,
256 <     FAILED_OPER_NOTICE = 301,
257 <     IRCD_FLAGS = 302,
258 <     FLATTEN_LINKS = 303,
259 <     GECOS = 304,
260 <     GENERAL = 305,
261 <     GLINE = 306,
262 <     GLINES = 307,
263 <     GLINE_EXEMPT = 308,
264 <     GLINE_TIME = 309,
265 <     GLINE_MIN_CIDR = 310,
266 <     GLINE_MIN_CIDR6 = 311,
267 <     GLOBAL_KILL = 312,
268 <     IRCD_AUTH = 313,
269 <     NEED_IDENT = 314,
270 <     HAVENT_READ_CONF = 315,
271 <     HIDDEN = 316,
272 <     HIDDEN_NAME = 317,
273 <     HIDE_SERVER_IPS = 318,
274 <     HIDE_SERVERS = 319,
275 <     HIDE_SPOOF_IPS = 320,
276 <     HOST = 321,
277 <     HUB = 322,
278 <     HUB_MASK = 323,
279 <     IGNORE_BOGUS_TS = 324,
280 <     INVISIBLE_ON_CONNECT = 325,
281 <     IP = 326,
282 <     KILL = 327,
283 <     KILL_CHASE_TIME_LIMIT = 328,
284 <     KLINE = 329,
285 <     KLINE_EXEMPT = 330,
286 <     KLINE_REASON = 331,
287 <     KLINE_WITH_REASON = 332,
288 <     KNOCK_DELAY = 333,
289 <     KNOCK_DELAY_CHANNEL = 334,
290 <     LEAF_MASK = 335,
291 <     LINKS_DELAY = 336,
292 <     LISTEN = 337,
293 <     T_LOG = 338,
294 <     MAX_ACCEPT = 339,
295 <     MAX_BANS = 340,
296 <     MAX_CHANS_PER_USER = 341,
297 <     MAX_GLOBAL = 342,
298 <     MAX_IDENT = 343,
299 <     MAX_LOCAL = 344,
300 <     MAX_NICK_CHANGES = 345,
301 <     MAX_NICK_TIME = 346,
302 <     MAX_NUMBER = 347,
303 <     MAX_TARGETS = 348,
304 <     MAX_WATCH = 349,
305 <     MESSAGE_LOCALE = 350,
306 <     MIN_NONWILDCARD = 351,
307 <     MIN_NONWILDCARD_SIMPLE = 352,
308 <     MODULE = 353,
309 <     MODULES = 354,
310 <     NAME = 355,
311 <     NEED_PASSWORD = 356,
312 <     NETWORK_DESC = 357,
313 <     NETWORK_NAME = 358,
314 <     NICK = 359,
315 <     NICK_CHANGES = 360,
316 <     NO_CREATE_ON_SPLIT = 361,
317 <     NO_JOIN_ON_SPLIT = 362,
318 <     NO_OPER_FLOOD = 363,
319 <     NO_TILDE = 364,
320 <     NUMBER = 365,
321 <     NUMBER_PER_IDENT = 366,
322 <     NUMBER_PER_CIDR = 367,
323 <     NUMBER_PER_IP = 368,
324 <     NUMBER_PER_IP_GLOBAL = 369,
325 <     OPERATOR = 370,
326 <     OPERS_BYPASS_CALLERID = 371,
327 <     OPER_ONLY_UMODES = 372,
328 <     OPER_PASS_RESV = 373,
329 <     OPER_SPY_T = 374,
330 <     OPER_UMODES = 375,
331 <     JOIN_FLOOD_COUNT = 376,
332 <     JOIN_FLOOD_TIME = 377,
333 <     PACE_WAIT = 378,
334 <     PACE_WAIT_SIMPLE = 379,
335 <     PASSWORD = 380,
336 <     PATH = 381,
337 <     PING_COOKIE = 382,
338 <     PING_TIME = 383,
339 <     PING_WARNING = 384,
340 <     PORT = 385,
341 <     QSTRING = 386,
342 <     QUIET_ON_BAN = 387,
343 <     REASON = 388,
344 <     REDIRPORT = 389,
345 <     REDIRSERV = 390,
346 <     REGEX_T = 391,
347 <     REHASH = 392,
348 <     TREJECT_HOLD_TIME = 393,
349 <     REMOTE = 394,
350 <     REMOTEBAN = 395,
351 <     RESTRICT_CHANNELS = 396,
352 <     RESTRICTED = 397,
353 <     RSA_PRIVATE_KEY_FILE = 398,
354 <     RSA_PUBLIC_KEY_FILE = 399,
355 <     SSL_CERTIFICATE_FILE = 400,
356 <     SSL_DH_PARAM_FILE = 401,
357 <     T_SSL_CONNECTION_METHOD = 402,
358 <     T_SSLV3 = 403,
359 <     T_TLSV1 = 404,
360 <     RESV = 405,
361 <     RESV_EXEMPT = 406,
362 <     SECONDS = 407,
363 <     MINUTES = 408,
364 <     HOURS = 409,
365 <     DAYS = 410,
366 <     WEEKS = 411,
367 <     SENDQ = 412,
368 <     SEND_PASSWORD = 413,
369 <     SERVERHIDE = 414,
370 <     SERVERINFO = 415,
371 <     IRCD_SID = 416,
372 <     TKLINE_EXPIRE_NOTICES = 417,
373 <     T_SHARED = 418,
374 <     T_CLUSTER = 419,
375 <     TYPE = 420,
376 <     SHORT_MOTD = 421,
377 <     SILENT = 422,
378 <     SPOOF = 423,
379 <     SPOOF_NOTICE = 424,
380 <     STATS_E_DISABLED = 425,
381 <     STATS_I_OPER_ONLY = 426,
382 <     STATS_K_OPER_ONLY = 427,
383 <     STATS_O_OPER_ONLY = 428,
384 <     STATS_P_OPER_ONLY = 429,
385 <     TBOOL = 430,
386 <     TMASKED = 431,
387 <     T_REJECT = 432,
388 <     TS_MAX_DELTA = 433,
389 <     TS_WARN_DELTA = 434,
390 <     TWODOTS = 435,
391 <     T_ALL = 436,
392 <     T_BOTS = 437,
393 <     T_SOFTCALLERID = 438,
394 <     T_CALLERID = 439,
395 <     T_CCONN = 440,
396 <     T_CCONN_FULL = 441,
397 <     T_SSL_CIPHER_LIST = 442,
398 <     T_CLIENT_FLOOD = 443,
399 <     T_DEAF = 444,
400 <     T_DEBUG = 445,
401 <     T_DLINE = 446,
402 <     T_DRONE = 447,
403 <     T_EXTERNAL = 448,
404 <     T_FULL = 449,
405 <     T_INVISIBLE = 450,
406 <     T_IPV4 = 451,
407 <     T_IPV6 = 452,
408 <     T_LOCOPS = 453,
409 <     T_MAX_CLIENTS = 454,
410 <     T_NCHANGE = 455,
411 <     T_OPERWALL = 456,
412 <     T_REJ = 457,
413 <     T_SERVER = 458,
414 <     T_SERVNOTICE = 459,
415 <     T_SKILL = 460,
416 <     T_SPY = 461,
417 <     T_SSL = 462,
418 <     T_UMODES = 463,
419 <     T_UNAUTH = 464,
420 <     T_UNDLINE = 465,
421 <     T_UNLIMITED = 466,
422 <     T_UNRESV = 467,
423 <     T_UNXLINE = 468,
424 <     T_GLOBOPS = 469,
418 <     T_WALLOP = 470,
419 <     T_RESTART = 471,
420 <     T_SERVICE = 472,
421 <     T_SERVICES_NAME = 473,
422 <     T_TIMESTAMP = 474,
423 <     THROTTLE_TIME = 475,
424 <     TOPICBURST = 476,
425 <     TRUE_NO_OPER_FLOOD = 477,
426 <     TKLINE = 478,
427 <     TXLINE = 479,
428 <     TRESV = 480,
429 <     UNKLINE = 481,
430 <     USER = 482,
431 <     USE_EGD = 483,
432 <     USE_EXCEPT = 484,
433 <     USE_INVEX = 485,
434 <     USE_KNOCK = 486,
435 <     USE_LOGGING = 487,
436 <     USE_WHOIS_ACTUALLY = 488,
437 <     VHOST = 489,
438 <     VHOST6 = 490,
439 <     XLINE = 491,
440 <     WARN = 492,
441 <     WARN_NO_NLINE = 493,
442 <     T_SIZE = 494,
443 <     T_FILE = 495
214 >     ADMIN = 259,
215 >     AFTYPE = 260,
216 >     ANTI_NICK_FLOOD = 261,
217 >     ANTI_SPAM_EXIT_MESSAGE_TIME = 262,
218 >     AUTOCONN = 263,
219 >     BYTES = 264,
220 >     KBYTES = 265,
221 >     MBYTES = 266,
222 >     CALLER_ID_WAIT = 267,
223 >     CAN_FLOOD = 268,
224 >     CHANNEL = 269,
225 >     CIDR_BITLEN_IPV4 = 270,
226 >     CIDR_BITLEN_IPV6 = 271,
227 >     CLASS = 272,
228 >     CONNECT = 273,
229 >     CONNECTFREQ = 274,
230 >     DEFAULT_FLOODCOUNT = 275,
231 >     DEFAULT_SPLIT_SERVER_COUNT = 276,
232 >     DEFAULT_SPLIT_USER_COUNT = 277,
233 >     DENY = 278,
234 >     DESCRIPTION = 279,
235 >     DIE = 280,
236 >     DISABLE_AUTH = 281,
237 >     DISABLE_FAKE_CHANNELS = 282,
238 >     DISABLE_REMOTE_COMMANDS = 283,
239 >     DOTS_IN_IDENT = 284,
240 >     EGDPOOL_PATH = 285,
241 >     EMAIL = 286,
242 >     ENCRYPTED = 287,
243 >     EXCEED_LIMIT = 288,
244 >     EXEMPT = 289,
245 >     FAILED_OPER_NOTICE = 290,
246 >     IRCD_FLAGS = 291,
247 >     FLATTEN_LINKS = 292,
248 >     GECOS = 293,
249 >     GENERAL = 294,
250 >     GLINE = 295,
251 >     GLINE_DURATION = 296,
252 >     GLINE_ENABLE = 297,
253 >     GLINE_EXEMPT = 298,
254 >     GLINE_REQUEST_DURATION = 299,
255 >     GLINE_MIN_CIDR = 300,
256 >     GLINE_MIN_CIDR6 = 301,
257 >     GLOBAL_KILL = 302,
258 >     IRCD_AUTH = 303,
259 >     NEED_IDENT = 304,
260 >     HAVENT_READ_CONF = 305,
261 >     HIDDEN = 306,
262 >     HIDDEN_NAME = 307,
263 >     HIDE_SERVER_IPS = 308,
264 >     HIDE_SERVERS = 309,
265 >     HIDE_SPOOF_IPS = 310,
266 >     HOST = 311,
267 >     HUB = 312,
268 >     HUB_MASK = 313,
269 >     IGNORE_BOGUS_TS = 314,
270 >     INVISIBLE_ON_CONNECT = 315,
271 >     IP = 316,
272 >     KILL = 317,
273 >     KILL_CHASE_TIME_LIMIT = 318,
274 >     KLINE = 319,
275 >     KLINE_EXEMPT = 320,
276 >     KNOCK_DELAY = 321,
277 >     KNOCK_DELAY_CHANNEL = 322,
278 >     LEAF_MASK = 323,
279 >     LINKS_DELAY = 324,
280 >     LISTEN = 325,
281 >     T_LOG = 326,
282 >     MAX_ACCEPT = 327,
283 >     MAX_BANS = 328,
284 >     MAX_CHANS_PER_OPER = 329,
285 >     MAX_CHANS_PER_USER = 330,
286 >     MAX_GLOBAL = 331,
287 >     MAX_IDENT = 332,
288 >     MAX_LOCAL = 333,
289 >     MAX_NICK_CHANGES = 334,
290 >     MAX_NICK_TIME = 335,
291 >     MAX_NUMBER = 336,
292 >     MAX_TARGETS = 337,
293 >     MAX_WATCH = 338,
294 >     MESSAGE_LOCALE = 339,
295 >     MIN_NONWILDCARD = 340,
296 >     MIN_NONWILDCARD_SIMPLE = 341,
297 >     MODULE = 342,
298 >     MODULES = 343,
299 >     NAME = 344,
300 >     NEED_PASSWORD = 345,
301 >     NETWORK_DESC = 346,
302 >     NETWORK_NAME = 347,
303 >     NICK = 348,
304 >     NICK_CHANGES = 349,
305 >     NO_CREATE_ON_SPLIT = 350,
306 >     NO_JOIN_ON_SPLIT = 351,
307 >     NO_OPER_FLOOD = 352,
308 >     NO_TILDE = 353,
309 >     NUMBER = 354,
310 >     NUMBER_PER_CIDR = 355,
311 >     NUMBER_PER_IP = 356,
312 >     OPERATOR = 357,
313 >     OPERS_BYPASS_CALLERID = 358,
314 >     OPER_ONLY_UMODES = 359,
315 >     OPER_PASS_RESV = 360,
316 >     OPER_SPY_T = 361,
317 >     OPER_UMODES = 362,
318 >     JOIN_FLOOD_COUNT = 363,
319 >     JOIN_FLOOD_TIME = 364,
320 >     PACE_WAIT = 365,
321 >     PACE_WAIT_SIMPLE = 366,
322 >     PASSWORD = 367,
323 >     PATH = 368,
324 >     PING_COOKIE = 369,
325 >     PING_TIME = 370,
326 >     PORT = 371,
327 >     QSTRING = 372,
328 >     QUIET_ON_BAN = 373,
329 >     REASON = 374,
330 >     REDIRPORT = 375,
331 >     REDIRSERV = 376,
332 >     REGEX_T = 377,
333 >     REHASH = 378,
334 >     REMOTE = 379,
335 >     REMOTEBAN = 380,
336 >     RESTRICT_CHANNELS = 381,
337 >     RSA_PRIVATE_KEY_FILE = 382,
338 >     RSA_PUBLIC_KEY_FILE = 383,
339 >     SSL_CERTIFICATE_FILE = 384,
340 >     SSL_DH_PARAM_FILE = 385,
341 >     T_SSL_CLIENT_METHOD = 386,
342 >     T_SSL_SERVER_METHOD = 387,
343 >     T_SSLV3 = 388,
344 >     T_TLSV1 = 389,
345 >     RESV = 390,
346 >     RESV_EXEMPT = 391,
347 >     SECONDS = 392,
348 >     MINUTES = 393,
349 >     HOURS = 394,
350 >     DAYS = 395,
351 >     WEEKS = 396,
352 >     SENDQ = 397,
353 >     SEND_PASSWORD = 398,
354 >     SERVERHIDE = 399,
355 >     SERVERINFO = 400,
356 >     IRCD_SID = 401,
357 >     TKLINE_EXPIRE_NOTICES = 402,
358 >     T_SHARED = 403,
359 >     T_CLUSTER = 404,
360 >     TYPE = 405,
361 >     SHORT_MOTD = 406,
362 >     SPOOF = 407,
363 >     SPOOF_NOTICE = 408,
364 >     STATS_E_DISABLED = 409,
365 >     STATS_I_OPER_ONLY = 410,
366 >     STATS_K_OPER_ONLY = 411,
367 >     STATS_O_OPER_ONLY = 412,
368 >     STATS_P_OPER_ONLY = 413,
369 >     TBOOL = 414,
370 >     TMASKED = 415,
371 >     TS_MAX_DELTA = 416,
372 >     TS_WARN_DELTA = 417,
373 >     TWODOTS = 418,
374 >     T_ALL = 419,
375 >     T_BOTS = 420,
376 >     T_SOFTCALLERID = 421,
377 >     T_CALLERID = 422,
378 >     T_CCONN = 423,
379 >     T_CCONN_FULL = 424,
380 >     T_SSL_CIPHER_LIST = 425,
381 >     T_DEAF = 426,
382 >     T_DEBUG = 427,
383 >     T_DLINE = 428,
384 >     T_EXTERNAL = 429,
385 >     T_FULL = 430,
386 >     T_INVISIBLE = 431,
387 >     T_IPV4 = 432,
388 >     T_IPV6 = 433,
389 >     T_LOCOPS = 434,
390 >     T_MAX_CLIENTS = 435,
391 >     T_NCHANGE = 436,
392 >     T_OPERWALL = 437,
393 >     T_RECVQ = 438,
394 >     T_REJ = 439,
395 >     T_SERVER = 440,
396 >     T_SERVNOTICE = 441,
397 >     T_SET = 442,
398 >     T_SKILL = 443,
399 >     T_SPY = 444,
400 >     T_SSL = 445,
401 >     T_UMODES = 446,
402 >     T_UNAUTH = 447,
403 >     T_UNDLINE = 448,
404 >     T_UNLIMITED = 449,
405 >     T_UNRESV = 450,
406 >     T_UNXLINE = 451,
407 >     T_GLOBOPS = 452,
408 >     T_WALLOP = 453,
409 >     T_WEBIRC = 454,
410 >     T_RESTART = 455,
411 >     T_SERVICE = 456,
412 >     T_SERVICES_NAME = 457,
413 >     THROTTLE_TIME = 458,
414 >     TRUE_NO_OPER_FLOOD = 459,
415 >     UNKLINE = 460,
416 >     USER = 461,
417 >     USE_EGD = 462,
418 >     USE_LOGGING = 463,
419 >     VHOST = 464,
420 >     VHOST6 = 465,
421 >     XLINE = 466,
422 >     WARN_NO_NLINE = 467,
423 >     T_SIZE = 468,
424 >     T_FILE = 469
425     };
426   #endif
427   /* Tokens.  */
428   #define ACCEPT_PASSWORD 258
429 < #define ACTION 259
430 < #define ADMIN 260
431 < #define AFTYPE 261
432 < #define T_ALLOW 262
433 < #define ANTI_NICK_FLOOD 263
434 < #define ANTI_SPAM_EXIT_MESSAGE_TIME 264
435 < #define AUTOCONN 265
436 < #define T_BLOCK 266
437 < #define BURST_AWAY 267
438 < #define BURST_TOPICWHO 268
439 < #define BYTES 269
440 < #define KBYTES 270
441 < #define MBYTES 271
442 < #define GBYTES 272
443 < #define TBYTES 273
444 < #define CALLER_ID_WAIT 274
445 < #define CAN_FLOOD 275
446 < #define CHANNEL 276
447 < #define CIDR_BITLEN_IPV4 277
448 < #define CIDR_BITLEN_IPV6 278
449 < #define CLASS 279
450 < #define CONNECT 280
451 < #define CONNECTFREQ 281
452 < #define DEFAULT_FLOODCOUNT 282
453 < #define DEFAULT_SPLIT_SERVER_COUNT 283
454 < #define DEFAULT_SPLIT_USER_COUNT 284
455 < #define DENY 285
456 < #define DESCRIPTION 286
457 < #define DIE 287
458 < #define DISABLE_AUTH 288
459 < #define DISABLE_FAKE_CHANNELS 289
460 < #define DISABLE_HIDDEN 290
461 < #define DISABLE_LOCAL_CHANNELS 291
462 < #define DISABLE_REMOTE_COMMANDS 292
463 < #define DOTS_IN_IDENT 293
464 < #define DURATION 294
465 < #define EGDPOOL_PATH 295
466 < #define EMAIL 296
467 < #define ENABLE 297
468 < #define ENCRYPTED 298
469 < #define EXCEED_LIMIT 299
470 < #define EXEMPT 300
471 < #define FAILED_OPER_NOTICE 301
472 < #define IRCD_FLAGS 302
473 < #define FLATTEN_LINKS 303
474 < #define GECOS 304
475 < #define GENERAL 305
476 < #define GLINE 306
477 < #define GLINES 307
478 < #define GLINE_EXEMPT 308
479 < #define GLINE_TIME 309
480 < #define GLINE_MIN_CIDR 310
481 < #define GLINE_MIN_CIDR6 311
482 < #define GLOBAL_KILL 312
483 < #define IRCD_AUTH 313
484 < #define NEED_IDENT 314
485 < #define HAVENT_READ_CONF 315
486 < #define HIDDEN 316
487 < #define HIDDEN_NAME 317
488 < #define HIDE_SERVER_IPS 318
489 < #define HIDE_SERVERS 319
490 < #define HIDE_SPOOF_IPS 320
491 < #define HOST 321
492 < #define HUB 322
493 < #define HUB_MASK 323
494 < #define IGNORE_BOGUS_TS 324
495 < #define INVISIBLE_ON_CONNECT 325
496 < #define IP 326
497 < #define KILL 327
498 < #define KILL_CHASE_TIME_LIMIT 328
499 < #define KLINE 329
500 < #define KLINE_EXEMPT 330
501 < #define KLINE_REASON 331
502 < #define KLINE_WITH_REASON 332
503 < #define KNOCK_DELAY 333
504 < #define KNOCK_DELAY_CHANNEL 334
505 < #define LEAF_MASK 335
506 < #define LINKS_DELAY 336
507 < #define LISTEN 337
508 < #define T_LOG 338
509 < #define MAX_ACCEPT 339
510 < #define MAX_BANS 340
511 < #define MAX_CHANS_PER_USER 341
512 < #define MAX_GLOBAL 342
513 < #define MAX_IDENT 343
514 < #define MAX_LOCAL 344
515 < #define MAX_NICK_CHANGES 345
516 < #define MAX_NICK_TIME 346
517 < #define MAX_NUMBER 347
518 < #define MAX_TARGETS 348
519 < #define MAX_WATCH 349
520 < #define MESSAGE_LOCALE 350
521 < #define MIN_NONWILDCARD 351
522 < #define MIN_NONWILDCARD_SIMPLE 352
523 < #define MODULE 353
524 < #define MODULES 354
525 < #define NAME 355
526 < #define NEED_PASSWORD 356
527 < #define NETWORK_DESC 357
528 < #define NETWORK_NAME 358
529 < #define NICK 359
530 < #define NICK_CHANGES 360
531 < #define NO_CREATE_ON_SPLIT 361
532 < #define NO_JOIN_ON_SPLIT 362
533 < #define NO_OPER_FLOOD 363
534 < #define NO_TILDE 364
535 < #define NUMBER 365
536 < #define NUMBER_PER_IDENT 366
537 < #define NUMBER_PER_CIDR 367
538 < #define NUMBER_PER_IP 368
539 < #define NUMBER_PER_IP_GLOBAL 369
540 < #define OPERATOR 370
541 < #define OPERS_BYPASS_CALLERID 371
542 < #define OPER_ONLY_UMODES 372
543 < #define OPER_PASS_RESV 373
544 < #define OPER_SPY_T 374
545 < #define OPER_UMODES 375
546 < #define JOIN_FLOOD_COUNT 376
547 < #define JOIN_FLOOD_TIME 377
548 < #define PACE_WAIT 378
549 < #define PACE_WAIT_SIMPLE 379
550 < #define PASSWORD 380
551 < #define PATH 381
552 < #define PING_COOKIE 382
553 < #define PING_TIME 383
554 < #define PING_WARNING 384
555 < #define PORT 385
556 < #define QSTRING 386
557 < #define QUIET_ON_BAN 387
558 < #define REASON 388
559 < #define REDIRPORT 389
560 < #define REDIRSERV 390
561 < #define REGEX_T 391
562 < #define REHASH 392
563 < #define TREJECT_HOLD_TIME 393
564 < #define REMOTE 394
565 < #define REMOTEBAN 395
566 < #define RESTRICT_CHANNELS 396
567 < #define RESTRICTED 397
568 < #define RSA_PRIVATE_KEY_FILE 398
569 < #define RSA_PUBLIC_KEY_FILE 399
570 < #define SSL_CERTIFICATE_FILE 400
571 < #define SSL_DH_PARAM_FILE 401
572 < #define T_SSL_CONNECTION_METHOD 402
573 < #define T_SSLV3 403
574 < #define T_TLSV1 404
575 < #define RESV 405
576 < #define RESV_EXEMPT 406
577 < #define SECONDS 407
578 < #define MINUTES 408
579 < #define HOURS 409
580 < #define DAYS 410
581 < #define WEEKS 411
582 < #define SENDQ 412
583 < #define SEND_PASSWORD 413
584 < #define SERVERHIDE 414
585 < #define SERVERINFO 415
586 < #define IRCD_SID 416
587 < #define TKLINE_EXPIRE_NOTICES 417
588 < #define T_SHARED 418
589 < #define T_CLUSTER 419
590 < #define TYPE 420
591 < #define SHORT_MOTD 421
592 < #define SILENT 422
593 < #define SPOOF 423
594 < #define SPOOF_NOTICE 424
595 < #define STATS_E_DISABLED 425
596 < #define STATS_I_OPER_ONLY 426
597 < #define STATS_K_OPER_ONLY 427
598 < #define STATS_O_OPER_ONLY 428
599 < #define STATS_P_OPER_ONLY 429
600 < #define TBOOL 430
601 < #define TMASKED 431
602 < #define T_REJECT 432
603 < #define TS_MAX_DELTA 433
604 < #define TS_WARN_DELTA 434
605 < #define TWODOTS 435
606 < #define T_ALL 436
607 < #define T_BOTS 437
608 < #define T_SOFTCALLERID 438
609 < #define T_CALLERID 439
610 < #define T_CCONN 440
611 < #define T_CCONN_FULL 441
612 < #define T_SSL_CIPHER_LIST 442
613 < #define T_CLIENT_FLOOD 443
614 < #define T_DEAF 444
615 < #define T_DEBUG 445
616 < #define T_DLINE 446
617 < #define T_DRONE 447
618 < #define T_EXTERNAL 448
619 < #define T_FULL 449
620 < #define T_INVISIBLE 450
621 < #define T_IPV4 451
622 < #define T_IPV6 452
623 < #define T_LOCOPS 453
624 < #define T_MAX_CLIENTS 454
625 < #define T_NCHANGE 455
626 < #define T_OPERWALL 456
627 < #define T_REJ 457
628 < #define T_SERVER 458
629 < #define T_SERVNOTICE 459
630 < #define T_SKILL 460
631 < #define T_SPY 461
632 < #define T_SSL 462
633 < #define T_UMODES 463
634 < #define T_UNAUTH 464
635 < #define T_UNDLINE 465
636 < #define T_UNLIMITED 466
637 < #define T_UNRESV 467
638 < #define T_UNXLINE 468
639 < #define T_GLOBOPS 469
659 < #define T_WALLOP 470
660 < #define T_RESTART 471
661 < #define T_SERVICE 472
662 < #define T_SERVICES_NAME 473
663 < #define T_TIMESTAMP 474
664 < #define THROTTLE_TIME 475
665 < #define TOPICBURST 476
666 < #define TRUE_NO_OPER_FLOOD 477
667 < #define TKLINE 478
668 < #define TXLINE 479
669 < #define TRESV 480
670 < #define UNKLINE 481
671 < #define USER 482
672 < #define USE_EGD 483
673 < #define USE_EXCEPT 484
674 < #define USE_INVEX 485
675 < #define USE_KNOCK 486
676 < #define USE_LOGGING 487
677 < #define USE_WHOIS_ACTUALLY 488
678 < #define VHOST 489
679 < #define VHOST6 490
680 < #define XLINE 491
681 < #define WARN 492
682 < #define WARN_NO_NLINE 493
683 < #define T_SIZE 494
684 < #define T_FILE 495
685 <
429 > #define ADMIN 259
430 > #define AFTYPE 260
431 > #define ANTI_NICK_FLOOD 261
432 > #define ANTI_SPAM_EXIT_MESSAGE_TIME 262
433 > #define AUTOCONN 263
434 > #define BYTES 264
435 > #define KBYTES 265
436 > #define MBYTES 266
437 > #define CALLER_ID_WAIT 267
438 > #define CAN_FLOOD 268
439 > #define CHANNEL 269
440 > #define CIDR_BITLEN_IPV4 270
441 > #define CIDR_BITLEN_IPV6 271
442 > #define CLASS 272
443 > #define CONNECT 273
444 > #define CONNECTFREQ 274
445 > #define DEFAULT_FLOODCOUNT 275
446 > #define DEFAULT_SPLIT_SERVER_COUNT 276
447 > #define DEFAULT_SPLIT_USER_COUNT 277
448 > #define DENY 278
449 > #define DESCRIPTION 279
450 > #define DIE 280
451 > #define DISABLE_AUTH 281
452 > #define DISABLE_FAKE_CHANNELS 282
453 > #define DISABLE_REMOTE_COMMANDS 283
454 > #define DOTS_IN_IDENT 284
455 > #define EGDPOOL_PATH 285
456 > #define EMAIL 286
457 > #define ENCRYPTED 287
458 > #define EXCEED_LIMIT 288
459 > #define EXEMPT 289
460 > #define FAILED_OPER_NOTICE 290
461 > #define IRCD_FLAGS 291
462 > #define FLATTEN_LINKS 292
463 > #define GECOS 293
464 > #define GENERAL 294
465 > #define GLINE 295
466 > #define GLINE_DURATION 296
467 > #define GLINE_ENABLE 297
468 > #define GLINE_EXEMPT 298
469 > #define GLINE_REQUEST_DURATION 299
470 > #define GLINE_MIN_CIDR 300
471 > #define GLINE_MIN_CIDR6 301
472 > #define GLOBAL_KILL 302
473 > #define IRCD_AUTH 303
474 > #define NEED_IDENT 304
475 > #define HAVENT_READ_CONF 305
476 > #define HIDDEN 306
477 > #define HIDDEN_NAME 307
478 > #define HIDE_SERVER_IPS 308
479 > #define HIDE_SERVERS 309
480 > #define HIDE_SPOOF_IPS 310
481 > #define HOST 311
482 > #define HUB 312
483 > #define HUB_MASK 313
484 > #define IGNORE_BOGUS_TS 314
485 > #define INVISIBLE_ON_CONNECT 315
486 > #define IP 316
487 > #define KILL 317
488 > #define KILL_CHASE_TIME_LIMIT 318
489 > #define KLINE 319
490 > #define KLINE_EXEMPT 320
491 > #define KNOCK_DELAY 321
492 > #define KNOCK_DELAY_CHANNEL 322
493 > #define LEAF_MASK 323
494 > #define LINKS_DELAY 324
495 > #define LISTEN 325
496 > #define T_LOG 326
497 > #define MAX_ACCEPT 327
498 > #define MAX_BANS 328
499 > #define MAX_CHANS_PER_OPER 329
500 > #define MAX_CHANS_PER_USER 330
501 > #define MAX_GLOBAL 331
502 > #define MAX_IDENT 332
503 > #define MAX_LOCAL 333
504 > #define MAX_NICK_CHANGES 334
505 > #define MAX_NICK_TIME 335
506 > #define MAX_NUMBER 336
507 > #define MAX_TARGETS 337
508 > #define MAX_WATCH 338
509 > #define MESSAGE_LOCALE 339
510 > #define MIN_NONWILDCARD 340
511 > #define MIN_NONWILDCARD_SIMPLE 341
512 > #define MODULE 342
513 > #define MODULES 343
514 > #define NAME 344
515 > #define NEED_PASSWORD 345
516 > #define NETWORK_DESC 346
517 > #define NETWORK_NAME 347
518 > #define NICK 348
519 > #define NICK_CHANGES 349
520 > #define NO_CREATE_ON_SPLIT 350
521 > #define NO_JOIN_ON_SPLIT 351
522 > #define NO_OPER_FLOOD 352
523 > #define NO_TILDE 353
524 > #define NUMBER 354
525 > #define NUMBER_PER_CIDR 355
526 > #define NUMBER_PER_IP 356
527 > #define OPERATOR 357
528 > #define OPERS_BYPASS_CALLERID 358
529 > #define OPER_ONLY_UMODES 359
530 > #define OPER_PASS_RESV 360
531 > #define OPER_SPY_T 361
532 > #define OPER_UMODES 362
533 > #define JOIN_FLOOD_COUNT 363
534 > #define JOIN_FLOOD_TIME 364
535 > #define PACE_WAIT 365
536 > #define PACE_WAIT_SIMPLE 366
537 > #define PASSWORD 367
538 > #define PATH 368
539 > #define PING_COOKIE 369
540 > #define PING_TIME 370
541 > #define PORT 371
542 > #define QSTRING 372
543 > #define QUIET_ON_BAN 373
544 > #define REASON 374
545 > #define REDIRPORT 375
546 > #define REDIRSERV 376
547 > #define REGEX_T 377
548 > #define REHASH 378
549 > #define REMOTE 379
550 > #define REMOTEBAN 380
551 > #define RESTRICT_CHANNELS 381
552 > #define RSA_PRIVATE_KEY_FILE 382
553 > #define RSA_PUBLIC_KEY_FILE 383
554 > #define SSL_CERTIFICATE_FILE 384
555 > #define SSL_DH_PARAM_FILE 385
556 > #define T_SSL_CLIENT_METHOD 386
557 > #define T_SSL_SERVER_METHOD 387
558 > #define T_SSLV3 388
559 > #define T_TLSV1 389
560 > #define RESV 390
561 > #define RESV_EXEMPT 391
562 > #define SECONDS 392
563 > #define MINUTES 393
564 > #define HOURS 394
565 > #define DAYS 395
566 > #define WEEKS 396
567 > #define SENDQ 397
568 > #define SEND_PASSWORD 398
569 > #define SERVERHIDE 399
570 > #define SERVERINFO 400
571 > #define IRCD_SID 401
572 > #define TKLINE_EXPIRE_NOTICES 402
573 > #define T_SHARED 403
574 > #define T_CLUSTER 404
575 > #define TYPE 405
576 > #define SHORT_MOTD 406
577 > #define SPOOF 407
578 > #define SPOOF_NOTICE 408
579 > #define STATS_E_DISABLED 409
580 > #define STATS_I_OPER_ONLY 410
581 > #define STATS_K_OPER_ONLY 411
582 > #define STATS_O_OPER_ONLY 412
583 > #define STATS_P_OPER_ONLY 413
584 > #define TBOOL 414
585 > #define TMASKED 415
586 > #define TS_MAX_DELTA 416
587 > #define TS_WARN_DELTA 417
588 > #define TWODOTS 418
589 > #define T_ALL 419
590 > #define T_BOTS 420
591 > #define T_SOFTCALLERID 421
592 > #define T_CALLERID 422
593 > #define T_CCONN 423
594 > #define T_CCONN_FULL 424
595 > #define T_SSL_CIPHER_LIST 425
596 > #define T_DEAF 426
597 > #define T_DEBUG 427
598 > #define T_DLINE 428
599 > #define T_EXTERNAL 429
600 > #define T_FULL 430
601 > #define T_INVISIBLE 431
602 > #define T_IPV4 432
603 > #define T_IPV6 433
604 > #define T_LOCOPS 434
605 > #define T_MAX_CLIENTS 435
606 > #define T_NCHANGE 436
607 > #define T_OPERWALL 437
608 > #define T_RECVQ 438
609 > #define T_REJ 439
610 > #define T_SERVER 440
611 > #define T_SERVNOTICE 441
612 > #define T_SET 442
613 > #define T_SKILL 443
614 > #define T_SPY 444
615 > #define T_SSL 445
616 > #define T_UMODES 446
617 > #define T_UNAUTH 447
618 > #define T_UNDLINE 448
619 > #define T_UNLIMITED 449
620 > #define T_UNRESV 450
621 > #define T_UNXLINE 451
622 > #define T_GLOBOPS 452
623 > #define T_WALLOP 453
624 > #define T_WEBIRC 454
625 > #define T_RESTART 455
626 > #define T_SERVICE 456
627 > #define T_SERVICES_NAME 457
628 > #define THROTTLE_TIME 458
629 > #define TRUE_NO_OPER_FLOOD 459
630 > #define UNKLINE 460
631 > #define USER 461
632 > #define USE_EGD 462
633 > #define USE_LOGGING 463
634 > #define VHOST 464
635 > #define VHOST6 465
636 > #define XLINE 466
637 > #define WARN_NO_NLINE 467
638 > #define T_SIZE 468
639 > #define T_FILE 469
640  
641  
642  
643   #if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED
644   typedef union YYSTYPE
645   {
646 <
647 < /* Line 293 of yacc.c  */
694 < #line 133 "ircd_parser.y"
646 > /* Line 387 of yacc.c  */
647 > #line 135 "conf_parser.y"
648  
649    int number;
650    char *string;
651  
652  
653 <
654 < /* Line 293 of yacc.c  */
702 < #line 703 "ircd_parser.c"
653 > /* Line 387 of yacc.c  */
654 > #line 655 "conf_parser.c"
655   } YYSTYPE;
656   # define YYSTYPE_IS_TRIVIAL 1
657   # define yystype YYSTYPE /* obsolescent; will be withdrawn */
658   # define YYSTYPE_IS_DECLARED 1
659   #endif
660  
661 + extern YYSTYPE yylval;
662  
663 < /* Copy the second part of user declarations.  */
663 > #ifdef YYPARSE_PARAM
664 > #if defined __STDC__ || defined __cplusplus
665 > int yyparse (void *YYPARSE_PARAM);
666 > #else
667 > int yyparse ();
668 > #endif
669 > #else /* ! YYPARSE_PARAM */
670 > #if defined __STDC__ || defined __cplusplus
671 > int yyparse (void);
672 > #else
673 > int yyparse ();
674 > #endif
675 > #endif /* ! YYPARSE_PARAM */
676 >
677 > #endif /* !YY_YY_Y_TAB_H_INCLUDED  */
678  
679 + /* Copy the second part of user declarations.  */
680  
681 < /* Line 343 of yacc.c  */
682 < #line 715 "ircd_parser.c"
681 > /* Line 390 of yacc.c  */
682 > #line 683 "conf_parser.c"
683  
684   #ifdef short
685   # undef short
# Line 764 | Line 732 | typedef short int yytype_int16;
732   # if defined YYENABLE_NLS && YYENABLE_NLS
733   #  if ENABLE_NLS
734   #   include <libintl.h> /* INFRINGES ON USER NAME SPACE */
735 < #   define YY_(msgid) dgettext ("bison-runtime", msgid)
735 > #   define YY_(Msgid) dgettext ("bison-runtime", Msgid)
736   #  endif
737   # endif
738   # ifndef YY_
739 < #  define YY_(msgid) msgid
739 > #  define YY_(Msgid) Msgid
740   # endif
741   #endif
742  
743   /* Suppress unused-variable warnings by "using" E.  */
744   #if ! defined lint || defined __GNUC__
745 < # define YYUSE(e) ((void) (e))
745 > # define YYUSE(E) ((void) (E))
746   #else
747 < # define YYUSE(e) /* empty */
747 > # define YYUSE(E) /* empty */
748   #endif
749  
750   /* Identity function, used to suppress warnings about constant conditions.  */
751   #ifndef lint
752 < # define YYID(n) (n)
752 > # define YYID(N) (N)
753   #else
754   #if (defined __STDC__ || defined __C99__FUNC__ \
755       || defined __cplusplus || defined _MSC_VER)
# Line 817 | Line 785 | YYID (yyi)
785   #    if ! defined _ALLOCA_H && ! defined EXIT_SUCCESS && (defined __STDC__ || defined __C99__FUNC__ \
786       || defined __cplusplus || defined _MSC_VER)
787   #     include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
788 +      /* Use EXIT_SUCCESS as a witness for stdlib.h.  */
789   #     ifndef EXIT_SUCCESS
790   #      define EXIT_SUCCESS 0
791   #     endif
# Line 908 | Line 877 | union yyalloc
877   #endif
878  
879   #if defined YYCOPY_NEEDED && YYCOPY_NEEDED
880 < /* Copy COUNT objects from FROM to TO.  The source and destination do
880 > /* Copy COUNT objects from SRC to DST.  The source and destination do
881     not overlap.  */
882   # ifndef YYCOPY
883   #  if defined __GNUC__ && 1 < __GNUC__
884 < #   define YYCOPY(To, From, Count) \
885 <      __builtin_memcpy (To, From, (Count) * sizeof (*(From)))
884 > #   define YYCOPY(Dst, Src, Count) \
885 >      __builtin_memcpy (Dst, Src, (Count) * sizeof (*(Src)))
886   #  else
887 < #   define YYCOPY(To, From, Count)              \
888 <      do                                        \
889 <        {                                       \
890 <          YYSIZE_T yyi;                         \
891 <          for (yyi = 0; yyi < (Count); yyi++)   \
892 <            (To)[yyi] = (From)[yyi];            \
893 <        }                                       \
887 > #   define YYCOPY(Dst, Src, Count)              \
888 >      do                                        \
889 >        {                                       \
890 >          YYSIZE_T yyi;                         \
891 >          for (yyi = 0; yyi < (Count); yyi++)   \
892 >            (Dst)[yyi] = (Src)[yyi];            \
893 >        }                                       \
894        while (YYID (0))
895   #  endif
896   # endif
# Line 930 | Line 899 | union yyalloc
899   /* YYFINAL -- State number of the termination state.  */
900   #define YYFINAL  2
901   /* YYLAST -- Last index in YYTABLE.  */
902 < #define YYLAST   1228
902 > #define YYLAST   1132
903  
904   /* YYNTOKENS -- Number of terminals.  */
905 < #define YYNTOKENS  246
905 > #define YYNTOKENS  220
906   /* YYNNTS -- Number of nonterminals.  */
907 < #define YYNNTS  304
907 > #define YYNNTS  282
908   /* YYNRULES -- Number of rules.  */
909 < #define YYNRULES  665
909 > #define YYNRULES  626
910   /* YYNRULES -- Number of states.  */
911 < #define YYNSTATES  1307
911 > #define YYNSTATES  1224
912  
913   /* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX.  */
914   #define YYUNDEFTOK  2
915 < #define YYMAXUTOK   495
915 > #define YYMAXUTOK   469
916  
917   #define YYTRANSLATE(YYX)                                                \
918    ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK)
# Line 955 | Line 924 | static const yytype_uint8 yytranslate[]
924         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
925         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
926         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
927 <       2,     2,     2,     2,   245,     2,     2,     2,     2,     2,
928 <       2,     2,     2,     2,     2,     2,     2,     2,     2,   241,
929 <       2,   244,     2,     2,     2,     2,     2,     2,     2,     2,
927 >       2,     2,     2,     2,   219,     2,     2,     2,     2,     2,
928 >       2,     2,     2,     2,     2,     2,     2,     2,     2,   215,
929 >       2,   218,     2,     2,     2,     2,     2,     2,     2,     2,
930         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
931         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
932         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
933         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
934         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
935 <       2,     2,     2,   243,     2,   242,     2,     2,     2,     2,
935 >       2,     2,     2,   217,     2,   216,     2,     2,     2,     2,
936         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
937         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
938         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
# Line 997 | Line 966 | static const yytype_uint8 yytranslate[]
966       175,   176,   177,   178,   179,   180,   181,   182,   183,   184,
967       185,   186,   187,   188,   189,   190,   191,   192,   193,   194,
968       195,   196,   197,   198,   199,   200,   201,   202,   203,   204,
969 <     205,   206,   207,   208,   209,   210,   211,   212,   213,   214,
1001 <     215,   216,   217,   218,   219,   220,   221,   222,   223,   224,
1002 <     225,   226,   227,   228,   229,   230,   231,   232,   233,   234,
1003 <     235,   236,   237,   238,   239,   240
969 >     205,   206,   207,   208,   209,   210,   211,   212,   213,   214
970   };
971  
972   #if YYDEBUG
# Line 1010 | Line 976 | static const yytype_uint16 yyprhs[] =
976   {
977         0,     0,     3,     4,     7,     9,    11,    13,    15,    17,
978        19,    21,    23,    25,    27,    29,    31,    33,    35,    37,
979 <      39,    41,    43,    45,    47,    49,    52,    55,    56,    58,
980 <      61,    65,    69,    73,    77,    81,    82,    84,    87,    91,
981 <      95,    99,   105,   108,   110,   112,   114,   117,   122,   127,
982 <     133,   136,   138,   140,   142,   144,   146,   148,   150,   152,
983 <     154,   156,   158,   160,   162,   164,   166,   169,   170,   176,
984 <     180,   182,   184,   186,   191,   196,   201,   206,   211,   216,
985 <     221,   226,   231,   236,   241,   246,   251,   257,   260,   262,
986 <     264,   266,   268,   271,   276,   281,   286,   292,   295,   297,
987 <     299,   301,   303,   306,   311,   316,   317,   324,   327,   329,
988 <     331,   333,   335,   338,   343,   348,   353,   354,   360,   364,
989 <     366,   368,   370,   372,   374,   376,   378,   380,   381,   388,
990 <     391,   393,   395,   397,   399,   401,   403,   405,   407,   409,
991 <     412,   417,   422,   427,   432,   437,   442,   443,   449,   453,
992 <     455,   457,   459,   461,   463,   465,   467,   469,   471,   473,
993 <     475,   477,   479,   481,   483,   485,   487,   489,   491,   493,
994 <     495,   496,   502,   506,   508,   510,   512,   514,   516,   518,
995 <     520,   522,   524,   526,   528,   530,   532,   534,   536,   538,
996 <     540,   542,   544,   545,   552,   555,   557,   559,   561,   563,
997 <     565,   567,   569,   571,   573,   575,   577,   579,   581,   583,
998 <     586,   591,   596,   601,   606,   611,   616,   621,   626,   631,
999 <     636,   641,   646,   651,   652,   659,   660,   666,   670,   672,
1000 <     674,   676,   678,   681,   683,   685,   687,   689,   691,   694,
1001 <     695,   701,   705,   707,   709,   713,   718,   723,   724,   731,
1002 <     734,   736,   738,   740,   742,   744,   746,   748,   750,   752,
1003 <     755,   760,   765,   770,   775,   776,   782,   786,   788,   790,
1004 <     792,   794,   796,   798,   800,   802,   804,   806,   811,   816,
1005 <     821,   822,   829,   832,   834,   836,   838,   840,   843,   848,
1006 <     853,   858,   864,   867,   869,   871,   873,   878,   879,   886,
1007 <     889,   891,   893,   895,   897,   900,   905,   910,   911,   917,
1008 <     921,   923,   925,   927,   929,   931,   933,   935,   937,   939,
1009 <     941,   943,   944,   951,   954,   956,   958,   960,   963,   968,
1010 <     969,   975,   979,   981,   983,   985,   987,   989,   991,   993,
1011 <     995,   997,   999,  1001,  1002,  1009,  1012,  1014,  1016,  1018,
1012 <    1020,  1022,  1024,  1026,  1028,  1030,  1032,  1034,  1036,  1038,
1013 <    1040,  1043,  1048,  1053,  1058,  1063,  1068,  1073,  1078,  1083,
1014 <    1084,  1090,  1094,  1096,  1098,  1100,  1102,  1104,  1109,  1114,
1015 <    1119,  1124,  1129,  1130,  1137,  1138,  1144,  1148,  1150,  1152,
1016 <    1155,  1157,  1159,  1161,  1163,  1165,  1170,  1175,  1176,  1183,
1017 <    1186,  1188,  1190,  1192,  1194,  1199,  1204,  1210,  1213,  1215,
1018 <    1217,  1219,  1224,  1225,  1232,  1233,  1239,  1243,  1245,  1247,
1019 <    1250,  1252,  1254,  1256,  1258,  1260,  1265,  1270,  1276,  1279,
1020 <    1281,  1283,  1285,  1287,  1289,  1291,  1293,  1295,  1297,  1299,
1021 <    1301,  1303,  1305,  1307,  1309,  1311,  1313,  1315,  1317,  1319,
1022 <    1321,  1323,  1325,  1327,  1329,  1331,  1333,  1335,  1337,  1339,
1023 <    1341,  1343,  1345,  1347,  1349,  1351,  1353,  1355,  1357,  1359,
1024 <    1361,  1363,  1365,  1367,  1369,  1371,  1373,  1375,  1377,  1379,
1025 <    1381,  1383,  1385,  1390,  1395,  1400,  1405,  1410,  1415,  1420,
1026 <    1425,  1430,  1435,  1440,  1445,  1450,  1455,  1460,  1465,  1470,
1027 <    1475,  1480,  1485,  1490,  1495,  1500,  1505,  1510,  1515,  1520,
1028 <    1525,  1530,  1535,  1540,  1545,  1550,  1555,  1560,  1565,  1570,
1029 <    1575,  1580,  1585,  1590,  1595,  1600,  1605,  1610,  1615,  1620,
1030 <    1621,  1627,  1631,  1633,  1635,  1637,  1639,  1641,  1643,  1645,
1031 <    1647,  1649,  1651,  1653,  1655,  1657,  1659,  1661,  1663,  1665,
1032 <    1667,  1669,  1671,  1673,  1674,  1680,  1684,  1686,  1688,  1690,
1033 <    1692,  1694,  1696,  1698,  1700,  1702,  1704,  1706,  1708,  1710,
1034 <    1712,  1714,  1716,  1718,  1720,  1722,  1724,  1726,  1731,  1736,
1035 <    1741,  1746,  1747,  1754,  1757,  1759,  1761,  1763,  1765,  1767,
1036 <    1769,  1771,  1773,  1778,  1783,  1784,  1790,  1794,  1796,  1798,
1037 <    1800,  1805,  1810,  1811,  1817,  1821,  1823,  1825,  1827,  1833,
1038 <    1836,  1838,  1840,  1842,  1844,  1846,  1848,  1850,  1852,  1854,
1039 <    1856,  1858,  1860,  1862,  1864,  1866,  1868,  1870,  1872,  1874,
1074 <    1876,  1881,  1886,  1891,  1896,  1901,  1906,  1911,  1916,  1921,
1075 <    1926,  1931,  1936,  1941,  1946,  1951,  1956,  1961,  1966,  1972,
1076 <    1975,  1977,  1979,  1981,  1983,  1985,  1987,  1989,  1991,  1993,
1077 <    1998,  2003,  2008,  2013,  2018,  2023
979 >      39,    41,    43,    45,    47,    50,    53,    54,    56,    59,
980 >      63,    67,    71,    75,    79,    80,    82,    85,    89,    93,
981 >      97,   103,   106,   108,   110,   112,   115,   120,   125,   131,
982 >     134,   136,   138,   140,   142,   144,   146,   148,   150,   152,
983 >     154,   156,   158,   160,   162,   164,   166,   169,   174,   179,
984 >     183,   185,   187,   189,   193,   195,   197,   199,   204,   209,
985 >     214,   219,   224,   229,   234,   239,   244,   249,   254,   259,
986 >     264,   270,   273,   275,   277,   279,   281,   284,   289,   294,
987 >     299,   305,   308,   310,   312,   314,   317,   322,   323,   330,
988 >     333,   335,   337,   339,   341,   344,   349,   354,   359,   360,
989 >     366,   370,   372,   374,   376,   378,   380,   382,   384,   386,
990 >     387,   394,   397,   399,   401,   403,   405,   407,   409,   411,
991 >     413,   415,   418,   423,   428,   433,   438,   443,   448,   449,
992 >     455,   459,   461,   463,   465,   467,   469,   471,   473,   475,
993 >     477,   479,   481,   483,   485,   487,   489,   491,   493,   495,
994 >     497,   499,   501,   502,   508,   512,   514,   516,   518,   520,
995 >     522,   524,   526,   528,   530,   532,   534,   536,   538,   540,
996 >     542,   544,   546,   548,   550,   552,   553,   560,   563,   565,
997 >     567,   569,   571,   573,   575,   577,   579,   581,   583,   585,
998 >     587,   589,   591,   594,   599,   604,   609,   614,   619,   624,
999 >     629,   634,   639,   644,   649,   654,   659,   660,   667,   668,
1000 >     674,   678,   680,   682,   684,   686,   689,   691,   693,   695,
1001 >     697,   699,   702,   703,   709,   713,   715,   717,   721,   726,
1002 >     731,   732,   739,   742,   744,   746,   748,   750,   752,   754,
1003 >     756,   758,   760,   763,   768,   773,   778,   783,   784,   790,
1004 >     794,   796,   798,   800,   802,   804,   806,   808,   810,   812,
1005 >     814,   816,   821,   826,   831,   832,   839,   842,   844,   846,
1006 >     848,   850,   853,   858,   863,   868,   874,   877,   879,   881,
1007 >     883,   888,   889,   896,   899,   901,   903,   905,   907,   910,
1008 >     915,   920,   921,   927,   931,   933,   935,   937,   939,   941,
1009 >     943,   945,   947,   949,   951,   953,   954,   961,   964,   966,
1010 >     968,   970,   973,   978,   979,   985,   989,   991,   993,   995,
1011 >     997,   999,  1001,  1003,  1005,  1007,  1009,  1011,  1012,  1019,
1012 >    1022,  1024,  1026,  1028,  1030,  1032,  1034,  1036,  1038,  1040,
1013 >    1042,  1044,  1046,  1048,  1050,  1053,  1058,  1063,  1068,  1073,
1014 >    1078,  1083,  1088,  1093,  1094,  1100,  1104,  1106,  1108,  1110,
1015 >    1115,  1120,  1125,  1130,  1135,  1136,  1143,  1144,  1150,  1154,
1016 >    1156,  1158,  1161,  1163,  1165,  1167,  1169,  1171,  1176,  1181,
1017 >    1182,  1189,  1192,  1194,  1196,  1198,  1200,  1205,  1210,  1216,
1018 >    1219,  1221,  1223,  1225,  1230,  1231,  1238,  1239,  1245,  1249,
1019 >    1251,  1253,  1256,  1258,  1260,  1262,  1264,  1266,  1271,  1276,
1020 >    1282,  1285,  1287,  1289,  1291,  1293,  1295,  1297,  1299,  1301,
1021 >    1303,  1305,  1307,  1309,  1311,  1313,  1315,  1317,  1319,  1321,
1022 >    1323,  1325,  1327,  1329,  1331,  1333,  1335,  1337,  1339,  1341,
1023 >    1343,  1345,  1347,  1349,  1351,  1353,  1355,  1357,  1359,  1361,
1024 >    1363,  1365,  1367,  1369,  1371,  1373,  1375,  1377,  1379,  1381,
1025 >    1383,  1385,  1387,  1392,  1397,  1402,  1407,  1412,  1417,  1422,
1026 >    1427,  1432,  1437,  1442,  1447,  1452,  1457,  1462,  1467,  1472,
1027 >    1477,  1482,  1487,  1492,  1497,  1502,  1507,  1512,  1517,  1522,
1028 >    1527,  1532,  1537,  1542,  1547,  1552,  1557,  1562,  1567,  1572,
1029 >    1577,  1582,  1587,  1592,  1597,  1602,  1607,  1612,  1617,  1618,
1030 >    1624,  1628,  1630,  1632,  1634,  1636,  1638,  1640,  1642,  1644,
1031 >    1646,  1648,  1650,  1652,  1654,  1656,  1658,  1660,  1662,  1664,
1032 >    1666,  1668,  1670,  1671,  1677,  1681,  1683,  1685,  1687,  1689,
1033 >    1691,  1693,  1695,  1697,  1699,  1701,  1703,  1705,  1707,  1709,
1034 >    1711,  1713,  1715,  1717,  1719,  1721,  1723,  1728,  1733,  1738,
1035 >    1744,  1747,  1749,  1751,  1753,  1755,  1757,  1759,  1761,  1763,
1036 >    1765,  1767,  1769,  1771,  1773,  1775,  1777,  1779,  1784,  1789,
1037 >    1794,  1799,  1804,  1809,  1814,  1819,  1824,  1829,  1834,  1839,
1038 >    1844,  1849,  1855,  1858,  1860,  1862,  1864,  1866,  1868,  1870,
1039 >    1872,  1874,  1879,  1884,  1889,  1894,  1899
1040   };
1041  
1042   /* YYRHS -- A `-1'-separated list of the rules' RHS.  */
1043   static const yytype_int16 yyrhs[] =
1044   {
1045 <     247,     0,    -1,    -1,   247,   248,    -1,   278,    -1,   284,
1046 <      -1,   299,    -1,   519,    -1,   317,    -1,   334,    -1,   348,
1047 <      -1,   258,    -1,   540,    -1,   363,    -1,   370,    -1,   374,
1048 <      -1,   384,    -1,   393,    -1,   413,    -1,   423,    -1,   429,
1049 <      -1,   443,    -1,   503,    -1,   433,    -1,   253,    -1,     1,
1050 <     241,    -1,     1,   242,    -1,    -1,   250,    -1,   110,   249,
1051 <      -1,   110,   152,   249,    -1,   110,   153,   249,    -1,   110,
1052 <     154,   249,    -1,   110,   155,   249,    -1,   110,   156,   249,
1053 <      -1,    -1,   252,    -1,   110,   251,    -1,   110,    14,   251,
1054 <      -1,   110,    15,   251,    -1,   110,    16,   251,    -1,    99,
1055 <     243,   254,   242,   241,    -1,   254,   255,    -1,   255,    -1,
1056 <     256,    -1,   257,    -1,     1,   241,    -1,    98,   244,   131,
1057 <     241,    -1,   126,   244,   131,   241,    -1,   160,   243,   259,
1058 <     242,   241,    -1,   259,   260,    -1,   260,    -1,   269,    -1,
1059 <     274,    -1,   277,    -1,   271,    -1,   272,    -1,   273,    -1,
1060 <     276,    -1,   267,    -1,   266,    -1,   275,    -1,   270,    -1,
1061 <     265,    -1,   261,    -1,   268,    -1,     1,   241,    -1,    -1,
1062 <     147,   262,   244,   263,   241,    -1,   263,   245,   264,    -1,
1063 <     264,    -1,   148,    -1,   149,    -1,   145,   244,   131,   241,
1064 <      -1,   143,   244,   131,   241,    -1,   146,   244,   131,   241,
1065 <      -1,   187,   244,   131,   241,    -1,   100,   244,   131,   241,
1066 <      -1,   161,   244,   131,   241,    -1,    31,   244,   131,   241,
1067 <      -1,   103,   244,   131,   241,    -1,   102,   244,   131,   241,
1068 <      -1,   234,   244,   131,   241,    -1,   235,   244,   131,   241,
1069 <      -1,   199,   244,   110,   241,    -1,    67,   244,   175,   241,
1070 <      -1,     5,   243,   279,   242,   241,    -1,   279,   280,    -1,
1071 <     280,    -1,   281,    -1,   283,    -1,   282,    -1,     1,   241,
1072 <      -1,   100,   244,   131,   241,    -1,    41,   244,   131,   241,
1073 <      -1,    31,   244,   131,   241,    -1,    83,   243,   285,   242,
1074 <     241,    -1,   285,   286,    -1,   286,    -1,   287,    -1,   288,
1075 <      -1,   289,    -1,     1,   241,    -1,   232,   244,   175,   241,
1076 <      -1,   219,   244,   175,   241,    -1,    -1,   290,   240,   243,
1077 <     291,   242,   241,    -1,   291,   292,    -1,   292,    -1,   293,
1078 <      -1,   295,    -1,   294,    -1,     1,   241,    -1,   100,   244,
1079 <     131,   241,    -1,   239,   244,   252,   241,    -1,   239,   244,
1080 <     211,   241,    -1,    -1,   165,   296,   244,   297,   241,    -1,
1081 <     297,   245,   298,    -1,   298,    -1,   227,    -1,   115,    -1,
1082 <      51,    -1,   191,    -1,    74,    -1,    72,    -1,   190,    -1,
1083 <      -1,   115,   300,   243,   301,   242,   241,    -1,   301,   302,
1084 <      -1,   302,    -1,   303,    -1,   304,    -1,   305,    -1,   309,
1085 <      -1,   308,    -1,   306,    -1,   307,    -1,   313,    -1,     1,
1086 <     241,    -1,   100,   244,   131,   241,    -1,   227,   244,   131,
1087 <     241,    -1,   125,   244,   131,   241,    -1,    43,   244,   175,
1088 <     241,    -1,   144,   244,   131,   241,    -1,    24,   244,   131,
1089 <     241,    -1,    -1,   208,   310,   244,   311,   241,    -1,   311,
1090 <     245,   312,    -1,   312,    -1,   182,    -1,   185,    -1,   186,
1091 <      -1,   189,    -1,   190,    -1,   194,    -1,    61,    -1,   205,
1092 <      -1,   200,    -1,   202,    -1,   209,    -1,   206,    -1,   193,
1093 <      -1,   201,    -1,   204,    -1,   195,    -1,   215,    -1,   183,
1094 <      -1,   184,    -1,   198,    -1,    -1,    47,   314,   244,   315,
1095 <     241,    -1,   315,   245,   316,    -1,   316,    -1,    57,    -1,
1096 <     139,    -1,    74,    -1,   226,    -1,   191,    -1,   210,    -1,
1097 <     236,    -1,    51,    -1,    32,    -1,   216,    -1,   137,    -1,
1098 <       5,    -1,   105,    -1,   201,    -1,   214,    -1,   119,    -1,
1099 <     140,    -1,    98,    -1,    -1,    24,   318,   243,   319,   242,
1100 <     241,    -1,   319,   320,    -1,   320,    -1,   321,    -1,   331,
1101 <      -1,   332,    -1,   322,    -1,   323,    -1,   333,    -1,   324,
1102 <      -1,   325,    -1,   326,    -1,   327,    -1,   328,    -1,   329,
1103 <      -1,   330,    -1,     1,   241,    -1,   100,   244,   131,   241,
1104 <      -1,   128,   244,   250,   241,    -1,   129,   244,   250,   241,
1105 <      -1,   113,   244,   110,   241,    -1,    26,   244,   250,   241,
1106 <      -1,    92,   244,   110,   241,    -1,    87,   244,   110,   241,
1107 <      -1,    89,   244,   110,   241,    -1,    88,   244,   110,   241,
1108 <      -1,   157,   244,   252,   241,    -1,    22,   244,   110,   241,
1109 <      -1,    23,   244,   110,   241,    -1,   112,   244,   110,   241,
1110 <      -1,    -1,    82,   335,   243,   340,   242,   241,    -1,    -1,
1111 <      47,   337,   244,   338,   241,    -1,   338,   245,   339,    -1,
1112 <     339,    -1,   207,    -1,    61,    -1,   203,    -1,   340,   341,
1113 <      -1,   341,    -1,   342,    -1,   336,    -1,   346,    -1,   347,
1114 <      -1,     1,   241,    -1,    -1,   130,   244,   344,   343,   241,
1115 <      -1,   344,   245,   345,    -1,   345,    -1,   110,    -1,   110,
1116 <     180,   110,    -1,    71,   244,   131,   241,    -1,    66,   244,
1117 <     131,   241,    -1,    -1,    58,   349,   243,   350,   242,   241,
1118 <      -1,   350,   351,    -1,   351,    -1,   352,    -1,   353,    -1,
1119 <     354,    -1,   356,    -1,   360,    -1,   361,    -1,   362,    -1,
1120 <     355,    -1,     1,   241,    -1,   227,   244,   131,   241,    -1,
1121 <     125,   244,   131,   241,    -1,    24,   244,   131,   241,    -1,
1122 <      43,   244,   175,   241,    -1,    -1,    47,   357,   244,   358,
1123 <     241,    -1,   358,   245,   359,    -1,   359,    -1,   169,    -1,
1124 <      44,    -1,    75,    -1,    59,    -1,    20,    -1,   109,    -1,
1125 <      53,    -1,   151,    -1,   101,    -1,   168,   244,   131,   241,
1126 <      -1,   135,   244,   131,   241,    -1,   134,   244,   110,   241,
1127 <      -1,    -1,   150,   364,   243,   365,   242,   241,    -1,   365,
1128 <     366,    -1,   366,    -1,   367,    -1,   368,    -1,   369,    -1,
1129 <       1,   241,    -1,   133,   244,   131,   241,    -1,    21,   244,
1130 <     131,   241,    -1,   104,   244,   131,   241,    -1,   217,   243,
1131 <     371,   242,   241,    -1,   371,   372,    -1,   372,    -1,   373,
1132 <      -1,     1,    -1,   100,   244,   131,   241,    -1,    -1,   163,
1133 <     375,   243,   376,   242,   241,    -1,   376,   377,    -1,   377,
1134 <      -1,   378,    -1,   379,    -1,   380,    -1,     1,   241,    -1,
1135 <     100,   244,   131,   241,    -1,   227,   244,   131,   241,    -1,
1136 <      -1,   165,   381,   244,   382,   241,    -1,   382,   245,   383,
1137 <      -1,   383,    -1,    74,    -1,   226,    -1,   191,    -1,   210,
1138 <      -1,   236,    -1,   213,    -1,   150,    -1,   212,    -1,   198,
1139 <      -1,   181,    -1,    -1,   164,   385,   243,   386,   242,   241,
1140 <      -1,   386,   387,    -1,   387,    -1,   388,    -1,   389,    -1,
1141 <       1,   241,    -1,   100,   244,   131,   241,    -1,    -1,   165,
1142 <     390,   244,   391,   241,    -1,   391,   245,   392,    -1,   392,
1143 <      -1,    74,    -1,   226,    -1,   191,    -1,   210,    -1,   236,
1144 <      -1,   213,    -1,   150,    -1,   212,    -1,   198,    -1,   181,
1145 <      -1,    -1,    25,   394,   243,   395,   242,   241,    -1,   395,
1146 <     396,    -1,   396,    -1,   397,    -1,   398,    -1,   399,    -1,
1147 <     400,    -1,   401,    -1,   403,    -1,   402,    -1,   412,    -1,
1148 <     404,    -1,   409,    -1,   410,    -1,   411,    -1,   408,    -1,
1149 <       1,   241,    -1,   100,   244,   131,   241,    -1,    66,   244,
1150 <     131,   241,    -1,   234,   244,   131,   241,    -1,   158,   244,
1151 <     131,   241,    -1,     3,   244,   131,   241,    -1,   130,   244,
1152 <     110,   241,    -1,     6,   244,   196,   241,    -1,     6,   244,
1153 <     197,   241,    -1,    -1,    47,   405,   244,   406,   241,    -1,
1154 <     406,   245,   407,    -1,   407,    -1,    10,    -1,    12,    -1,
1155 <     221,    -1,   207,    -1,    43,   244,   175,   241,    -1,    68,
1156 <     244,   131,   241,    -1,    80,   244,   131,   241,    -1,    24,
1157 <     244,   131,   241,    -1,   187,   244,   131,   241,    -1,    -1,
1158 <      72,   414,   243,   419,   242,   241,    -1,    -1,   165,   416,
1159 <     244,   417,   241,    -1,   417,   245,   418,    -1,   418,    -1,
1160 <     136,    -1,   419,   420,    -1,   420,    -1,   421,    -1,   422,
1161 <      -1,   415,    -1,     1,    -1,   227,   244,   131,   241,    -1,
1162 <     133,   244,   131,   241,    -1,    -1,    30,   424,   243,   425,
1163 <     242,   241,    -1,   425,   426,    -1,   426,    -1,   427,    -1,
1164 <     428,    -1,     1,    -1,    71,   244,   131,   241,    -1,   133,
1165 <     244,   131,   241,    -1,    45,   243,   430,   242,   241,    -1,
1166 <     430,   431,    -1,   431,    -1,   432,    -1,     1,    -1,    71,
1167 <     244,   131,   241,    -1,    -1,    49,   434,   243,   439,   242,
1168 <     241,    -1,    -1,   165,   436,   244,   437,   241,    -1,   437,
1169 <     245,   438,    -1,   438,    -1,   136,    -1,   439,   440,    -1,
1170 <     440,    -1,   441,    -1,   442,    -1,   435,    -1,     1,    -1,
1171 <     100,   244,   131,   241,    -1,   133,   244,   131,   241,    -1,
1172 <      50,   243,   444,   242,   241,    -1,   444,   445,    -1,   445,
1173 <      -1,   453,    -1,   454,    -1,   456,    -1,   457,    -1,   458,
1174 <      -1,   459,    -1,   460,    -1,   461,    -1,   462,    -1,   463,
1175 <      -1,   452,    -1,   465,    -1,   466,    -1,   467,    -1,   468,
1176 <      -1,   483,    -1,   470,    -1,   472,    -1,   474,    -1,   473,
1177 <      -1,   477,    -1,   471,    -1,   478,    -1,   479,    -1,   480,
1178 <      -1,   481,    -1,   482,    -1,   495,    -1,   484,    -1,   485,
1179 <      -1,   486,    -1,   491,    -1,   475,    -1,   476,    -1,   501,
1180 <      -1,   499,    -1,   500,    -1,   455,    -1,   502,    -1,   490,
1181 <      -1,   464,    -1,   488,    -1,   489,    -1,   451,    -1,   447,
1182 <      -1,   448,    -1,   449,    -1,   450,    -1,   469,    -1,   446,
1183 <      -1,   487,    -1,     1,    -1,    94,   244,   110,   241,    -1,
1184 <      55,   244,   110,   241,    -1,    56,   244,   110,   241,    -1,
1185 <     233,   244,   175,   241,    -1,   138,   244,   250,   241,    -1,
1186 <     162,   244,   175,   241,    -1,    73,   244,   250,   241,    -1,
1187 <      65,   244,   175,   241,    -1,    69,   244,   175,   241,    -1,
1188 <      37,   244,   175,   241,    -1,    46,   244,   175,   241,    -1,
1189 <       8,   244,   175,   241,    -1,    91,   244,   250,   241,    -1,
1190 <      90,   244,   110,   241,    -1,    84,   244,   110,   241,    -1,
1191 <       9,   244,   250,   241,    -1,   179,   244,   250,   241,    -1,
1192 <     178,   244,   250,   241,    -1,    60,   244,   110,   241,    -1,
1193 <      77,   244,   175,   241,    -1,    76,   244,   131,   241,    -1,
1194 <      70,   244,   175,   241,    -1,   238,   244,   175,   241,    -1,
1195 <     170,   244,   175,   241,    -1,   173,   244,   175,   241,    -1,
1196 <     174,   244,   175,   241,    -1,   172,   244,   175,   241,    -1,
1197 <     172,   244,   176,   241,    -1,   171,   244,   175,   241,    -1,
1198 <     171,   244,   176,   241,    -1,   123,   244,   250,   241,    -1,
1199 <      19,   244,   250,   241,    -1,   116,   244,   175,   241,    -1,
1200 <     124,   244,   250,   241,    -1,   166,   244,   175,   241,    -1,
1201 <     108,   244,   175,   241,    -1,   222,   244,   175,   241,    -1,
1202 <     118,   244,   175,   241,    -1,    95,   244,   131,   241,    -1,
1203 <      38,   244,   110,   241,    -1,    93,   244,   110,   241,    -1,
1204 <     228,   244,   175,   241,    -1,    40,   244,   131,   241,    -1,
1205 <     218,   244,   131,   241,    -1,   127,   244,   175,   241,    -1,
1206 <      33,   244,   175,   241,    -1,   220,   244,   250,   241,    -1,
1207 <      -1,   120,   492,   244,   493,   241,    -1,   493,   245,   494,
1208 <      -1,   494,    -1,   182,    -1,   185,    -1,   186,    -1,   189,
1209 <      -1,   190,    -1,   194,    -1,    61,    -1,   205,    -1,   200,
1210 <      -1,   202,    -1,   209,    -1,   206,    -1,   193,    -1,   201,
1211 <      -1,   204,    -1,   195,    -1,   215,    -1,   183,    -1,   184,
1212 <      -1,   198,    -1,    -1,   117,   496,   244,   497,   241,    -1,
1213 <     497,   245,   498,    -1,   498,    -1,   182,    -1,   185,    -1,
1214 <     186,    -1,   189,    -1,   190,    -1,   194,    -1,   205,    -1,
1215 <      61,    -1,   200,    -1,   202,    -1,   209,    -1,   206,    -1,
1216 <     193,    -1,   201,    -1,   204,    -1,   195,    -1,   215,    -1,
1217 <     183,    -1,   184,    -1,   198,    -1,    96,   244,   110,   241,
1218 <      -1,    97,   244,   110,   241,    -1,    27,   244,   110,   241,
1219 <      -1,   188,   244,   252,   241,    -1,    -1,    52,   504,   243,
1220 <     505,   242,   241,    -1,   505,   506,    -1,   506,    -1,   507,
1221 <      -1,   508,    -1,   509,    -1,   513,    -1,   514,    -1,   515,
1222 <      -1,     1,    -1,    42,   244,   175,   241,    -1,    39,   244,
1223 <     250,   241,    -1,    -1,    83,   510,   244,   511,   241,    -1,
1224 <     511,   245,   512,    -1,   512,    -1,   177,    -1,    11,    -1,
1225 <     227,   244,   131,   241,    -1,   100,   244,   131,   241,    -1,
1226 <      -1,     4,   516,   244,   517,   241,    -1,   517,   245,   518,
1227 <      -1,   518,    -1,   177,    -1,    11,    -1,    21,   243,   520,
1228 <     242,   241,    -1,   520,   521,    -1,   521,    -1,   524,    -1,
1229 <     525,    -1,   526,    -1,   527,    -1,   532,    -1,   528,    -1,
1230 <     529,    -1,   530,    -1,   531,    -1,   533,    -1,   534,    -1,
1231 <     535,    -1,   523,    -1,   536,    -1,   537,    -1,   538,    -1,
1232 <     539,    -1,   522,    -1,     1,    -1,    34,   244,   175,   241,
1233 <      -1,   141,   244,   175,   241,    -1,    36,   244,   175,   241,
1234 <      -1,   229,   244,   175,   241,    -1,   230,   244,   175,   241,
1235 <      -1,   231,   244,   175,   241,    -1,    78,   244,   250,   241,
1274 <      -1,    79,   244,   250,   241,    -1,    86,   244,   110,   241,
1275 <      -1,   132,   244,   175,   241,    -1,    85,   244,   110,   241,
1276 <      -1,    29,   244,   110,   241,    -1,    28,   244,   110,   241,
1277 <      -1,   106,   244,   175,   241,    -1,   107,   244,   175,   241,
1278 <      -1,    13,   244,   175,   241,    -1,   121,   244,   110,   241,
1279 <      -1,   122,   244,   250,   241,    -1,   159,   243,   541,   242,
1280 <     241,    -1,   541,   542,    -1,   542,    -1,   543,    -1,   544,
1281 <      -1,   546,    -1,   548,    -1,   547,    -1,   545,    -1,   549,
1282 <      -1,     1,    -1,    48,   244,   175,   241,    -1,    64,   244,
1283 <     175,   241,    -1,    62,   244,   131,   241,    -1,    81,   244,
1284 <     250,   241,    -1,    61,   244,   175,   241,    -1,    35,   244,
1285 <     175,   241,    -1,    63,   244,   175,   241,    -1
1045 >     221,     0,    -1,    -1,   221,   222,    -1,   254,    -1,   260,
1046 >      -1,   274,    -1,   476,    -1,   292,    -1,   309,    -1,   323,
1047 >      -1,   232,    -1,   493,    -1,   338,    -1,   345,    -1,   349,
1048 >      -1,   359,    -1,   368,    -1,   388,    -1,   398,    -1,   404,
1049 >      -1,   418,    -1,   408,    -1,   227,    -1,     1,   215,    -1,
1050 >       1,   216,    -1,    -1,   224,    -1,    99,   223,    -1,    99,
1051 >     137,   223,    -1,    99,   138,   223,    -1,    99,   139,   223,
1052 >      -1,    99,   140,   223,    -1,    99,   141,   223,    -1,    -1,
1053 >     226,    -1,    99,   225,    -1,    99,     9,   225,    -1,    99,
1054 >      10,   225,    -1,    99,    11,   225,    -1,    88,   217,   228,
1055 >     216,   215,    -1,   228,   229,    -1,   229,    -1,   230,    -1,
1056 >     231,    -1,     1,   215,    -1,    87,   218,   117,   215,    -1,
1057 >     113,   218,   117,   215,    -1,   145,   217,   233,   216,   215,
1058 >      -1,   233,   234,    -1,   234,    -1,   245,    -1,   250,    -1,
1059 >     253,    -1,   247,    -1,   248,    -1,   249,    -1,   252,    -1,
1060 >     243,    -1,   242,    -1,   251,    -1,   246,    -1,   241,    -1,
1061 >     235,    -1,   236,    -1,   244,    -1,     1,   215,    -1,   131,
1062 >     218,   237,   215,    -1,   132,   218,   239,   215,    -1,   237,
1063 >     219,   238,    -1,   238,    -1,   133,    -1,   134,    -1,   239,
1064 >     219,   240,    -1,   240,    -1,   133,    -1,   134,    -1,   129,
1065 >     218,   117,   215,    -1,   127,   218,   117,   215,    -1,   130,
1066 >     218,   117,   215,    -1,   170,   218,   117,   215,    -1,    89,
1067 >     218,   117,   215,    -1,   146,   218,   117,   215,    -1,    24,
1068 >     218,   117,   215,    -1,    92,   218,   117,   215,    -1,    91,
1069 >     218,   117,   215,    -1,   209,   218,   117,   215,    -1,   210,
1070 >     218,   117,   215,    -1,   180,   218,    99,   215,    -1,    57,
1071 >     218,   159,   215,    -1,     4,   217,   255,   216,   215,    -1,
1072 >     255,   256,    -1,   256,    -1,   257,    -1,   259,    -1,   258,
1073 >      -1,     1,   215,    -1,    89,   218,   117,   215,    -1,    31,
1074 >     218,   117,   215,    -1,    24,   218,   117,   215,    -1,    71,
1075 >     217,   261,   216,   215,    -1,   261,   262,    -1,   262,    -1,
1076 >     263,    -1,   264,    -1,     1,   215,    -1,   208,   218,   159,
1077 >     215,    -1,    -1,   265,   214,   217,   266,   216,   215,    -1,
1078 >     266,   267,    -1,   267,    -1,   268,    -1,   270,    -1,   269,
1079 >      -1,     1,   215,    -1,    89,   218,   117,   215,    -1,   213,
1080 >     218,   226,   215,    -1,   213,   218,   194,   215,    -1,    -1,
1081 >     150,   271,   218,   272,   215,    -1,   272,   219,   273,    -1,
1082 >     273,    -1,   206,    -1,   102,    -1,    40,    -1,   173,    -1,
1083 >      64,    -1,    62,    -1,   172,    -1,    -1,   102,   275,   217,
1084 >     276,   216,   215,    -1,   276,   277,    -1,   277,    -1,   278,
1085 >      -1,   279,    -1,   280,    -1,   284,    -1,   283,    -1,   281,
1086 >      -1,   282,    -1,   288,    -1,     1,   215,    -1,    89,   218,
1087 >     117,   215,    -1,   206,   218,   117,   215,    -1,   112,   218,
1088 >     117,   215,    -1,    32,   218,   159,   215,    -1,   128,   218,
1089 >     117,   215,    -1,    17,   218,   117,   215,    -1,    -1,   191,
1090 >     285,   218,   286,   215,    -1,   286,   219,   287,    -1,   287,
1091 >      -1,   165,    -1,   168,    -1,   169,    -1,   171,    -1,   172,
1092 >      -1,   175,    -1,    51,    -1,   188,    -1,   181,    -1,   184,
1093 >      -1,   192,    -1,   189,    -1,   174,    -1,   182,    -1,   186,
1094 >      -1,   176,    -1,   198,    -1,   166,    -1,   167,    -1,   179,
1095 >      -1,    -1,    36,   289,   218,   290,   215,    -1,   290,   219,
1096 >     291,    -1,   291,    -1,    47,    -1,   124,    -1,    64,    -1,
1097 >     205,    -1,   173,    -1,   193,    -1,   211,    -1,    40,    -1,
1098 >      25,    -1,   200,    -1,   123,    -1,     4,    -1,    94,    -1,
1099 >     182,    -1,   197,    -1,   106,    -1,   125,    -1,   187,    -1,
1100 >      87,    -1,    -1,    17,   293,   217,   294,   216,   215,    -1,
1101 >     294,   295,    -1,   295,    -1,   296,    -1,   306,    -1,   307,
1102 >      -1,   297,    -1,   308,    -1,   298,    -1,   299,    -1,   300,
1103 >      -1,   301,    -1,   302,    -1,   303,    -1,   304,    -1,   305,
1104 >      -1,     1,   215,    -1,    89,   218,   117,   215,    -1,   115,
1105 >     218,   224,   215,    -1,   101,   218,    99,   215,    -1,    19,
1106 >     218,   224,   215,    -1,    81,   218,    99,   215,    -1,    76,
1107 >     218,    99,   215,    -1,    78,   218,    99,   215,    -1,    77,
1108 >     218,    99,   215,    -1,   142,   218,   226,   215,    -1,   183,
1109 >     218,   226,   215,    -1,    15,   218,    99,   215,    -1,    16,
1110 >     218,    99,   215,    -1,   100,   218,    99,   215,    -1,    -1,
1111 >      70,   310,   217,   315,   216,   215,    -1,    -1,    36,   312,
1112 >     218,   313,   215,    -1,   313,   219,   314,    -1,   314,    -1,
1113 >     190,    -1,    51,    -1,   185,    -1,   315,   316,    -1,   316,
1114 >      -1,   317,    -1,   311,    -1,   321,    -1,   322,    -1,     1,
1115 >     215,    -1,    -1,   116,   218,   319,   318,   215,    -1,   319,
1116 >     219,   320,    -1,   320,    -1,    99,    -1,    99,   163,    99,
1117 >      -1,    61,   218,   117,   215,    -1,    56,   218,   117,   215,
1118 >      -1,    -1,    48,   324,   217,   325,   216,   215,    -1,   325,
1119 >     326,    -1,   326,    -1,   327,    -1,   328,    -1,   329,    -1,
1120 >     331,    -1,   335,    -1,   336,    -1,   337,    -1,   330,    -1,
1121 >       1,   215,    -1,   206,   218,   117,   215,    -1,   112,   218,
1122 >     117,   215,    -1,    17,   218,   117,   215,    -1,    32,   218,
1123 >     159,   215,    -1,    -1,    36,   332,   218,   333,   215,    -1,
1124 >     333,   219,   334,    -1,   334,    -1,   153,    -1,    33,    -1,
1125 >      65,    -1,    49,    -1,    13,    -1,    98,    -1,    43,    -1,
1126 >     136,    -1,   199,    -1,    90,    -1,   152,   218,   117,   215,
1127 >      -1,   121,   218,   117,   215,    -1,   120,   218,    99,   215,
1128 >      -1,    -1,   135,   339,   217,   340,   216,   215,    -1,   340,
1129 >     341,    -1,   341,    -1,   342,    -1,   343,    -1,   344,    -1,
1130 >       1,   215,    -1,   119,   218,   117,   215,    -1,    14,   218,
1131 >     117,   215,    -1,    93,   218,   117,   215,    -1,   201,   217,
1132 >     346,   216,   215,    -1,   346,   347,    -1,   347,    -1,   348,
1133 >      -1,     1,    -1,    89,   218,   117,   215,    -1,    -1,   148,
1134 >     350,   217,   351,   216,   215,    -1,   351,   352,    -1,   352,
1135 >      -1,   353,    -1,   354,    -1,   355,    -1,     1,   215,    -1,
1136 >      89,   218,   117,   215,    -1,   206,   218,   117,   215,    -1,
1137 >      -1,   150,   356,   218,   357,   215,    -1,   357,   219,   358,
1138 >      -1,   358,    -1,    64,    -1,   205,    -1,   173,    -1,   193,
1139 >      -1,   211,    -1,   196,    -1,   135,    -1,   195,    -1,   179,
1140 >      -1,   164,    -1,    -1,   149,   360,   217,   361,   216,   215,
1141 >      -1,   361,   362,    -1,   362,    -1,   363,    -1,   364,    -1,
1142 >       1,   215,    -1,    89,   218,   117,   215,    -1,    -1,   150,
1143 >     365,   218,   366,   215,    -1,   366,   219,   367,    -1,   367,
1144 >      -1,    64,    -1,   205,    -1,   173,    -1,   193,    -1,   211,
1145 >      -1,   196,    -1,   135,    -1,   195,    -1,   179,    -1,   164,
1146 >      -1,    -1,    18,   369,   217,   370,   216,   215,    -1,   370,
1147 >     371,    -1,   371,    -1,   372,    -1,   373,    -1,   374,    -1,
1148 >     375,    -1,   376,    -1,   378,    -1,   377,    -1,   387,    -1,
1149 >     379,    -1,   384,    -1,   385,    -1,   386,    -1,   383,    -1,
1150 >       1,   215,    -1,    89,   218,   117,   215,    -1,    56,   218,
1151 >     117,   215,    -1,   209,   218,   117,   215,    -1,   143,   218,
1152 >     117,   215,    -1,     3,   218,   117,   215,    -1,   116,   218,
1153 >      99,   215,    -1,     5,   218,   177,   215,    -1,     5,   218,
1154 >     178,   215,    -1,    -1,    36,   380,   218,   381,   215,    -1,
1155 >     381,   219,   382,    -1,   382,    -1,     8,    -1,   190,    -1,
1156 >      32,   218,   159,   215,    -1,    58,   218,   117,   215,    -1,
1157 >      68,   218,   117,   215,    -1,    17,   218,   117,   215,    -1,
1158 >     170,   218,   117,   215,    -1,    -1,    62,   389,   217,   394,
1159 >     216,   215,    -1,    -1,   150,   391,   218,   392,   215,    -1,
1160 >     392,   219,   393,    -1,   393,    -1,   122,    -1,   394,   395,
1161 >      -1,   395,    -1,   396,    -1,   397,    -1,   390,    -1,     1,
1162 >      -1,   206,   218,   117,   215,    -1,   119,   218,   117,   215,
1163 >      -1,    -1,    23,   399,   217,   400,   216,   215,    -1,   400,
1164 >     401,    -1,   401,    -1,   402,    -1,   403,    -1,     1,    -1,
1165 >      61,   218,   117,   215,    -1,   119,   218,   117,   215,    -1,
1166 >      34,   217,   405,   216,   215,    -1,   405,   406,    -1,   406,
1167 >      -1,   407,    -1,     1,    -1,    61,   218,   117,   215,    -1,
1168 >      -1,    38,   409,   217,   414,   216,   215,    -1,    -1,   150,
1169 >     411,   218,   412,   215,    -1,   412,   219,   413,    -1,   413,
1170 >      -1,   122,    -1,   414,   415,    -1,   415,    -1,   416,    -1,
1171 >     417,    -1,   410,    -1,     1,    -1,    89,   218,   117,   215,
1172 >      -1,   119,   218,   117,   215,    -1,    39,   217,   419,   216,
1173 >     215,    -1,   419,   420,    -1,   420,    -1,   429,    -1,   430,
1174 >      -1,   432,    -1,   433,    -1,   434,    -1,   435,    -1,   436,
1175 >      -1,   437,    -1,   438,    -1,   439,    -1,   428,    -1,   441,
1176 >      -1,   442,    -1,   457,    -1,   444,    -1,   446,    -1,   448,
1177 >      -1,   447,    -1,   451,    -1,   445,    -1,   452,    -1,   453,
1178 >      -1,   454,    -1,   455,    -1,   456,    -1,   469,    -1,   458,
1179 >      -1,   459,    -1,   460,    -1,   465,    -1,   449,    -1,   450,
1180 >      -1,   475,    -1,   473,    -1,   474,    -1,   431,    -1,   464,
1181 >      -1,   440,    -1,   462,    -1,   463,    -1,   427,    -1,   422,
1182 >      -1,   423,    -1,   424,    -1,   425,    -1,   426,    -1,   443,
1183 >      -1,   421,    -1,   461,    -1,     1,    -1,    83,   218,    99,
1184 >     215,    -1,    42,   218,   159,   215,    -1,    41,   218,   224,
1185 >     215,    -1,    44,   218,   224,   215,    -1,    45,   218,    99,
1186 >     215,    -1,    46,   218,    99,   215,    -1,   147,   218,   159,
1187 >     215,    -1,    63,   218,   224,   215,    -1,    55,   218,   159,
1188 >     215,    -1,    59,   218,   159,   215,    -1,    28,   218,   159,
1189 >     215,    -1,    35,   218,   159,   215,    -1,     6,   218,   159,
1190 >     215,    -1,    80,   218,   224,   215,    -1,    79,   218,    99,
1191 >     215,    -1,    72,   218,    99,   215,    -1,     7,   218,   224,
1192 >     215,    -1,   162,   218,   224,   215,    -1,   161,   218,   224,
1193 >     215,    -1,    50,   218,    99,   215,    -1,    60,   218,   159,
1194 >     215,    -1,   212,   218,   159,   215,    -1,   154,   218,   159,
1195 >     215,    -1,   157,   218,   159,   215,    -1,   158,   218,   159,
1196 >     215,    -1,   156,   218,   159,   215,    -1,   156,   218,   160,
1197 >     215,    -1,   155,   218,   159,   215,    -1,   155,   218,   160,
1198 >     215,    -1,   110,   218,   224,   215,    -1,    12,   218,   224,
1199 >     215,    -1,   103,   218,   159,   215,    -1,   111,   218,   224,
1200 >     215,    -1,   151,   218,   159,   215,    -1,    97,   218,   159,
1201 >     215,    -1,   204,   218,   159,   215,    -1,   105,   218,   159,
1202 >     215,    -1,    84,   218,   117,   215,    -1,    29,   218,    99,
1203 >     215,    -1,    82,   218,    99,   215,    -1,   207,   218,   159,
1204 >     215,    -1,    30,   218,   117,   215,    -1,   202,   218,   117,
1205 >     215,    -1,   114,   218,   159,   215,    -1,    26,   218,   159,
1206 >     215,    -1,   203,   218,   224,   215,    -1,    -1,   107,   466,
1207 >     218,   467,   215,    -1,   467,   219,   468,    -1,   468,    -1,
1208 >     165,    -1,   168,    -1,   169,    -1,   171,    -1,   172,    -1,
1209 >     175,    -1,    51,    -1,   188,    -1,   181,    -1,   184,    -1,
1210 >     192,    -1,   189,    -1,   174,    -1,   182,    -1,   186,    -1,
1211 >     176,    -1,   198,    -1,   166,    -1,   167,    -1,   179,    -1,
1212 >      -1,   104,   470,   218,   471,   215,    -1,   471,   219,   472,
1213 >      -1,   472,    -1,   165,    -1,   168,    -1,   169,    -1,   171,
1214 >      -1,   172,    -1,   175,    -1,   188,    -1,    51,    -1,   181,
1215 >      -1,   184,    -1,   192,    -1,   189,    -1,   174,    -1,   182,
1216 >      -1,   186,    -1,   176,    -1,   198,    -1,   166,    -1,   167,
1217 >      -1,   179,    -1,    85,   218,    99,   215,    -1,    86,   218,
1218 >      99,   215,    -1,    20,   218,    99,   215,    -1,    14,   217,
1219 >     477,   216,   215,    -1,   477,   478,    -1,   478,    -1,   486,
1220 >      -1,   481,    -1,   482,    -1,   483,    -1,   484,    -1,   485,
1221 >      -1,   487,    -1,   488,    -1,   489,    -1,   480,    -1,   490,
1222 >      -1,   491,    -1,   492,    -1,   479,    -1,     1,    -1,    27,
1223 >     218,   159,   215,    -1,   126,   218,   159,   215,    -1,    66,
1224 >     218,   224,   215,    -1,    67,   218,   224,   215,    -1,    75,
1225 >     218,    99,   215,    -1,    74,   218,    99,   215,    -1,   118,
1226 >     218,   159,   215,    -1,    73,   218,    99,   215,    -1,    22,
1227 >     218,    99,   215,    -1,    21,   218,    99,   215,    -1,    95,
1228 >     218,   159,   215,    -1,    96,   218,   159,   215,    -1,   108,
1229 >     218,    99,   215,    -1,   109,   218,   224,   215,    -1,   144,
1230 >     217,   494,   216,   215,    -1,   494,   495,    -1,   495,    -1,
1231 >     496,    -1,   497,    -1,   499,    -1,   500,    -1,   498,    -1,
1232 >     501,    -1,     1,    -1,    37,   218,   159,   215,    -1,    54,
1233 >     218,   159,   215,    -1,    52,   218,   117,   215,    -1,    69,
1234 >     218,   224,   215,    -1,    51,   218,   159,   215,    -1,    53,
1235 >     218,   159,   215,    -1
1236   };
1237  
1238   /* YYRLINE[YYN] -- source line where rule number YYN was defined.  */
1239   static const yytype_uint16 yyrline[] =
1240   {
1241 <       0,   377,   377,   378,   381,   382,   383,   384,   385,   386,
1242 <     387,   388,   389,   390,   391,   392,   393,   394,   395,   396,
1243 <     397,   398,   399,   400,   401,   402,   403,   407,   407,   408,
1244 <     412,   416,   420,   424,   428,   434,   434,   435,   436,   437,
1245 <     438,   445,   448,   448,   449,   449,   449,   451,   457,   464,
1246 <     466,   466,   467,   467,   468,   468,   469,   469,   470,   470,
1247 <     471,   471,   472,   472,   473,   473,   474,   478,   477,   503,
1248 <     503,   504,   510,   518,   557,   616,   640,   650,   665,   680,
1249 <     689,   703,   712,   740,   770,   793,   802,   804,   804,   805,
1250 <     805,   806,   806,   808,   817,   826,   838,   839,   839,   841,
1251 <     841,   841,   842,   844,   850,   857,   857,   867,   868,   870,
1252 <     870,   871,   871,   873,   878,   881,   887,   886,   892,   892,
1253 <     893,   897,   901,   905,   909,   913,   917,   928,   927,  1025,
1254 <    1025,  1026,  1026,  1026,  1027,  1027,  1027,  1028,  1028,  1028,
1255 <    1030,  1042,  1079,  1091,  1102,  1144,  1154,  1153,  1159,  1159,
1256 <    1160,  1164,  1168,  1172,  1176,  1180,  1184,  1188,  1192,  1196,
1257 <    1200,  1204,  1208,  1212,  1216,  1220,  1224,  1228,  1232,  1236,
1258 <    1243,  1242,  1248,  1248,  1249,  1253,  1257,  1261,  1265,  1269,
1259 <    1273,  1277,  1281,  1285,  1289,  1293,  1297,  1301,  1305,  1309,
1260 <    1313,  1317,  1328,  1327,  1377,  1377,  1378,  1379,  1379,  1380,
1261 <    1381,  1382,  1383,  1384,  1385,  1386,  1387,  1388,  1389,  1390,
1262 <    1392,  1401,  1407,  1413,  1419,  1425,  1431,  1437,  1443,  1449,
1263 <    1455,  1461,  1467,  1477,  1476,  1493,  1492,  1497,  1497,  1498,
1264 <    1502,  1506,  1514,  1514,  1515,  1515,  1515,  1515,  1515,  1517,
1265 <    1517,  1519,  1519,  1521,  1535,  1555,  1564,  1577,  1576,  1645,
1266 <    1645,  1646,  1646,  1646,  1646,  1647,  1647,  1647,  1648,  1648,
1267 <    1650,  1687,  1700,  1709,  1721,  1720,  1724,  1724,  1725,  1729,
1268 <    1733,  1737,  1741,  1745,  1749,  1753,  1757,  1764,  1783,  1793,
1269 <    1807,  1806,  1822,  1822,  1823,  1823,  1823,  1823,  1825,  1834,
1270 <    1849,  1862,  1864,  1864,  1865,  1865,  1867,  1883,  1882,  1898,
1271 <    1898,  1899,  1899,  1899,  1899,  1901,  1910,  1933,  1932,  1938,
1272 <    1938,  1939,  1943,  1947,  1951,  1955,  1959,  1963,  1967,  1971,
1273 <    1975,  1985,  1984,  2001,  2001,  2002,  2002,  2002,  2004,  2011,
1274 <    2010,  2016,  2016,  2017,  2021,  2025,  2029,  2033,  2037,  2041,
1275 <    2045,  2049,  2053,  2063,  2062,  2191,  2191,  2192,  2192,  2192,
1276 <    2193,  2193,  2194,  2194,  2194,  2195,  2195,  2195,  2196,  2196,
1277 <    2197,  2199,  2211,  2220,  2246,  2264,  2282,  2288,  2292,  2301,
1278 <    2300,  2304,  2304,  2305,  2309,  2313,  2317,  2323,  2334,  2347,
1279 <    2360,  2369,  2388,  2387,  2451,  2450,  2454,  2454,  2455,  2461,
1280 <    2461,  2462,  2462,  2462,  2462,  2464,  2483,  2493,  2492,  2515,
1281 <    2515,  2516,  2516,  2516,  2518,  2524,  2533,  2535,  2535,  2536,
1282 <    2536,  2538,  2557,  2556,  2604,  2603,  2607,  2607,  2608,  2614,
1283 <    2614,  2615,  2615,  2615,  2615,  2617,  2623,  2632,  2635,  2635,
1284 <    2636,  2636,  2637,  2637,  2638,  2638,  2639,  2639,  2640,  2640,
1285 <    2641,  2641,  2642,  2642,  2643,  2643,  2644,  2644,  2645,  2645,
1286 <    2646,  2646,  2647,  2647,  2648,  2648,  2649,  2650,  2650,  2651,
1287 <    2651,  2652,  2652,  2653,  2653,  2654,  2654,  2655,  2656,  2657,
1288 <    2657,  2658,  2659,  2660,  2660,  2661,  2661,  2662,  2662,  2663,
1289 <    2663,  2664,  2667,  2672,  2677,  2682,  2687,  2692,  2697,  2702,
1290 <    2707,  2712,  2717,  2722,  2727,  2732,  2737,  2742,  2747,  2752,
1291 <    2758,  2769,  2774,  2783,  2788,  2793,  2798,  2803,  2808,  2811,
1292 <    2816,  2819,  2824,  2829,  2834,  2839,  2844,  2849,  2854,  2859,
1293 <    2864,  2875,  2880,  2885,  2890,  2899,  2908,  2913,  2918,  2924,
1294 <    2923,  2928,  2928,  2929,  2932,  2935,  2938,  2941,  2944,  2947,
1295 <    2950,  2953,  2956,  2959,  2962,  2965,  2968,  2971,  2974,  2977,
1296 <    2980,  2983,  2986,  2992,  2991,  2996,  2996,  2997,  3000,  3003,
1297 <    3006,  3009,  3012,  3015,  3018,  3021,  3024,  3027,  3030,  3033,
1298 <    3036,  3039,  3042,  3045,  3048,  3051,  3054,  3059,  3064,  3069,
1299 <    3074,  3084,  3083,  3107,  3107,  3108,  3109,  3110,  3111,  3112,
1300 <    3113,  3114,  3116,  3122,  3129,  3128,  3133,  3133,  3134,  3138,
1301 <    3144,  3178,  3188,  3187,  3237,  3237,  3238,  3242,  3251,  3254,
1302 <    3254,  3255,  3255,  3256,  3256,  3257,  3257,  3258,  3258,  3259,
1303 <    3259,  3260,  3261,  3261,  3262,  3262,  3263,  3263,  3264,  3264,
1354 <    3266,  3271,  3276,  3281,  3286,  3291,  3296,  3301,  3306,  3311,
1355 <    3316,  3321,  3326,  3331,  3336,  3341,  3346,  3351,  3359,  3362,
1356 <    3362,  3363,  3363,  3364,  3365,  3366,  3366,  3367,  3368,  3370,
1357 <    3376,  3382,  3391,  3405,  3411,  3417
1241 >       0,   355,   355,   356,   359,   360,   361,   362,   363,   364,
1242 >     365,   366,   367,   368,   369,   370,   371,   372,   373,   374,
1243 >     375,   376,   377,   378,   379,   380,   384,   384,   385,   389,
1244 >     393,   397,   401,   405,   411,   411,   412,   413,   414,   415,
1245 >     422,   425,   425,   426,   426,   426,   428,   434,   441,   443,
1246 >     443,   444,   444,   445,   445,   446,   446,   447,   447,   448,
1247 >     448,   449,   449,   450,   450,   451,   452,   455,   456,   458,
1248 >     458,   459,   465,   473,   473,   474,   480,   488,   527,   586,
1249 >     614,   622,   637,   652,   661,   675,   684,   712,   742,   765,
1250 >     774,   776,   776,   777,   777,   778,   778,   780,   789,   798,
1251 >     810,   811,   811,   813,   813,   814,   816,   823,   823,   836,
1252 >     837,   839,   839,   840,   840,   842,   850,   853,   859,   858,
1253 >     864,   864,   865,   869,   873,   877,   881,   885,   889,   900,
1254 >     899,   979,   979,   980,   980,   980,   981,   981,   981,   982,
1255 >     982,   982,   984,   990,   996,  1002,  1013,  1019,  1026,  1025,
1256 >    1031,  1031,  1032,  1036,  1040,  1044,  1048,  1052,  1056,  1060,
1257 >    1064,  1068,  1072,  1076,  1080,  1084,  1088,  1092,  1096,  1100,
1258 >    1104,  1108,  1115,  1114,  1120,  1120,  1121,  1125,  1129,  1133,
1259 >    1137,  1141,  1145,  1149,  1153,  1157,  1161,  1165,  1169,  1173,
1260 >    1177,  1181,  1185,  1189,  1193,  1204,  1203,  1254,  1254,  1255,
1261 >    1256,  1256,  1257,  1258,  1259,  1260,  1261,  1262,  1263,  1264,
1262 >    1265,  1265,  1266,  1268,  1274,  1280,  1286,  1292,  1298,  1304,
1263 >    1310,  1316,  1322,  1329,  1335,  1341,  1351,  1350,  1357,  1356,
1264 >    1361,  1361,  1362,  1366,  1370,  1376,  1376,  1377,  1377,  1377,
1265 >    1377,  1377,  1379,  1379,  1381,  1381,  1383,  1397,  1417,  1423,
1266 >    1433,  1432,  1474,  1474,  1475,  1475,  1475,  1475,  1476,  1476,
1267 >    1476,  1477,  1477,  1479,  1485,  1491,  1497,  1509,  1508,  1514,
1268 >    1514,  1515,  1519,  1523,  1527,  1531,  1535,  1539,  1543,  1547,
1269 >    1551,  1557,  1571,  1580,  1594,  1593,  1602,  1602,  1603,  1603,
1270 >    1603,  1603,  1605,  1611,  1620,  1629,  1631,  1631,  1632,  1632,
1271 >    1634,  1650,  1649,  1674,  1674,  1675,  1675,  1675,  1675,  1677,
1272 >    1683,  1703,  1702,  1708,  1708,  1709,  1713,  1717,  1721,  1725,
1273 >    1729,  1733,  1737,  1741,  1745,  1755,  1754,  1775,  1775,  1776,
1274 >    1776,  1776,  1778,  1785,  1784,  1790,  1790,  1791,  1795,  1799,
1275 >    1803,  1807,  1811,  1815,  1819,  1823,  1827,  1837,  1836,  1902,
1276 >    1902,  1903,  1903,  1903,  1904,  1904,  1905,  1905,  1905,  1906,
1277 >    1906,  1906,  1907,  1907,  1908,  1910,  1916,  1922,  1928,  1941,
1278 >    1954,  1960,  1964,  1973,  1972,  1977,  1977,  1978,  1982,  1988,
1279 >    1999,  2005,  2011,  2017,  2033,  2032,  2095,  2094,  2100,  2100,
1280 >    2101,  2107,  2107,  2108,  2108,  2108,  2108,  2110,  2130,  2140,
1281 >    2139,  2166,  2166,  2167,  2167,  2167,  2169,  2175,  2184,  2186,
1282 >    2186,  2187,  2187,  2189,  2207,  2206,  2252,  2251,  2257,  2257,
1283 >    2258,  2264,  2264,  2265,  2265,  2265,  2265,  2267,  2273,  2282,
1284 >    2285,  2285,  2286,  2286,  2287,  2287,  2288,  2288,  2289,  2289,
1285 >    2290,  2290,  2291,  2292,  2293,  2293,  2294,  2294,  2295,  2295,
1286 >    2296,  2296,  2297,  2297,  2298,  2298,  2299,  2300,  2300,  2301,
1287 >    2301,  2302,  2302,  2303,  2303,  2304,  2304,  2305,  2306,  2306,
1288 >    2307,  2308,  2309,  2309,  2310,  2310,  2311,  2312,  2313,  2314,
1289 >    2314,  2315,  2318,  2323,  2329,  2335,  2341,  2346,  2351,  2356,
1290 >    2361,  2366,  2371,  2376,  2381,  2386,  2391,  2396,  2401,  2406,
1291 >    2411,  2417,  2428,  2433,  2438,  2443,  2448,  2453,  2456,  2461,
1292 >    2464,  2469,  2474,  2479,  2484,  2489,  2494,  2499,  2504,  2509,
1293 >    2520,  2525,  2530,  2535,  2544,  2553,  2558,  2563,  2569,  2568,
1294 >    2573,  2573,  2574,  2577,  2580,  2583,  2586,  2589,  2592,  2595,
1295 >    2598,  2601,  2604,  2607,  2610,  2613,  2616,  2619,  2622,  2625,
1296 >    2628,  2631,  2637,  2636,  2641,  2641,  2642,  2645,  2648,  2651,
1297 >    2654,  2657,  2660,  2663,  2666,  2669,  2672,  2675,  2678,  2681,
1298 >    2684,  2687,  2690,  2693,  2696,  2699,  2704,  2709,  2714,  2723,
1299 >    2726,  2726,  2727,  2728,  2728,  2729,  2729,  2730,  2730,  2731,
1300 >    2732,  2732,  2733,  2734,  2734,  2735,  2735,  2737,  2742,  2747,
1301 >    2752,  2757,  2762,  2767,  2772,  2777,  2782,  2787,  2792,  2797,
1302 >    2802,  2810,  2813,  2813,  2814,  2814,  2815,  2816,  2816,  2817,
1303 >    2818,  2820,  2826,  2832,  2841,  2855,  2861
1304   };
1305   #endif
1306  
1307 < #if YYDEBUG || YYERROR_VERBOSE || YYTOKEN_TABLE
1307 > #if YYDEBUG || YYERROR_VERBOSE || 0
1308   /* YYTNAME[SYMBOL-NUM] -- String name of the symbol SYMBOL-NUM.
1309     First, the terminals, then, starting at YYNTOKENS, nonterminals.  */
1310   static const char *const yytname[] =
1311   {
1312 <  "$end", "error", "$undefined", "ACCEPT_PASSWORD", "ACTION", "ADMIN",
1313 <  "AFTYPE", "T_ALLOW", "ANTI_NICK_FLOOD", "ANTI_SPAM_EXIT_MESSAGE_TIME",
1314 <  "AUTOCONN", "T_BLOCK", "BURST_AWAY", "BURST_TOPICWHO", "BYTES", "KBYTES",
1369 <  "MBYTES", "GBYTES", "TBYTES", "CALLER_ID_WAIT", "CAN_FLOOD", "CHANNEL",
1312 >  "$end", "error", "$undefined", "ACCEPT_PASSWORD", "ADMIN", "AFTYPE",
1313 >  "ANTI_NICK_FLOOD", "ANTI_SPAM_EXIT_MESSAGE_TIME", "AUTOCONN", "BYTES",
1314 >  "KBYTES", "MBYTES", "CALLER_ID_WAIT", "CAN_FLOOD", "CHANNEL",
1315    "CIDR_BITLEN_IPV4", "CIDR_BITLEN_IPV6", "CLASS", "CONNECT",
1316    "CONNECTFREQ", "DEFAULT_FLOODCOUNT", "DEFAULT_SPLIT_SERVER_COUNT",
1317    "DEFAULT_SPLIT_USER_COUNT", "DENY", "DESCRIPTION", "DIE", "DISABLE_AUTH",
1318 <  "DISABLE_FAKE_CHANNELS", "DISABLE_HIDDEN", "DISABLE_LOCAL_CHANNELS",
1319 <  "DISABLE_REMOTE_COMMANDS", "DOTS_IN_IDENT", "DURATION", "EGDPOOL_PATH",
1375 <  "EMAIL", "ENABLE", "ENCRYPTED", "EXCEED_LIMIT", "EXEMPT",
1318 >  "DISABLE_FAKE_CHANNELS", "DISABLE_REMOTE_COMMANDS", "DOTS_IN_IDENT",
1319 >  "EGDPOOL_PATH", "EMAIL", "ENCRYPTED", "EXCEED_LIMIT", "EXEMPT",
1320    "FAILED_OPER_NOTICE", "IRCD_FLAGS", "FLATTEN_LINKS", "GECOS", "GENERAL",
1321 <  "GLINE", "GLINES", "GLINE_EXEMPT", "GLINE_TIME", "GLINE_MIN_CIDR",
1322 <  "GLINE_MIN_CIDR6", "GLOBAL_KILL", "IRCD_AUTH", "NEED_IDENT",
1323 <  "HAVENT_READ_CONF", "HIDDEN", "HIDDEN_NAME", "HIDE_SERVER_IPS",
1324 <  "HIDE_SERVERS", "HIDE_SPOOF_IPS", "HOST", "HUB", "HUB_MASK",
1325 <  "IGNORE_BOGUS_TS", "INVISIBLE_ON_CONNECT", "IP", "KILL",
1326 <  "KILL_CHASE_TIME_LIMIT", "KLINE", "KLINE_EXEMPT", "KLINE_REASON",
1327 <  "KLINE_WITH_REASON", "KNOCK_DELAY", "KNOCK_DELAY_CHANNEL", "LEAF_MASK",
1328 <  "LINKS_DELAY", "LISTEN", "T_LOG", "MAX_ACCEPT", "MAX_BANS",
1321 >  "GLINE", "GLINE_DURATION", "GLINE_ENABLE", "GLINE_EXEMPT",
1322 >  "GLINE_REQUEST_DURATION", "GLINE_MIN_CIDR", "GLINE_MIN_CIDR6",
1323 >  "GLOBAL_KILL", "IRCD_AUTH", "NEED_IDENT", "HAVENT_READ_CONF", "HIDDEN",
1324 >  "HIDDEN_NAME", "HIDE_SERVER_IPS", "HIDE_SERVERS", "HIDE_SPOOF_IPS",
1325 >  "HOST", "HUB", "HUB_MASK", "IGNORE_BOGUS_TS", "INVISIBLE_ON_CONNECT",
1326 >  "IP", "KILL", "KILL_CHASE_TIME_LIMIT", "KLINE", "KLINE_EXEMPT",
1327 >  "KNOCK_DELAY", "KNOCK_DELAY_CHANNEL", "LEAF_MASK", "LINKS_DELAY",
1328 >  "LISTEN", "T_LOG", "MAX_ACCEPT", "MAX_BANS", "MAX_CHANS_PER_OPER",
1329    "MAX_CHANS_PER_USER", "MAX_GLOBAL", "MAX_IDENT", "MAX_LOCAL",
1330    "MAX_NICK_CHANGES", "MAX_NICK_TIME", "MAX_NUMBER", "MAX_TARGETS",
1331    "MAX_WATCH", "MESSAGE_LOCALE", "MIN_NONWILDCARD",
1332    "MIN_NONWILDCARD_SIMPLE", "MODULE", "MODULES", "NAME", "NEED_PASSWORD",
1333    "NETWORK_DESC", "NETWORK_NAME", "NICK", "NICK_CHANGES",
1334    "NO_CREATE_ON_SPLIT", "NO_JOIN_ON_SPLIT", "NO_OPER_FLOOD", "NO_TILDE",
1335 <  "NUMBER", "NUMBER_PER_IDENT", "NUMBER_PER_CIDR", "NUMBER_PER_IP",
1336 <  "NUMBER_PER_IP_GLOBAL", "OPERATOR", "OPERS_BYPASS_CALLERID",
1337 <  "OPER_ONLY_UMODES", "OPER_PASS_RESV", "OPER_SPY_T", "OPER_UMODES",
1338 <  "JOIN_FLOOD_COUNT", "JOIN_FLOOD_TIME", "PACE_WAIT", "PACE_WAIT_SIMPLE",
1339 <  "PASSWORD", "PATH", "PING_COOKIE", "PING_TIME", "PING_WARNING", "PORT",
1340 <  "QSTRING", "QUIET_ON_BAN", "REASON", "REDIRPORT", "REDIRSERV", "REGEX_T",
1341 <  "REHASH", "TREJECT_HOLD_TIME", "REMOTE", "REMOTEBAN",
1342 <  "RESTRICT_CHANNELS", "RESTRICTED", "RSA_PRIVATE_KEY_FILE",
1343 <  "RSA_PUBLIC_KEY_FILE", "SSL_CERTIFICATE_FILE", "SSL_DH_PARAM_FILE",
1400 <  "T_SSL_CONNECTION_METHOD", "T_SSLV3", "T_TLSV1", "RESV", "RESV_EXEMPT",
1335 >  "NUMBER", "NUMBER_PER_CIDR", "NUMBER_PER_IP", "OPERATOR",
1336 >  "OPERS_BYPASS_CALLERID", "OPER_ONLY_UMODES", "OPER_PASS_RESV",
1337 >  "OPER_SPY_T", "OPER_UMODES", "JOIN_FLOOD_COUNT", "JOIN_FLOOD_TIME",
1338 >  "PACE_WAIT", "PACE_WAIT_SIMPLE", "PASSWORD", "PATH", "PING_COOKIE",
1339 >  "PING_TIME", "PORT", "QSTRING", "QUIET_ON_BAN", "REASON", "REDIRPORT",
1340 >  "REDIRSERV", "REGEX_T", "REHASH", "REMOTE", "REMOTEBAN",
1341 >  "RESTRICT_CHANNELS", "RSA_PRIVATE_KEY_FILE", "RSA_PUBLIC_KEY_FILE",
1342 >  "SSL_CERTIFICATE_FILE", "SSL_DH_PARAM_FILE", "T_SSL_CLIENT_METHOD",
1343 >  "T_SSL_SERVER_METHOD", "T_SSLV3", "T_TLSV1", "RESV", "RESV_EXEMPT",
1344    "SECONDS", "MINUTES", "HOURS", "DAYS", "WEEKS", "SENDQ", "SEND_PASSWORD",
1345    "SERVERHIDE", "SERVERINFO", "IRCD_SID", "TKLINE_EXPIRE_NOTICES",
1346 <  "T_SHARED", "T_CLUSTER", "TYPE", "SHORT_MOTD", "SILENT", "SPOOF",
1347 <  "SPOOF_NOTICE", "STATS_E_DISABLED", "STATS_I_OPER_ONLY",
1348 <  "STATS_K_OPER_ONLY", "STATS_O_OPER_ONLY", "STATS_P_OPER_ONLY", "TBOOL",
1349 <  "TMASKED", "T_REJECT", "TS_MAX_DELTA", "TS_WARN_DELTA", "TWODOTS",
1350 <  "T_ALL", "T_BOTS", "T_SOFTCALLERID", "T_CALLERID", "T_CCONN",
1351 <  "T_CCONN_FULL", "T_SSL_CIPHER_LIST", "T_CLIENT_FLOOD", "T_DEAF",
1352 <  "T_DEBUG", "T_DLINE", "T_DRONE", "T_EXTERNAL", "T_FULL", "T_INVISIBLE",
1353 <  "T_IPV4", "T_IPV6", "T_LOCOPS", "T_MAX_CLIENTS", "T_NCHANGE",
1354 <  "T_OPERWALL", "T_REJ", "T_SERVER", "T_SERVNOTICE", "T_SKILL", "T_SPY",
1355 <  "T_SSL", "T_UMODES", "T_UNAUTH", "T_UNDLINE", "T_UNLIMITED", "T_UNRESV",
1356 <  "T_UNXLINE", "T_GLOBOPS", "T_WALLOP", "T_RESTART", "T_SERVICE",
1357 <  "T_SERVICES_NAME", "T_TIMESTAMP", "THROTTLE_TIME", "TOPICBURST",
1358 <  "TRUE_NO_OPER_FLOOD", "TKLINE", "TXLINE", "TRESV", "UNKLINE", "USER",
1416 <  "USE_EGD", "USE_EXCEPT", "USE_INVEX", "USE_KNOCK", "USE_LOGGING",
1417 <  "USE_WHOIS_ACTUALLY", "VHOST", "VHOST6", "XLINE", "WARN",
1346 >  "T_SHARED", "T_CLUSTER", "TYPE", "SHORT_MOTD", "SPOOF", "SPOOF_NOTICE",
1347 >  "STATS_E_DISABLED", "STATS_I_OPER_ONLY", "STATS_K_OPER_ONLY",
1348 >  "STATS_O_OPER_ONLY", "STATS_P_OPER_ONLY", "TBOOL", "TMASKED",
1349 >  "TS_MAX_DELTA", "TS_WARN_DELTA", "TWODOTS", "T_ALL", "T_BOTS",
1350 >  "T_SOFTCALLERID", "T_CALLERID", "T_CCONN", "T_CCONN_FULL",
1351 >  "T_SSL_CIPHER_LIST", "T_DEAF", "T_DEBUG", "T_DLINE", "T_EXTERNAL",
1352 >  "T_FULL", "T_INVISIBLE", "T_IPV4", "T_IPV6", "T_LOCOPS", "T_MAX_CLIENTS",
1353 >  "T_NCHANGE", "T_OPERWALL", "T_RECVQ", "T_REJ", "T_SERVER",
1354 >  "T_SERVNOTICE", "T_SET", "T_SKILL", "T_SPY", "T_SSL", "T_UMODES",
1355 >  "T_UNAUTH", "T_UNDLINE", "T_UNLIMITED", "T_UNRESV", "T_UNXLINE",
1356 >  "T_GLOBOPS", "T_WALLOP", "T_WEBIRC", "T_RESTART", "T_SERVICE",
1357 >  "T_SERVICES_NAME", "THROTTLE_TIME", "TRUE_NO_OPER_FLOOD", "UNKLINE",
1358 >  "USER", "USE_EGD", "USE_LOGGING", "VHOST", "VHOST6", "XLINE",
1359    "WARN_NO_NLINE", "T_SIZE", "T_FILE", "';'", "'}'", "'{'", "'='", "','",
1360    "$accept", "conf", "conf_item", "timespec_", "timespec", "sizespec_",
1361    "sizespec", "modules_entry", "modules_items", "modules_item",
1362    "modules_module", "modules_path", "serverinfo_entry", "serverinfo_items",
1363 <  "serverinfo_item", "serverinfo_ssl_connection_method", "$@1",
1364 <  "method_types", "method_type_item", "serverinfo_ssl_certificate_file",
1363 >  "serverinfo_item", "serverinfo_ssl_client_method",
1364 >  "serverinfo_ssl_server_method", "client_method_types",
1365 >  "client_method_type_item", "server_method_types",
1366 >  "server_method_type_item", "serverinfo_ssl_certificate_file",
1367    "serverinfo_rsa_private_key_file", "serverinfo_ssl_dh_param_file",
1368    "serverinfo_ssl_cipher_list", "serverinfo_name", "serverinfo_sid",
1369    "serverinfo_description", "serverinfo_network_name",
# Line 1428 | Line 1371 | static const char *const yytname[] =
1371    "serverinfo_max_clients", "serverinfo_hub", "admin_entry", "admin_items",
1372    "admin_item", "admin_name", "admin_email", "admin_description",
1373    "logging_entry", "logging_items", "logging_item", "logging_use_logging",
1374 <  "logging_timestamp", "logging_file_entry", "$@2", "logging_file_items",
1375 <  "logging_file_item", "logging_file_name", "logging_file_size",
1376 <  "logging_file_type", "$@3", "logging_file_type_items",
1377 <  "logging_file_type_item", "oper_entry", "$@4", "oper_items", "oper_item",
1378 <  "oper_name", "oper_user", "oper_password", "oper_encrypted",
1379 <  "oper_rsa_public_key_file", "oper_class", "oper_umodes", "$@5",
1380 <  "oper_umodes_items", "oper_umodes_item", "oper_flags", "$@6",
1381 <  "oper_flags_items", "oper_flags_item", "class_entry", "$@7",
1382 <  "class_items", "class_item", "class_name", "class_ping_time",
1440 <  "class_ping_warning", "class_number_per_ip", "class_connectfreq",
1374 >  "logging_file_entry", "$@1", "logging_file_items", "logging_file_item",
1375 >  "logging_file_name", "logging_file_size", "logging_file_type", "$@2",
1376 >  "logging_file_type_items", "logging_file_type_item", "oper_entry", "$@3",
1377 >  "oper_items", "oper_item", "oper_name", "oper_user", "oper_password",
1378 >  "oper_encrypted", "oper_rsa_public_key_file", "oper_class",
1379 >  "oper_umodes", "$@4", "oper_umodes_items", "oper_umodes_item",
1380 >  "oper_flags", "$@5", "oper_flags_items", "oper_flags_item",
1381 >  "class_entry", "$@6", "class_items", "class_item", "class_name",
1382 >  "class_ping_time", "class_number_per_ip", "class_connectfreq",
1383    "class_max_number", "class_max_global", "class_max_local",
1384 <  "class_max_ident", "class_sendq", "class_cidr_bitlen_ipv4",
1385 <  "class_cidr_bitlen_ipv6", "class_number_per_cidr", "listen_entry", "$@8",
1386 <  "listen_flags", "$@9", "listen_flags_items", "listen_flags_item",
1387 <  "listen_items", "listen_item", "listen_port", "$@10", "port_items",
1388 <  "port_item", "listen_address", "listen_host", "auth_entry", "$@11",
1389 <  "auth_items", "auth_item", "auth_user", "auth_passwd", "auth_class",
1390 <  "auth_encrypted", "auth_flags", "$@12", "auth_flags_items",
1391 <  "auth_flags_item", "auth_spoof", "auth_redir_serv", "auth_redir_port",
1392 <  "resv_entry", "$@13", "resv_items", "resv_item", "resv_creason",
1393 <  "resv_channel", "resv_nick", "service_entry", "service_items",
1394 <  "service_item", "service_name", "shared_entry", "$@14", "shared_items",
1395 <  "shared_item", "shared_name", "shared_user", "shared_type", "$@15",
1396 <  "shared_types", "shared_type_item", "cluster_entry", "$@16",
1397 <  "cluster_items", "cluster_item", "cluster_name", "cluster_type", "$@17",
1398 <  "cluster_types", "cluster_type_item", "connect_entry", "$@18",
1399 <  "connect_items", "connect_item", "connect_name", "connect_host",
1400 <  "connect_vhost", "connect_send_password", "connect_accept_password",
1401 <  "connect_port", "connect_aftype", "connect_flags", "$@19",
1402 <  "connect_flags_items", "connect_flags_item", "connect_encrypted",
1403 <  "connect_hub_mask", "connect_leaf_mask", "connect_class",
1404 <  "connect_ssl_cipher_list", "kill_entry", "$@20", "kill_type", "$@21",
1405 <  "kill_type_items", "kill_type_item", "kill_items", "kill_item",
1406 <  "kill_user", "kill_reason", "deny_entry", "$@22", "deny_items",
1407 <  "deny_item", "deny_ip", "deny_reason", "exempt_entry", "exempt_items",
1408 <  "exempt_item", "exempt_ip", "gecos_entry", "$@23", "gecos_flags", "$@24",
1409 <  "gecos_flags_items", "gecos_flags_item", "gecos_items", "gecos_item",
1410 <  "gecos_name", "gecos_reason", "general_entry", "general_items",
1411 <  "general_item", "general_max_watch", "general_gline_min_cidr",
1412 <  "general_gline_min_cidr6", "general_use_whois_actually",
1413 <  "general_reject_hold_time", "general_tkline_expire_notices",
1384 >  "class_max_ident", "class_sendq", "class_recvq",
1385 >  "class_cidr_bitlen_ipv4", "class_cidr_bitlen_ipv6",
1386 >  "class_number_per_cidr", "listen_entry", "$@7", "listen_flags", "$@8",
1387 >  "listen_flags_items", "listen_flags_item", "listen_items", "listen_item",
1388 >  "listen_port", "$@9", "port_items", "port_item", "listen_address",
1389 >  "listen_host", "auth_entry", "$@10", "auth_items", "auth_item",
1390 >  "auth_user", "auth_passwd", "auth_class", "auth_encrypted", "auth_flags",
1391 >  "$@11", "auth_flags_items", "auth_flags_item", "auth_spoof",
1392 >  "auth_redir_serv", "auth_redir_port", "resv_entry", "$@12", "resv_items",
1393 >  "resv_item", "resv_creason", "resv_channel", "resv_nick",
1394 >  "service_entry", "service_items", "service_item", "service_name",
1395 >  "shared_entry", "$@13", "shared_items", "shared_item", "shared_name",
1396 >  "shared_user", "shared_type", "$@14", "shared_types", "shared_type_item",
1397 >  "cluster_entry", "$@15", "cluster_items", "cluster_item", "cluster_name",
1398 >  "cluster_type", "$@16", "cluster_types", "cluster_type_item",
1399 >  "connect_entry", "$@17", "connect_items", "connect_item", "connect_name",
1400 >  "connect_host", "connect_vhost", "connect_send_password",
1401 >  "connect_accept_password", "connect_port", "connect_aftype",
1402 >  "connect_flags", "$@18", "connect_flags_items", "connect_flags_item",
1403 >  "connect_encrypted", "connect_hub_mask", "connect_leaf_mask",
1404 >  "connect_class", "connect_ssl_cipher_list", "kill_entry", "$@19",
1405 >  "kill_type", "$@20", "kill_type_items", "kill_type_item", "kill_items",
1406 >  "kill_item", "kill_user", "kill_reason", "deny_entry", "$@21",
1407 >  "deny_items", "deny_item", "deny_ip", "deny_reason", "exempt_entry",
1408 >  "exempt_items", "exempt_item", "exempt_ip", "gecos_entry", "$@22",
1409 >  "gecos_flags", "$@23", "gecos_flags_items", "gecos_flags_item",
1410 >  "gecos_items", "gecos_item", "gecos_name", "gecos_reason",
1411 >  "general_entry", "general_items", "general_item", "general_max_watch",
1412 >  "general_gline_enable", "general_gline_duration",
1413 >  "general_gline_request_duration", "general_gline_min_cidr",
1414 >  "general_gline_min_cidr6", "general_tkline_expire_notices",
1415    "general_kill_chase_time_limit", "general_hide_spoof_ips",
1416    "general_ignore_bogus_ts", "general_disable_remote_commands",
1417    "general_failed_oper_notice", "general_anti_nick_flood",
1418    "general_max_nick_time", "general_max_nick_changes",
1419    "general_max_accept", "general_anti_spam_exit_message_time",
1420    "general_ts_warn_delta", "general_ts_max_delta",
1421 <  "general_havent_read_conf", "general_kline_with_reason",
1479 <  "general_kline_reason", "general_invisible_on_connect",
1421 >  "general_havent_read_conf", "general_invisible_on_connect",
1422    "general_warn_no_nline", "general_stats_e_disabled",
1423    "general_stats_o_oper_only", "general_stats_P_oper_only",
1424    "general_stats_k_oper_only", "general_stats_i_oper_only",
# Line 1487 | Line 1429 | static const char *const yytname[] =
1429    "general_message_locale", "general_dots_in_ident", "general_max_targets",
1430    "general_use_egd", "general_egdpool_path", "general_services_name",
1431    "general_ping_cookie", "general_disable_auth", "general_throttle_time",
1432 <  "general_oper_umodes", "$@25", "umode_oitems", "umode_oitem",
1433 <  "general_oper_only_umodes", "$@26", "umode_items", "umode_item",
1432 >  "general_oper_umodes", "$@24", "umode_oitems", "umode_oitem",
1433 >  "general_oper_only_umodes", "$@25", "umode_items", "umode_item",
1434    "general_min_nonwildcard", "general_min_nonwildcard_simple",
1435 <  "general_default_floodcount", "general_client_flood", "gline_entry",
1436 <  "$@27", "gline_items", "gline_item", "gline_enable", "gline_duration",
1437 <  "gline_logging", "$@28", "gline_logging_types",
1438 <  "gline_logging_type_item", "gline_user", "gline_server", "gline_action",
1439 <  "$@29", "gdeny_types", "gdeny_type_item", "channel_entry",
1498 <  "channel_items", "channel_item", "channel_disable_fake_channels",
1499 <  "channel_restrict_channels", "channel_disable_local_channels",
1500 <  "channel_use_except", "channel_use_invex", "channel_use_knock",
1501 <  "channel_knock_delay", "channel_knock_delay_channel",
1502 <  "channel_max_chans_per_user", "channel_quiet_on_ban", "channel_max_bans",
1435 >  "general_default_floodcount", "channel_entry", "channel_items",
1436 >  "channel_item", "channel_disable_fake_channels",
1437 >  "channel_restrict_channels", "channel_knock_delay",
1438 >  "channel_knock_delay_channel", "channel_max_chans_per_user",
1439 >  "channel_max_chans_per_oper", "channel_quiet_on_ban", "channel_max_bans",
1440    "channel_default_split_user_count", "channel_default_split_server_count",
1441    "channel_no_create_on_split", "channel_no_join_on_split",
1442 <  "channel_burst_topicwho", "channel_jflood_count", "channel_jflood_time",
1443 <  "serverhide_entry", "serverhide_items", "serverhide_item",
1444 <  "serverhide_flatten_links", "serverhide_hide_servers",
1445 <  "serverhide_hidden_name", "serverhide_links_delay", "serverhide_hidden",
1446 <  "serverhide_disable_hidden", "serverhide_hide_server_ips", 0
1442 >  "channel_jflood_count", "channel_jflood_time", "serverhide_entry",
1443 >  "serverhide_items", "serverhide_item", "serverhide_flatten_links",
1444 >  "serverhide_hide_servers", "serverhide_hidden_name",
1445 >  "serverhide_links_delay", "serverhide_hidden",
1446 >  "serverhide_hide_server_ips", YY_NULL
1447   };
1448   #endif
1449  
# Line 1536 | Line 1473 | static const yytype_uint16 yytoknum[] =
1473       435,   436,   437,   438,   439,   440,   441,   442,   443,   444,
1474       445,   446,   447,   448,   449,   450,   451,   452,   453,   454,
1475       455,   456,   457,   458,   459,   460,   461,   462,   463,   464,
1476 <     465,   466,   467,   468,   469,   470,   471,   472,   473,   474,
1540 <     475,   476,   477,   478,   479,   480,   481,   482,   483,   484,
1541 <     485,   486,   487,   488,   489,   490,   491,   492,   493,   494,
1542 <     495,    59,   125,   123,    61,    44
1476 >     465,   466,   467,   468,   469,    59,   125,   123,    61,    44
1477   };
1478   # endif
1479  
1480   /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives.  */
1481   static const yytype_uint16 yyr1[] =
1482   {
1483 <       0,   246,   247,   247,   248,   248,   248,   248,   248,   248,
1484 <     248,   248,   248,   248,   248,   248,   248,   248,   248,   248,
1485 <     248,   248,   248,   248,   248,   248,   248,   249,   249,   250,
1486 <     250,   250,   250,   250,   250,   251,   251,   252,   252,   252,
1487 <     252,   253,   254,   254,   255,   255,   255,   256,   257,   258,
1488 <     259,   259,   260,   260,   260,   260,   260,   260,   260,   260,
1489 <     260,   260,   260,   260,   260,   260,   260,   262,   261,   263,
1490 <     263,   264,   264,   265,   266,   267,   268,   269,   270,   271,
1491 <     272,   273,   274,   275,   276,   277,   278,   279,   279,   280,
1492 <     280,   280,   280,   281,   282,   283,   284,   285,   285,   286,
1493 <     286,   286,   286,   287,   288,   290,   289,   291,   291,   292,
1494 <     292,   292,   292,   293,   294,   294,   296,   295,   297,   297,
1495 <     298,   298,   298,   298,   298,   298,   298,   300,   299,   301,
1496 <     301,   302,   302,   302,   302,   302,   302,   302,   302,   302,
1497 <     303,   304,   305,   306,   307,   308,   310,   309,   311,   311,
1498 <     312,   312,   312,   312,   312,   312,   312,   312,   312,   312,
1499 <     312,   312,   312,   312,   312,   312,   312,   312,   312,   312,
1500 <     314,   313,   315,   315,   316,   316,   316,   316,   316,   316,
1501 <     316,   316,   316,   316,   316,   316,   316,   316,   316,   316,
1502 <     316,   316,   318,   317,   319,   319,   320,   320,   320,   320,
1503 <     320,   320,   320,   320,   320,   320,   320,   320,   320,   320,
1504 <     321,   322,   323,   324,   325,   326,   327,   328,   329,   330,
1505 <     331,   332,   333,   335,   334,   337,   336,   338,   338,   339,
1506 <     339,   339,   340,   340,   341,   341,   341,   341,   341,   343,
1507 <     342,   344,   344,   345,   345,   346,   347,   349,   348,   350,
1508 <     350,   351,   351,   351,   351,   351,   351,   351,   351,   351,
1509 <     352,   353,   354,   355,   357,   356,   358,   358,   359,   359,
1510 <     359,   359,   359,   359,   359,   359,   359,   360,   361,   362,
1511 <     364,   363,   365,   365,   366,   366,   366,   366,   367,   368,
1512 <     369,   370,   371,   371,   372,   372,   373,   375,   374,   376,
1513 <     376,   377,   377,   377,   377,   378,   379,   381,   380,   382,
1514 <     382,   383,   383,   383,   383,   383,   383,   383,   383,   383,
1515 <     383,   385,   384,   386,   386,   387,   387,   387,   388,   390,
1516 <     389,   391,   391,   392,   392,   392,   392,   392,   392,   392,
1517 <     392,   392,   392,   394,   393,   395,   395,   396,   396,   396,
1518 <     396,   396,   396,   396,   396,   396,   396,   396,   396,   396,
1519 <     396,   397,   398,   399,   400,   401,   402,   403,   403,   405,
1520 <     404,   406,   406,   407,   407,   407,   407,   408,   409,   410,
1521 <     411,   412,   414,   413,   416,   415,   417,   417,   418,   419,
1522 <     419,   420,   420,   420,   420,   421,   422,   424,   423,   425,
1523 <     425,   426,   426,   426,   427,   428,   429,   430,   430,   431,
1524 <     431,   432,   434,   433,   436,   435,   437,   437,   438,   439,
1525 <     439,   440,   440,   440,   440,   441,   442,   443,   444,   444,
1526 <     445,   445,   445,   445,   445,   445,   445,   445,   445,   445,
1527 <     445,   445,   445,   445,   445,   445,   445,   445,   445,   445,
1528 <     445,   445,   445,   445,   445,   445,   445,   445,   445,   445,
1529 <     445,   445,   445,   445,   445,   445,   445,   445,   445,   445,
1530 <     445,   445,   445,   445,   445,   445,   445,   445,   445,   445,
1531 <     445,   445,   446,   447,   448,   449,   450,   451,   452,   453,
1532 <     454,   455,   456,   457,   458,   459,   460,   461,   462,   463,
1533 <     464,   465,   466,   467,   468,   469,   470,   471,   472,   472,
1534 <     473,   473,   474,   475,   476,   477,   478,   479,   480,   481,
1535 <     482,   483,   484,   485,   486,   487,   488,   489,   490,   492,
1536 <     491,   493,   493,   494,   494,   494,   494,   494,   494,   494,
1537 <     494,   494,   494,   494,   494,   494,   494,   494,   494,   494,
1538 <     494,   494,   494,   496,   495,   497,   497,   498,   498,   498,
1539 <     498,   498,   498,   498,   498,   498,   498,   498,   498,   498,
1540 <     498,   498,   498,   498,   498,   498,   498,   499,   500,   501,
1541 <     502,   504,   503,   505,   505,   506,   506,   506,   506,   506,
1542 <     506,   506,   507,   508,   510,   509,   511,   511,   512,   512,
1543 <     513,   514,   516,   515,   517,   517,   518,   518,   519,   520,
1544 <     520,   521,   521,   521,   521,   521,   521,   521,   521,   521,
1545 <     521,   521,   521,   521,   521,   521,   521,   521,   521,   521,
1612 <     522,   523,   524,   525,   526,   527,   528,   529,   530,   531,
1613 <     532,   533,   534,   535,   536,   537,   538,   539,   540,   541,
1614 <     541,   542,   542,   542,   542,   542,   542,   542,   542,   543,
1615 <     544,   545,   546,   547,   548,   549
1483 >       0,   220,   221,   221,   222,   222,   222,   222,   222,   222,
1484 >     222,   222,   222,   222,   222,   222,   222,   222,   222,   222,
1485 >     222,   222,   222,   222,   222,   222,   223,   223,   224,   224,
1486 >     224,   224,   224,   224,   225,   225,   226,   226,   226,   226,
1487 >     227,   228,   228,   229,   229,   229,   230,   231,   232,   233,
1488 >     233,   234,   234,   234,   234,   234,   234,   234,   234,   234,
1489 >     234,   234,   234,   234,   234,   234,   234,   235,   236,   237,
1490 >     237,   238,   238,   239,   239,   240,   240,   241,   242,   243,
1491 >     244,   245,   246,   247,   248,   249,   250,   251,   252,   253,
1492 >     254,   255,   255,   256,   256,   256,   256,   257,   258,   259,
1493 >     260,   261,   261,   262,   262,   262,   263,   265,   264,   266,
1494 >     266,   267,   267,   267,   267,   268,   269,   269,   271,   270,
1495 >     272,   272,   273,   273,   273,   273,   273,   273,   273,   275,
1496 >     274,   276,   276,   277,   277,   277,   277,   277,   277,   277,
1497 >     277,   277,   278,   279,   280,   281,   282,   283,   285,   284,
1498 >     286,   286,   287,   287,   287,   287,   287,   287,   287,   287,
1499 >     287,   287,   287,   287,   287,   287,   287,   287,   287,   287,
1500 >     287,   287,   289,   288,   290,   290,   291,   291,   291,   291,
1501 >     291,   291,   291,   291,   291,   291,   291,   291,   291,   291,
1502 >     291,   291,   291,   291,   291,   293,   292,   294,   294,   295,
1503 >     295,   295,   295,   295,   295,   295,   295,   295,   295,   295,
1504 >     295,   295,   295,   296,   297,   298,   299,   300,   301,   302,
1505 >     303,   304,   305,   306,   307,   308,   310,   309,   312,   311,
1506 >     313,   313,   314,   314,   314,   315,   315,   316,   316,   316,
1507 >     316,   316,   318,   317,   319,   319,   320,   320,   321,   322,
1508 >     324,   323,   325,   325,   326,   326,   326,   326,   326,   326,
1509 >     326,   326,   326,   327,   328,   329,   330,   332,   331,   333,
1510 >     333,   334,   334,   334,   334,   334,   334,   334,   334,   334,
1511 >     334,   335,   336,   337,   339,   338,   340,   340,   341,   341,
1512 >     341,   341,   342,   343,   344,   345,   346,   346,   347,   347,
1513 >     348,   350,   349,   351,   351,   352,   352,   352,   352,   353,
1514 >     354,   356,   355,   357,   357,   358,   358,   358,   358,   358,
1515 >     358,   358,   358,   358,   358,   360,   359,   361,   361,   362,
1516 >     362,   362,   363,   365,   364,   366,   366,   367,   367,   367,
1517 >     367,   367,   367,   367,   367,   367,   367,   369,   368,   370,
1518 >     370,   371,   371,   371,   371,   371,   371,   371,   371,   371,
1519 >     371,   371,   371,   371,   371,   372,   373,   374,   375,   376,
1520 >     377,   378,   378,   380,   379,   381,   381,   382,   382,   383,
1521 >     384,   385,   386,   387,   389,   388,   391,   390,   392,   392,
1522 >     393,   394,   394,   395,   395,   395,   395,   396,   397,   399,
1523 >     398,   400,   400,   401,   401,   401,   402,   403,   404,   405,
1524 >     405,   406,   406,   407,   409,   408,   411,   410,   412,   412,
1525 >     413,   414,   414,   415,   415,   415,   415,   416,   417,   418,
1526 >     419,   419,   420,   420,   420,   420,   420,   420,   420,   420,
1527 >     420,   420,   420,   420,   420,   420,   420,   420,   420,   420,
1528 >     420,   420,   420,   420,   420,   420,   420,   420,   420,   420,
1529 >     420,   420,   420,   420,   420,   420,   420,   420,   420,   420,
1530 >     420,   420,   420,   420,   420,   420,   420,   420,   420,   420,
1531 >     420,   420,   421,   422,   423,   424,   425,   426,   427,   428,
1532 >     429,   430,   431,   432,   433,   434,   435,   436,   437,   438,
1533 >     439,   440,   441,   442,   443,   444,   445,   446,   446,   447,
1534 >     447,   448,   449,   450,   451,   452,   453,   454,   455,   456,
1535 >     457,   458,   459,   460,   461,   462,   463,   464,   466,   465,
1536 >     467,   467,   468,   468,   468,   468,   468,   468,   468,   468,
1537 >     468,   468,   468,   468,   468,   468,   468,   468,   468,   468,
1538 >     468,   468,   470,   469,   471,   471,   472,   472,   472,   472,
1539 >     472,   472,   472,   472,   472,   472,   472,   472,   472,   472,
1540 >     472,   472,   472,   472,   472,   472,   473,   474,   475,   476,
1541 >     477,   477,   478,   478,   478,   478,   478,   478,   478,   478,
1542 >     478,   478,   478,   478,   478,   478,   478,   479,   480,   481,
1543 >     482,   483,   484,   485,   486,   487,   488,   489,   490,   491,
1544 >     492,   493,   494,   494,   495,   495,   495,   495,   495,   495,
1545 >     495,   496,   497,   498,   499,   500,   501
1546   };
1547  
1548   /* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN.  */
# Line 1620 | Line 1550 | static const yytype_uint8 yyr2[] =
1550   {
1551         0,     2,     0,     2,     1,     1,     1,     1,     1,     1,
1552         1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1553 <       1,     1,     1,     1,     1,     2,     2,     0,     1,     2,
1554 <       3,     3,     3,     3,     3,     0,     1,     2,     3,     3,
1555 <       3,     5,     2,     1,     1,     1,     2,     4,     4,     5,
1626 <       2,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1627 <       1,     1,     1,     1,     1,     1,     2,     0,     5,     3,
1628 <       1,     1,     1,     4,     4,     4,     4,     4,     4,     4,
1629 <       4,     4,     4,     4,     4,     4,     5,     2,     1,     1,
1630 <       1,     1,     2,     4,     4,     4,     5,     2,     1,     1,
1631 <       1,     1,     2,     4,     4,     0,     6,     2,     1,     1,
1632 <       1,     1,     2,     4,     4,     4,     0,     5,     3,     1,
1633 <       1,     1,     1,     1,     1,     1,     1,     0,     6,     2,
1634 <       1,     1,     1,     1,     1,     1,     1,     1,     1,     2,
1635 <       4,     4,     4,     4,     4,     4,     0,     5,     3,     1,
1553 >       1,     1,     1,     1,     2,     2,     0,     1,     2,     3,
1554 >       3,     3,     3,     3,     0,     1,     2,     3,     3,     3,
1555 >       5,     2,     1,     1,     1,     2,     4,     4,     5,     2,
1556         1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1557 +       1,     1,     1,     1,     1,     1,     2,     4,     4,     3,
1558 +       1,     1,     1,     3,     1,     1,     1,     4,     4,     4,
1559 +       4,     4,     4,     4,     4,     4,     4,     4,     4,     4,
1560 +       5,     2,     1,     1,     1,     1,     2,     4,     4,     4,
1561 +       5,     2,     1,     1,     1,     2,     4,     0,     6,     2,
1562 +       1,     1,     1,     1,     2,     4,     4,     4,     0,     5,
1563 +       3,     1,     1,     1,     1,     1,     1,     1,     1,     0,
1564 +       6,     2,     1,     1,     1,     1,     1,     1,     1,     1,
1565 +       1,     2,     4,     4,     4,     4,     4,     4,     0,     5,
1566 +       3,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1567         1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1568 <       0,     5,     3,     1,     1,     1,     1,     1,     1,     1,
1568 >       1,     1,     0,     5,     3,     1,     1,     1,     1,     1,
1569         1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1570 <       1,     1,     0,     6,     2,     1,     1,     1,     1,     1,
1641 <       1,     1,     1,     1,     1,     1,     1,     1,     1,     2,
1642 <       4,     4,     4,     4,     4,     4,     4,     4,     4,     4,
1643 <       4,     4,     4,     0,     6,     0,     5,     3,     1,     1,
1644 <       1,     1,     2,     1,     1,     1,     1,     1,     2,     0,
1645 <       5,     3,     1,     1,     3,     4,     4,     0,     6,     2,
1646 <       1,     1,     1,     1,     1,     1,     1,     1,     1,     2,
1647 <       4,     4,     4,     4,     0,     5,     3,     1,     1,     1,
1648 <       1,     1,     1,     1,     1,     1,     1,     4,     4,     4,
1649 <       0,     6,     2,     1,     1,     1,     1,     2,     4,     4,
1650 <       4,     5,     2,     1,     1,     1,     4,     0,     6,     2,
1651 <       1,     1,     1,     1,     2,     4,     4,     0,     5,     3,
1570 >       1,     1,     1,     1,     1,     0,     6,     2,     1,     1,
1571         1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1572 <       1,     0,     6,     2,     1,     1,     1,     2,     4,     0,
1573 <       5,     3,     1,     1,     1,     1,     1,     1,     1,     1,
1574 <       1,     1,     1,     0,     6,     2,     1,     1,     1,     1,
1572 >       1,     1,     2,     4,     4,     4,     4,     4,     4,     4,
1573 >       4,     4,     4,     4,     4,     4,     0,     6,     0,     5,
1574 >       3,     1,     1,     1,     1,     2,     1,     1,     1,     1,
1575 >       1,     2,     0,     5,     3,     1,     1,     3,     4,     4,
1576 >       0,     6,     2,     1,     1,     1,     1,     1,     1,     1,
1577 >       1,     1,     2,     4,     4,     4,     4,     0,     5,     3,
1578         1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1579 <       2,     4,     4,     4,     4,     4,     4,     4,     4,     0,
1580 <       5,     3,     1,     1,     1,     1,     1,     4,     4,     4,
1581 <       4,     4,     0,     6,     0,     5,     3,     1,     1,     2,
1582 <       1,     1,     1,     1,     1,     4,     4,     0,     6,     2,
1583 <       1,     1,     1,     1,     4,     4,     5,     2,     1,     1,
1584 <       1,     4,     0,     6,     0,     5,     3,     1,     1,     2,
1585 <       1,     1,     1,     1,     1,     4,     4,     5,     2,     1,
1579 >       1,     4,     4,     4,     0,     6,     2,     1,     1,     1,
1580 >       1,     2,     4,     4,     4,     5,     2,     1,     1,     1,
1581 >       4,     0,     6,     2,     1,     1,     1,     1,     2,     4,
1582 >       4,     0,     5,     3,     1,     1,     1,     1,     1,     1,
1583 >       1,     1,     1,     1,     1,     0,     6,     2,     1,     1,
1584 >       1,     2,     4,     0,     5,     3,     1,     1,     1,     1,
1585 >       1,     1,     1,     1,     1,     1,     1,     0,     6,     2,
1586         1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1587 +       1,     1,     1,     1,     2,     4,     4,     4,     4,     4,
1588 +       4,     4,     4,     0,     5,     3,     1,     1,     1,     4,
1589 +       4,     4,     4,     4,     0,     6,     0,     5,     3,     1,
1590 +       1,     2,     1,     1,     1,     1,     1,     4,     4,     0,
1591 +       6,     2,     1,     1,     1,     1,     4,     4,     5,     2,
1592 +       1,     1,     1,     4,     0,     6,     0,     5,     3,     1,
1593 +       1,     2,     1,     1,     1,     1,     1,     4,     4,     5,
1594 +       2,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1595         1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1596         1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1597         1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
# Line 1670 | Line 1600 | static const yytype_uint8 yyr2[] =
1600         4,     4,     4,     4,     4,     4,     4,     4,     4,     4,
1601         4,     4,     4,     4,     4,     4,     4,     4,     4,     4,
1602         4,     4,     4,     4,     4,     4,     4,     4,     4,     4,
1603 <       4,     4,     4,     4,     4,     4,     4,     4,     4,     0,
1604 <       5,     3,     1,     1,     1,     1,     1,     1,     1,     1,
1603 >       4,     4,     4,     4,     4,     4,     4,     4,     0,     5,
1604 >       3,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1605         1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1606 <       1,     1,     1,     0,     5,     3,     1,     1,     1,     1,
1606 >       1,     1,     0,     5,     3,     1,     1,     1,     1,     1,
1607         1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1608 +       1,     1,     1,     1,     1,     1,     4,     4,     4,     5,
1609 +       2,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1610         1,     1,     1,     1,     1,     1,     1,     4,     4,     4,
1679       4,     0,     6,     2,     1,     1,     1,     1,     1,     1,
1680       1,     1,     4,     4,     0,     5,     3,     1,     1,     1,
1681       4,     4,     0,     5,     3,     1,     1,     1,     5,     2,
1682       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1683       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1611         4,     4,     4,     4,     4,     4,     4,     4,     4,     4,
1612 <       4,     4,     4,     4,     4,     4,     4,     4,     5,     2,
1613 <       1,     1,     1,     1,     1,     1,     1,     1,     1,     4,
1687 <       4,     4,     4,     4,     4,     4
1612 >       4,     5,     2,     1,     1,     1,     1,     1,     1,     1,
1613 >       1,     4,     4,     4,     4,     4,     4
1614   };
1615  
1616   /* YYDEFACT[STATE-NAME] -- Default reduction number in state STATE-NUM.
# Line 1692 | Line 1618 | static const yytype_uint8 yyr2[] =
1618     means the default is an error.  */
1619   static const yytype_uint16 yydefact[] =
1620   {
1621 <       2,     0,     1,     0,     0,     0,   192,   343,   397,     0,
1622 <     412,     0,   581,   247,   382,   223,     0,     0,   127,   280,
1623 <       0,     0,   297,   321,     0,     3,    24,    11,     4,     5,
1624 <       6,     8,     9,    10,    13,    14,    15,    16,    17,    18,
1625 <      19,    20,    23,    21,    22,     7,    12,    25,    26,     0,
1700 <       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1701 <       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1702 <       0,     0,     0,     0,     0,    88,    89,    91,    90,   629,
1621 >       2,     0,     1,     0,     0,     0,   195,   347,   399,     0,
1622 >     414,     0,   250,   384,   226,     0,     0,   129,   284,     0,
1623 >       0,   301,   325,     0,     3,    23,    11,     4,     5,     6,
1624 >       8,     9,    10,    13,    14,    15,    16,    17,    18,    19,
1625 >      20,    22,    21,     7,    12,    24,    25,     0,     0,     0,
1626         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1704       0,     0,     0,     0,     0,     0,     0,     0,     0,   610,
1705     628,   623,   611,   612,   613,   614,   616,   617,   618,   619,
1706     615,   620,   621,   622,   624,   625,   626,   627,     0,     0,
1707       0,   410,     0,     0,   408,   409,     0,   481,     0,     0,
1627         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1628 +       0,     0,    92,    93,    95,    94,   596,     0,     0,     0,
1629         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1630 <       0,     0,     0,     0,     0,     0,   553,     0,   529,     0,
1630 >       0,     0,   581,   595,   591,   583,   584,   585,   586,   587,
1631 >     582,   588,   589,   590,   592,   593,   594,     0,     0,     0,
1632 >     412,     0,     0,   410,   411,     0,   481,     0,     0,     0,
1633         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1634         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1635 <     429,   479,   474,   475,   476,   477,   473,   440,   430,   431,
1714 <     467,   432,   433,   434,   435,   436,   437,   438,   439,   470,
1715 <     441,   442,   443,   444,   478,   446,   451,   447,   449,   448,
1716 <     462,   463,   450,   452,   453,   454,   455,   456,   445,   458,
1717 <     459,   460,   480,   471,   472,   469,   461,   457,   465,   466,
1718 <     464,   468,     0,     0,     0,     0,     0,     0,     0,     0,
1719 <      98,    99,   100,   101,     0,     0,     0,     0,     0,    43,
1720 <      44,    45,     0,     0,   658,     0,     0,     0,     0,     0,
1721 <       0,     0,     0,   650,   651,   652,   656,   653,   655,   654,
1722 <     657,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1723 <      67,     0,     0,     0,     0,     0,     0,    51,    64,    63,
1724 <      60,    59,    65,    52,    62,    55,    56,    57,    53,    61,
1725 <      58,    54,     0,     0,   295,     0,     0,   293,   294,    92,
1726 <       0,     0,     0,     0,    87,     0,     0,     0,     0,     0,
1635 >       0,     0,     0,     0,     0,     0,   552,     0,   528,     0,
1636         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1637 <       0,     0,     0,     0,   609,     0,     0,     0,     0,     0,
1637 >       0,     0,     0,     0,     0,     0,     0,   431,   479,   473,
1638 >     474,   475,   476,   477,   472,   442,   432,   433,   467,   434,
1639 >     435,   436,   437,   438,   439,   440,   441,   469,   443,   444,
1640 >     478,   446,   451,   447,   449,   448,   462,   463,   450,   452,
1641 >     453,   454,   455,   456,   445,   458,   459,   460,   480,   470,
1642 >     471,   468,   461,   457,   465,   466,   464,     0,     0,     0,
1643 >       0,     0,     0,   102,   103,   104,     0,     0,     0,     0,
1644 >       0,    42,    43,    44,     0,     0,   620,     0,     0,     0,
1645 >       0,     0,     0,     0,   613,   614,   615,   618,   616,   617,
1646 >     619,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1647 >       0,     0,     0,     0,     0,     0,     0,     0,    50,    63,
1648 >      64,    62,    59,    58,    65,    51,    61,    54,    55,    56,
1649 >      52,    60,    57,    53,     0,     0,   299,     0,     0,   297,
1650 >     298,    96,     0,     0,     0,     0,    91,     0,     0,     0,
1651         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1652 <     195,   196,   199,   200,   202,   203,   204,   205,   206,   207,
1653 <     208,   197,   198,   201,     0,     0,     0,     0,     0,   369,
1654 <       0,     0,     0,     0,     0,     0,     0,     0,     0,   346,
1655 <     347,   348,   349,   350,   351,   353,   352,   355,   359,   356,
1656 <     357,   358,   354,   403,     0,     0,     0,   400,   401,   402,
1657 <       0,     0,   407,   424,     0,     0,   414,   423,     0,   420,
1658 <     421,   422,     0,     0,     0,     0,     0,     0,     0,     0,
1652 >       0,     0,   580,     0,     0,     0,     0,     0,     0,     0,
1653 >       0,     0,     0,     0,     0,     0,     0,     0,   198,   199,
1654 >     202,   204,   205,   206,   207,   208,   209,   210,   211,   200,
1655 >     201,   203,     0,     0,     0,     0,     0,   373,     0,     0,
1656 >       0,     0,     0,     0,     0,     0,     0,   350,   351,   352,
1657 >     353,   354,   355,   357,   356,   359,   363,   360,   361,   362,
1658 >     358,   405,     0,     0,     0,   402,   403,   404,     0,     0,
1659 >     409,   426,     0,     0,   416,   425,     0,   422,   423,   424,
1660         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1661         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1662         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1663         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1741       0,     0,     0,     0,   428,   591,   602,     0,     0,   594,
1742       0,     0,     0,   584,   585,   586,   587,   588,   589,   590,
1743       0,     0,     0,   264,     0,     0,     0,     0,     0,     0,
1744     250,   251,   252,   253,   258,   254,   255,   256,   257,   394,
1745       0,   384,     0,   393,     0,   390,   391,   392,     0,   225,
1746       0,     0,     0,   235,     0,   233,   234,   236,   237,   102,
1747       0,     0,     0,    97,     0,    46,     0,     0,     0,    42,
1748       0,     0,     0,   170,     0,     0,     0,   146,     0,     0,
1749     130,   131,   132,   133,   136,   137,   135,   134,   138,     0,
1750       0,     0,     0,     0,   283,   284,   285,   286,     0,     0,
1751       0,     0,     0,     0,     0,     0,   649,    66,     0,     0,
1664         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1665 <       0,     0,     0,    50,     0,     0,   307,     0,     0,   300,
1666 <     301,   302,   303,     0,     0,   329,     0,   324,   325,   326,
1667 <       0,     0,   292,     0,     0,     0,    86,     0,     0,     0,
1668 <       0,     0,    27,     0,     0,     0,     0,     0,     0,     0,
1669 <       0,     0,     0,     0,     0,     0,   608,   209,     0,     0,
1665 >     430,     0,     0,     0,   267,     0,     0,     0,     0,     0,
1666 >       0,   253,   254,   255,   256,   261,   257,   258,   259,   260,
1667 >     396,     0,   386,     0,   395,     0,   392,   393,   394,     0,
1668 >     228,     0,     0,     0,   238,     0,   236,   237,   239,   240,
1669 >     105,     0,     0,   101,     0,    45,     0,     0,     0,    41,
1670 >       0,     0,     0,   172,     0,     0,     0,   148,     0,     0,
1671 >     132,   133,   134,   135,   138,   139,   137,   136,   140,     0,
1672 >       0,     0,     0,     0,   287,   288,   289,   290,     0,     0,
1673 >       0,     0,     0,     0,     0,   612,    66,     0,     0,     0,
1674         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1675 <       0,     0,   194,   360,     0,     0,     0,     0,     0,     0,
1676 <       0,     0,     0,     0,     0,     0,     0,     0,   345,     0,
1677 <       0,     0,   399,     0,   406,     0,     0,     0,     0,   419,
1675 >       0,     0,     0,    49,     0,     0,   311,     0,     0,   304,
1676 >     305,   306,   307,     0,     0,   333,     0,   328,   329,   330,
1677 >       0,     0,   296,     0,     0,     0,    90,     0,     0,     0,
1678 >      26,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1679 >       0,     0,   579,   212,     0,     0,     0,     0,     0,     0,
1680 >       0,     0,     0,     0,     0,     0,     0,     0,   197,   364,
1681         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1682 +       0,     0,     0,     0,   349,     0,     0,     0,   401,     0,
1683 +     408,     0,     0,     0,     0,   421,     0,     0,     0,     0,
1684         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1685         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1686         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1766       0,     0,     0,     0,     0,     0,    35,     0,     0,     0,
1767       0,     0,     0,     0,   427,     0,     0,     0,     0,     0,
1768       0,     0,   583,   259,     0,     0,     0,     0,     0,     0,
1769       0,     0,     0,   249,     0,     0,     0,     0,   389,   238,
1770       0,     0,     0,     0,     0,   232,     0,     0,    96,     0,
1771       0,     0,    41,   139,     0,     0,     0,     0,     0,     0,
1772       0,     0,     0,   129,   287,     0,     0,     0,     0,   282,
1773       0,     0,     0,     0,     0,     0,     0,   648,     0,     0,
1687         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1688 <       0,     0,    49,   304,     0,     0,     0,     0,   299,   327,
1689 <       0,     0,     0,   323,     0,   291,    95,    94,    93,   645,
1690 <     642,   641,   630,   632,    27,    27,    27,    27,    27,    29,
1691 <      28,   636,   637,   640,   638,   643,   644,   646,   647,   639,
1692 <     631,   633,   634,   635,     0,     0,     0,     0,     0,     0,
1693 <       0,     0,     0,     0,     0,     0,     0,   193,     0,     0,
1688 >       0,     0,     0,     0,     0,     0,     0,   429,   262,     0,
1689 >       0,     0,     0,     0,     0,     0,     0,     0,   252,     0,
1690 >       0,     0,     0,   391,   241,     0,     0,     0,     0,     0,
1691 >     235,     0,   100,     0,     0,     0,    40,   141,     0,     0,
1692 >       0,     0,     0,     0,     0,     0,     0,   131,   291,     0,
1693 >       0,     0,     0,   286,     0,     0,     0,     0,     0,     0,
1694 >     611,     0,     0,     0,     0,     0,     0,     0,     0,    71,
1695 >      72,     0,    70,    75,    76,     0,    74,     0,     0,     0,
1696 >       0,     0,    48,   308,     0,     0,     0,     0,   303,   331,
1697 >       0,     0,     0,   327,     0,   295,    99,    98,    97,   606,
1698 >     605,   597,    26,    26,    26,    26,    26,    28,    27,   599,
1699 >     600,   604,   602,   601,   607,   608,   609,   610,   603,   598,
1700         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1701 <       0,     0,   344,     0,     0,   398,   411,     0,     0,     0,
1702 <     413,   493,   497,   513,   579,   527,   491,   521,   524,   492,
1703 <     483,   484,   500,   489,   490,   503,   488,   502,   501,   496,
1704 <     495,   494,   522,   482,   520,   577,   578,   517,   514,   564,
1705 <     557,   574,   575,   558,   559,   560,   561,   569,   562,   572,
1706 <     576,   565,   570,   566,   571,   563,   568,   567,   573,     0,
1707 <     556,   519,   539,   533,   550,   551,   534,   535,   536,   537,
1708 <     545,   538,   548,   552,   541,   546,   542,   547,   540,   544,
1709 <     543,   549,     0,   532,   512,   515,   526,   486,   487,   516,
1710 <     505,   510,   511,   508,   509,   506,   507,   499,   498,    35,
1711 <      35,    35,    37,    36,   580,   525,   528,   518,   523,   485,
1712 <     504,     0,     0,     0,     0,     0,     0,   582,     0,     0,
1713 <       0,     0,     0,     0,     0,     0,   248,     0,     0,     0,
1714 <     383,     0,     0,     0,   243,   239,   242,   224,   104,   103,
1715 <       0,     0,   116,     0,     0,   108,   109,   111,   110,    47,
1716 <      48,     0,     0,     0,     0,     0,     0,     0,     0,   128,
1717 <       0,     0,     0,   281,   664,   659,   663,   661,   665,   660,
1718 <     662,    79,    85,    77,    81,    80,    74,    73,    75,    71,
1719 <      72,     0,    70,    78,    76,    84,    82,    83,     0,     0,
1720 <       0,   298,     0,     0,   322,   296,    30,    31,    32,    33,
1721 <      34,   220,   221,   214,   216,   218,   217,   215,   210,   222,
1722 <     213,   211,   212,   219,   365,   367,   368,   380,   377,   373,
1723 <     374,   376,   375,     0,   372,   362,   378,   379,   361,   366,
1724 <     364,   381,   363,   404,   405,   425,   426,   418,     0,   417,
1725 <     554,     0,   530,     0,    38,    39,    40,   607,   606,     0,
1726 <     605,   593,   592,   599,   598,     0,   597,   601,   600,   262,
1727 <     263,   272,   269,   274,   271,   270,   276,   273,   275,   268,
1728 <       0,   267,   261,   279,   278,   277,   260,   396,   388,     0,
1729 <     387,   395,   230,   231,   229,     0,   228,   246,   245,     0,
1730 <       0,     0,   112,     0,     0,     0,     0,   107,   145,   143,
1731 <     185,   182,   181,   174,   176,   191,   186,   189,   184,   175,
1732 <     190,   178,   187,   179,   188,   183,   177,   180,     0,   173,
1733 <     140,   142,   144,   156,   150,   167,   168,   151,   152,   153,
1734 <     154,   162,   155,   165,   169,   158,   163,   159,   164,   157,
1735 <     161,   160,   166,     0,   149,   141,   289,   290,   288,    68,
1736 <       0,   305,   311,   317,   320,   313,   319,   314,   318,   316,
1737 <     312,   315,     0,   310,   306,   328,   333,   339,   342,   335,
1738 <     341,   336,   340,   338,   334,   337,     0,   332,   370,     0,
1739 <     415,     0,   555,   531,   603,     0,   595,     0,   265,     0,
1740 <     385,     0,   226,     0,   244,   241,   240,     0,     0,     0,
1741 <       0,   106,   171,     0,   147,     0,    69,   308,     0,   330,
1742 <       0,   371,   416,   604,   596,   266,   386,   227,   113,   122,
1743 <     125,   124,   121,   126,   123,   120,     0,   119,   115,   114,
1825 <     172,   148,   309,   331,   117,     0,   118
1701 >       0,    34,     0,     0,   196,     0,     0,     0,     0,     0,
1702 >       0,     0,     0,     0,     0,     0,     0,     0,     0,   348,
1703 >       0,     0,   400,   413,     0,     0,     0,   415,   494,   498,
1704 >     512,   578,   526,   492,   520,   523,   493,   484,   483,   485,
1705 >     486,   487,   501,   490,   491,   502,   489,   497,   496,   495,
1706 >     521,   482,   519,   576,   577,   516,   513,   563,   556,   573,
1707 >     574,   557,   558,   559,   560,   568,   561,   571,   575,   564,
1708 >     569,   565,   570,   562,   567,   566,   572,     0,   555,   518,
1709 >     538,   532,   549,   550,   533,   534,   535,   536,   544,   537,
1710 >     547,   551,   540,   545,   541,   546,   539,   543,   542,   548,
1711 >       0,   531,   511,   514,   525,   488,   515,   504,   509,   510,
1712 >     507,   508,   505,   506,   500,   499,   524,   527,   517,   522,
1713 >     503,     0,     0,     0,     0,     0,     0,     0,     0,   251,
1714 >       0,     0,     0,   385,     0,     0,     0,   246,   242,   245,
1715 >     227,   106,     0,     0,   118,     0,     0,   110,   111,   113,
1716 >     112,    46,    47,     0,     0,     0,     0,     0,     0,     0,
1717 >       0,   130,     0,     0,     0,   285,   621,   625,   623,   626,
1718 >     622,   624,    83,    89,    81,    85,    84,    78,    77,    79,
1719 >      67,     0,    68,     0,    82,    80,    88,    86,    87,     0,
1720 >       0,     0,   302,     0,     0,   326,   300,    29,    30,    31,
1721 >      32,    33,   223,   224,   216,   218,   220,   219,   217,   213,
1722 >     225,   215,   214,    34,    34,    34,    36,    35,   221,   222,
1723 >     369,   371,   372,   382,   379,   377,   378,     0,   376,   366,
1724 >     380,   381,   365,   370,   368,   383,   367,   406,   407,   427,
1725 >     428,   420,     0,   419,   553,     0,   529,     0,   265,   266,
1726 >     275,   272,   277,   274,   273,   280,   276,   278,   271,   279,
1727 >       0,   270,   264,   283,   282,   281,   263,   398,   390,     0,
1728 >     389,   397,   233,   234,   232,     0,   231,   249,   248,     0,
1729 >       0,     0,   114,     0,     0,     0,     0,   109,   147,   145,
1730 >     187,   184,   183,   176,   178,   194,   188,   191,   186,   177,
1731 >     192,   180,   189,   193,   181,   190,   185,   179,   182,     0,
1732 >     175,   142,   144,   146,   158,   152,   169,   170,   153,   154,
1733 >     155,   156,   164,   157,   167,   171,   160,   165,   161,   166,
1734 >     159,   163,   162,   168,     0,   151,   143,   293,   294,   292,
1735 >      69,    73,   309,   315,   321,   324,   317,   323,   318,   322,
1736 >     320,   316,   319,     0,   314,   310,   332,   337,   343,   346,
1737 >     339,   345,   340,   344,   342,   338,   341,     0,   336,    37,
1738 >      38,    39,   374,     0,   417,     0,   554,   530,   268,     0,
1739 >     387,     0,   229,     0,   247,   244,   243,     0,     0,     0,
1740 >       0,   108,   173,     0,   149,     0,   312,     0,   334,     0,
1741 >     375,   418,   269,   388,   230,   115,   124,   127,   126,   123,
1742 >     128,   125,   122,     0,   121,   117,   116,   174,   150,   313,
1743 >     335,   119,     0,   120
1744   };
1745  
1746   /* YYDEFGOTO[NTERM-NUM].  */
1747   static const yytype_int16 yydefgoto[] =
1748   {
1749 <      -1,     1,    25,   829,   830,   972,   973,    26,   248,   249,
1750 <     250,   251,    27,   286,   287,   288,   576,  1051,  1052,   289,
1751 <     290,   291,   292,   293,   294,   295,   296,   297,   298,   299,
1752 <     300,   301,    28,    74,    75,    76,    77,    78,    29,   239,
1753 <     240,   241,   242,   243,   244,  1014,  1015,  1016,  1017,  1018,
1754 <    1164,  1296,  1297,    30,    63,   539,   540,   541,   542,   543,
1755 <     544,   545,   546,   547,   770,  1213,  1214,   548,   766,  1188,
1756 <    1189,    31,    51,   349,   350,   351,   352,   353,   354,   355,
1757 <     356,   357,   358,   359,   360,   361,   362,   363,    32,    60,
1758 <     513,   750,  1155,  1156,   514,   515,   516,  1161,  1005,  1006,
1759 <     517,   518,    33,    58,   489,   490,   491,   492,   493,   494,
1760 <     495,   736,  1140,  1141,   496,   497,   498,    34,    64,   553,
1761 <     554,   555,   556,   557,    35,   306,   307,   308,    36,    67,
1762 <     588,   589,   590,   591,   592,   805,  1232,  1233,    37,    68,
1763 <     596,   597,   598,   599,   811,  1246,  1247,    38,    52,   378,
1764 <     379,   380,   381,   382,   383,   384,   385,   386,   387,   648,
1765 <    1093,  1094,   388,   389,   390,   391,   392,    39,    59,   503,
1766 <     745,  1149,  1150,   504,   505,   506,   507,    40,    53,   396,
1767 <     397,   398,   399,    41,   123,   124,   125,    42,    55,   407,
1768 <     667,  1108,  1109,   408,   409,   410,   411,    43,   179,   180,
1769 <     181,   182,   183,   184,   185,   186,   187,   188,   189,   190,
1770 <     191,   192,   193,   194,   195,   196,   197,   198,   199,   200,
1771 <     201,   202,   203,   204,   205,   206,   207,   208,   209,   210,
1772 <     211,   212,   213,   214,   215,   216,   217,   218,   219,   220,
1773 <     221,   222,   223,   224,   225,   226,   442,   952,   953,   227,
1774 <     440,   929,   930,   228,   229,   230,   231,    44,    57,   472,
1775 <     473,   474,   475,   476,   728,  1125,  1126,   477,   478,   479,
1776 <     725,  1119,  1120,    45,    98,    99,   100,   101,   102,   103,
1777 <     104,   105,   106,   107,   108,   109,   110,   111,   112,   113,
1860 <     114,   115,   116,   117,    46,   262,   263,   264,   265,   266,
1861 <     267,   268,   269,   270
1749 >      -1,     1,    24,   777,   778,  1016,  1017,    25,   230,   231,
1750 >     232,   233,    26,   267,   268,   269,   270,   741,   742,   745,
1751 >     746,   271,   272,   273,   274,   275,   276,   277,   278,   279,
1752 >     280,   281,   282,   283,    27,    71,    72,    73,    74,    75,
1753 >      28,   222,   223,   224,   225,   226,   946,   947,   948,   949,
1754 >     950,  1084,  1213,  1214,    29,    60,   499,   500,   501,   502,
1755 >     503,   504,   505,   506,   507,   714,  1134,  1135,   508,   710,
1756 >    1109,  1110,    30,    49,   327,   328,   329,   330,   331,   332,
1757 >     333,   334,   335,   336,   337,   338,   339,   340,   341,    31,
1758 >      57,   474,   695,  1075,  1076,   475,   476,   477,  1081,   938,
1759 >     939,   478,   479,    32,    55,   450,   451,   452,   453,   454,
1760 >     455,   456,   681,  1060,  1061,   457,   458,   459,    33,    61,
1761 >     513,   514,   515,   516,   517,    34,   288,   289,   290,    35,
1762 >      64,   548,   549,   550,   551,   552,   755,  1153,  1154,    36,
1763 >      65,   556,   557,   558,   559,   761,  1167,  1168,    37,    50,
1764 >     356,   357,   358,   359,   360,   361,   362,   363,   364,   365,
1765 >     604,  1027,  1028,   366,   367,   368,   369,   370,    38,    56,
1766 >     464,   690,  1069,  1070,   465,   466,   467,   468,    39,    51,
1767 >     374,   375,   376,   377,    40,   112,   113,   114,    41,    53,
1768 >     385,   623,  1042,  1043,   386,   387,   388,   389,    42,   166,
1769 >     167,   168,   169,   170,   171,   172,   173,   174,   175,   176,
1770 >     177,   178,   179,   180,   181,   182,   183,   184,   185,   186,
1771 >     187,   188,   189,   190,   191,   192,   193,   194,   195,   196,
1772 >     197,   198,   199,   200,   201,   202,   203,   204,   205,   206,
1773 >     207,   208,   209,   210,   211,   212,   421,   900,   901,   213,
1774 >     419,   877,   878,   214,   215,   216,    43,    91,    92,    93,
1775 >      94,    95,    96,    97,    98,    99,   100,   101,   102,   103,
1776 >     104,   105,   106,    44,   243,   244,   245,   246,   247,   248,
1777 >     249,   250
1778   };
1779  
1780   /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
1781     STATE-NUM.  */
1782 < #define YYPACT_NINF -925
1782 > #define YYPACT_NINF -678
1783   static const yytype_int16 yypact[] =
1784   {
1785 <    -925,   650,  -925,  -171,  -239,  -236,  -925,  -925,  -925,  -233,
1786 <    -925,  -225,  -925,  -925,  -925,  -925,  -218,  -204,  -925,  -925,
1787 <    -170,  -165,  -925,  -925,  -159,  -925,  -925,  -925,  -925,  -925,
1788 <    -925,  -925,  -925,  -925,  -925,  -925,  -925,  -925,  -925,  -925,
1789 <    -925,  -925,  -925,  -925,  -925,  -925,  -925,  -925,  -925,   298,
1790 <     486,  -139,  -122,   -83,    27,   -76,   368,   -66,   -33,   -31,
1791 <     -28,    76,   115,   -21,   -12,   549,   332,    50,    57,    74,
1792 <    -208,     7,    30,    59,    20,  -925,  -925,  -925,  -925,  -925,
1793 <      63,    65,    80,    87,    90,    92,   106,   117,   118,   120,
1794 <     121,   122,   123,   129,   130,   131,   134,   138,   180,  -925,
1795 <    -925,  -925,  -925,  -925,  -925,  -925,  -925,  -925,  -925,  -925,
1796 <    -925,  -925,  -925,  -925,  -925,  -925,  -925,  -925,   736,   502,
1797 <      16,  -925,   140,    21,  -925,  -925,   218,  -925,   141,   142,
1798 <     144,   146,   147,   148,   156,   158,   169,   172,   174,   175,
1799 <     176,   182,   183,   185,   186,   187,   195,   198,   199,   203,
1800 <     204,   207,   211,   212,   213,   222,  -925,   223,  -925,   225,
1801 <     226,   228,   236,   238,   245,   252,   253,   256,   257,   258,
1802 <     260,   265,   272,   273,   277,   279,   281,   292,   293,   110,
1803 <    -925,  -925,  -925,  -925,  -925,  -925,  -925,  -925,  -925,  -925,
1804 <    -925,  -925,  -925,  -925,  -925,  -925,  -925,  -925,  -925,  -925,
1805 <    -925,  -925,  -925,  -925,  -925,  -925,  -925,  -925,  -925,  -925,
1806 <    -925,  -925,  -925,  -925,  -925,  -925,  -925,  -925,  -925,  -925,
1807 <    -925,  -925,  -925,  -925,  -925,  -925,  -925,  -925,  -925,  -925,
1808 <    -925,  -925,   411,   393,   152,   402,    85,   299,   300,    73,
1809 <    -925,  -925,  -925,  -925,    17,   105,   304,   307,     8,  -925,
1810 <    -925,  -925,   346,    28,  -925,   308,   309,   313,   314,   315,
1811 <     316,   325,    19,  -925,  -925,  -925,  -925,  -925,  -925,  -925,
1812 <    -925,   271,   330,   336,   339,   341,   347,   350,   351,   354,
1813 <    -925,   359,   365,   370,   371,   372,    12,  -925,  -925,  -925,
1814 <    -925,  -925,  -925,  -925,  -925,  -925,  -925,  -925,  -925,  -925,
1815 <    -925,  -925,   177,    23,  -925,   373,    10,  -925,  -925,  -925,
1816 <     241,   290,   323,   378,  -925,   446,   512,   514,   450,   451,
1817 <     519,   519,   523,   524,   462,   464,   531,   519,   465,   467,
1818 <     468,   469,   470,   405,  -925,   406,   404,   408,   410,   412,
1819 <     413,   414,   415,   417,   418,   419,   420,   422,   424,   268,
1820 <    -925,  -925,  -925,  -925,  -925,  -925,  -925,  -925,  -925,  -925,
1821 <    -925,  -925,  -925,  -925,   431,   429,   432,   433,   434,  -925,
1822 <     435,   437,   438,   439,   440,   441,   442,   443,    62,  -925,
1823 <    -925,  -925,  -925,  -925,  -925,  -925,  -925,  -925,  -925,  -925,
1824 <    -925,  -925,  -925,  -925,   444,   447,    36,  -925,  -925,  -925,
1825 <     522,   449,  -925,  -925,   448,   453,  -925,  -925,   102,  -925,
1826 <    -925,  -925,   518,   519,   519,   584,   526,   528,   588,   573,
1827 <     535,   595,   601,   602,   539,   544,   545,   519,   592,   551,
1828 <     614,   619,   519,   620,   624,   604,   629,   632,   568,   570,
1829 <     503,   575,   508,   519,   519,   578,   519,   579,   585,   586,
1830 <      14,    49,   589,   593,   519,   519,   653,   640,   519,   597,
1831 <     598,   599,   600,   536,  -925,  -925,  -925,   532,   534,  -925,
1832 <     537,   538,     2,  -925,  -925,  -925,  -925,  -925,  -925,  -925,
1833 <     543,   542,   546,  -925,   547,   548,   550,   552,   553,    29,
1834 <    -925,  -925,  -925,  -925,  -925,  -925,  -925,  -925,  -925,  -925,
1835 <     554,  -925,   555,  -925,    11,  -925,  -925,  -925,   560,  -925,
1836 <     558,   559,   561,  -925,    22,  -925,  -925,  -925,  -925,  -925,
1837 <     605,   612,   563,  -925,   564,  -925,   648,   658,   565,  -925,
1838 <     567,   571,   572,  -925,   574,   576,   577,  -925,   582,    98,
1839 <    -925,  -925,  -925,  -925,  -925,  -925,  -925,  -925,  -925,   581,
1840 <     583,   587,   590,    13,  -925,  -925,  -925,  -925,   613,   636,
1841 <     637,   664,   642,   644,   519,   591,  -925,  -925,   698,   655,
1842 <     702,   704,   706,   707,   713,   714,   609,   723,   725,   750,
1843 <     737,   738,   630,  -925,   633,   626,  -925,   631,    95,  -925,
1844 <    -925,  -925,  -925,   635,   639,  -925,    26,  -925,  -925,  -925,
1845 <     742,   643,  -925,   646,   647,   651,  -925,   654,   662,   663,
1846 <     671,   674,   423,   675,   679,   680,   682,   686,   690,   691,
1847 <     693,   694,   695,   697,   699,   700,  -925,  -925,   767,   789,
1848 <     519,   827,   832,   833,   834,   814,   836,   837,   519,   519,
1849 <     653,   708,  -925,  -925,   817,   157,   819,   776,   709,   821,
1850 <     823,   824,   825,   847,   828,   829,   830,   717,  -925,   831,
1851 <     835,   722,  -925,   726,  -925,   838,   839,   720,   727,  -925,
1852 <     730,   731,   732,   733,   734,   735,   739,   740,   741,   743,
1853 <     744,   745,   746,   747,   748,   749,   751,   752,   753,   754,
1854 <     755,   756,   757,   758,   759,   760,   761,   762,   657,   763,
1855 <     696,   764,   765,   766,   768,   769,   770,   771,   772,   773,
1856 <     774,   775,   777,   778,   779,   780,    75,   781,   782,   783,
1857 <     784,   785,   786,   787,  -925,   721,   519,   802,   788,   848,
1858 <     852,   790,  -925,  -925,   860,   803,   791,   877,   907,   898,
1859 <     899,   902,   793,  -925,   905,   794,   906,   798,  -925,  -925,
1860 <     796,   910,   911,   933,   804,  -925,   805,   806,  -925,   132,
1861 <     807,   808,  -925,  -925,   913,   875,   809,   920,   921,   923,
1862 <     811,   925,   816,  -925,  -925,   927,   928,   929,   820,  -925,
1863 <     822,   826,   840,   841,   842,   843,   844,  -925,   845,   846,
1864 <     849,   850,   851,   853,   854,   855,   210,   856,   857,   858,
1865 <     859,   861,  -925,  -925,   931,   862,   934,   863,  -925,  -925,
1866 <     935,   864,   866,  -925,   868,  -925,  -925,  -925,  -925,  -925,
1867 <    -925,  -925,  -925,  -925,   519,   519,   519,   519,   519,  -925,
1868 <    -925,  -925,  -925,  -925,  -925,  -925,  -925,  -925,  -925,  -925,
1869 <    -925,  -925,  -925,  -925,   869,   870,   871,   872,   873,   874,
1870 <     876,   878,   879,   880,   881,   882,   883,  -925,   884,   885,
1871 <     886,   887,   888,   128,   889,   890,   891,   892,   893,   894,
1872 <     895,   896,  -925,   897,   900,  -925,  -925,   901,   903,   932,
1873 <    -925,  -925,  -925,  -925,  -925,  -925,  -925,  -925,  -925,  -925,
1874 <    -925,  -925,  -925,  -925,  -925,  -925,  -925,  -925,  -925,  -925,
1875 <    -925,  -925,  -925,  -925,  -925,  -925,  -925,  -925,  -925,  -925,
1876 <    -925,  -925,  -925,  -925,  -925,  -925,  -925,  -925,  -925,  -925,
1877 <    -925,  -925,  -925,  -925,  -925,  -925,  -925,  -925,  -925,  -226,
1878 <    -925,  -925,  -925,  -925,  -925,  -925,  -925,  -925,  -925,  -925,
1879 <    -925,  -925,  -925,  -925,  -925,  -925,  -925,  -925,  -925,  -925,
1880 <    -925,  -925,  -210,  -925,  -925,  -925,  -925,  -925,  -925,  -925,
1881 <    -925,  -925,  -925,  -925,  -925,  -925,  -925,  -925,  -925,   653,
1882 <     653,   653,  -925,  -925,  -925,  -925,  -925,  -925,  -925,  -925,
1883 <    -925,    -6,   904,   908,     5,   909,   912,  -925,   914,   915,
1884 <     454,   916,   917,   918,   919,   922,  -925,   924,   936,   926,
1885 <    -925,   -35,   930,   937,   938,   939,  -925,  -925,  -925,  -925,
1886 <     940,   941,  -925,   942,    31,  -925,  -925,  -925,  -925,  -925,
1887 <    -925,   946,   947,   530,   948,   949,   950,   724,   951,  -925,
1888 <     952,   953,   954,  -925,  -925,  -925,  -925,  -925,  -925,  -925,
1889 <    -925,  -925,  -925,  -925,  -925,  -925,  -925,  -925,  -925,  -925,
1890 <    -925,  -205,  -925,  -925,  -925,  -925,  -925,  -925,   955,   515,
1891 <     956,  -925,   957,   557,  -925,  -925,  -925,  -925,  -925,  -925,
1892 <    -925,  -925,  -925,  -925,  -925,  -925,  -925,  -925,  -925,  -925,
1893 <    -925,  -925,  -925,  -925,  -925,  -925,  -925,  -925,  -925,  -925,
1894 <    -925,  -925,  -925,  -203,  -925,  -925,  -925,  -925,  -925,  -925,
1895 <    -925,  -925,  -925,  -925,  -925,  -925,  -925,  -925,  -193,  -925,
1896 <    -925,   657,  -925,   696,  -925,  -925,  -925,  -925,  -925,  -181,
1897 <    -925,  -925,  -925,  -925,  -925,  -179,  -925,  -925,  -925,  -925,
1898 <    -925,  -925,  -925,  -925,  -925,  -925,  -925,  -925,  -925,  -925,
1899 <    -144,  -925,  -925,  -925,  -925,  -925,  -925,  -925,  -925,   -24,
1900 <    -925,  -925,  -925,  -925,  -925,    -5,  -925,  -925,  -925,   959,
1901 <     933,   958,  -925,   943,   960,   -60,   961,  -925,  -925,  -925,
1902 <    -925,  -925,  -925,  -925,  -925,  -925,  -925,  -925,  -925,  -925,
1903 <    -925,  -925,  -925,  -925,  -925,  -925,  -925,  -925,    -2,  -925,
1904 <    -925,  -925,  -925,  -925,  -925,  -925,  -925,  -925,  -925,  -925,
1905 <    -925,  -925,  -925,  -925,  -925,  -925,  -925,  -925,  -925,  -925,
1906 <    -925,  -925,  -925,    34,  -925,  -925,  -925,  -925,  -925,  -925,
1907 <     210,  -925,  -925,  -925,  -925,  -925,  -925,  -925,  -925,  -925,
1992 <    -925,  -925,    69,  -925,  -925,  -925,  -925,  -925,  -925,  -925,
1993 <    -925,  -925,  -925,  -925,  -925,  -925,    82,  -925,  -925,   128,
1994 <    -925,   932,  -925,  -925,  -925,    -6,  -925,     5,  -925,   454,
1995 <    -925,   936,  -925,   -35,  -925,  -925,  -925,   962,   409,   964,
1996 <     965,  -925,  -925,   530,  -925,   724,  -925,  -925,   515,  -925,
1997 <     557,  -925,  -925,  -925,  -925,  -925,  -925,  -925,  -925,  -925,
1998 <    -925,  -925,  -925,  -925,  -925,  -925,   100,  -925,  -925,  -925,
1999 <    -925,  -925,  -925,  -925,  -925,   409,  -925
1785 >    -678,   581,  -678,  -132,  -213,  -211,  -678,  -678,  -678,  -200,
1786 >    -678,  -194,  -678,  -678,  -678,  -191,  -189,  -678,  -678,  -181,
1787 >    -179,  -678,  -678,  -176,  -678,  -678,  -678,  -678,  -678,  -678,
1788 >    -678,  -678,  -678,  -678,  -678,  -678,  -678,  -678,  -678,  -678,
1789 >    -678,  -678,  -678,  -678,  -678,  -678,  -678,   285,   812,  -143,
1790 >    -106,  -103,    18,   -88,   349,   -79,   -73,   -68,    62,    68,
1791 >     -66,   -57,   388,   387,   -43,   -21,    15,  -182,   -16,   -11,
1792 >      -9,     8,  -678,  -678,  -678,  -678,  -678,    -4,    59,    71,
1793 >      94,    97,   110,   131,   134,   136,   141,   142,   144,   145,
1794 >     146,   155,  -678,  -678,  -678,  -678,  -678,  -678,  -678,  -678,
1795 >    -678,  -678,  -678,  -678,  -678,  -678,  -678,   622,   419,    29,
1796 >    -678,   147,    44,  -678,  -678,   198,  -678,   148,   158,   163,
1797 >     164,   165,   167,   168,   169,   174,   179,   182,   183,   188,
1798 >     189,   192,   195,   196,   200,   205,   212,   227,   229,   230,
1799 >     232,   243,   246,   248,   249,   250,  -678,   251,  -678,   252,
1800 >     254,   255,   256,   263,   264,   267,   268,   271,   273,   274,
1801 >     275,   276,   277,   279,   280,   281,    36,  -678,  -678,  -678,
1802 >    -678,  -678,  -678,  -678,  -678,  -678,  -678,  -678,  -678,  -678,
1803 >    -678,  -678,  -678,  -678,  -678,  -678,  -678,  -678,  -678,  -678,
1804 >    -678,  -678,  -678,  -678,  -678,  -678,  -678,  -678,  -678,  -678,
1805 >    -678,  -678,  -678,  -678,  -678,  -678,  -678,  -678,  -678,  -678,
1806 >    -678,  -678,  -678,  -678,  -678,  -678,  -678,   448,     4,   257,
1807 >      65,   283,    45,  -678,  -678,  -678,    80,    88,   284,   294,
1808 >      49,  -678,  -678,  -678,   426,    13,  -678,   295,   302,   303,
1809 >     304,   305,   307,     7,  -678,  -678,  -678,  -678,  -678,  -678,
1810 >    -678,   187,   308,   309,   310,   311,   312,   314,   316,   318,
1811 >     319,   321,   322,   323,   324,   325,   326,    74,  -678,  -678,
1812 >    -678,  -678,  -678,  -678,  -678,  -678,  -678,  -678,  -678,  -678,
1813 >    -678,  -678,  -678,  -678,    11,    28,  -678,   327,    53,  -678,
1814 >    -678,  -678,   253,   286,   299,   202,  -678,   384,   447,   390,
1815 >     456,   456,   459,   460,   464,   405,   406,   467,   456,   413,
1816 >     414,   332,  -678,   359,   357,   358,   361,   365,   366,   369,
1817 >     370,   373,   374,   375,   376,   383,   385,   156,  -678,  -678,
1818 >    -678,  -678,  -678,  -678,  -678,  -678,  -678,  -678,  -678,  -678,
1819 >    -678,  -678,   362,   392,   393,   394,   395,  -678,   396,   398,
1820 >     400,   403,   404,   407,   408,   412,   210,  -678,  -678,  -678,
1821 >    -678,  -678,  -678,  -678,  -678,  -678,  -678,  -678,  -678,  -678,
1822 >    -678,  -678,   415,   416,    66,  -678,  -678,  -678,   488,   391,
1823 >    -678,  -678,   418,   421,  -678,  -678,    39,  -678,  -678,  -678,
1824 >     472,   456,   456,   541,   483,   485,   546,   529,   489,   456,
1825 >     490,   456,   548,   551,   554,   496,   497,   499,   456,   560,
1826 >     562,   456,   563,   564,   547,   566,   568,   509,   511,   454,
1827 >     515,   457,   456,   456,   517,   519,   520,   521,   181,   184,
1828 >     523,   526,   456,   456,   569,   456,   528,   532,   533,   473,
1829 >    -678,   478,   479,   486,  -678,   487,   491,   492,   494,   495,
1830 >     199,  -678,  -678,  -678,  -678,  -678,  -678,  -678,  -678,  -678,
1831 >    -678,   500,  -678,   501,  -678,    69,  -678,  -678,  -678,   481,
1832 >    -678,   502,   506,   513,  -678,    51,  -678,  -678,  -678,  -678,
1833 >    -678,   542,   493,  -678,   498,  -678,   585,   589,   512,  -678,
1834 >     518,   514,   516,  -678,   525,   535,   538,  -678,   540,    56,
1835 >    -678,  -678,  -678,  -678,  -678,  -678,  -678,  -678,  -678,   531,
1836 >     545,   549,   550,    33,  -678,  -678,  -678,  -678,   555,   558,
1837 >     590,   576,   591,   456,   536,  -678,  -678,   649,   601,   652,
1838 >     653,   655,   656,   662,   669,    46,   213,   670,   672,   695,
1839 >     679,   683,   587,  -678,   588,   586,  -678,   598,    20,  -678,
1840 >    -678,  -678,  -678,   605,   608,  -678,   152,  -678,  -678,  -678,
1841 >     689,   623,  -678,   625,   627,   629,  -678,   630,   631,   632,
1842 >     193,   633,   634,   636,   639,   640,   641,   646,   648,   650,
1843 >     651,   658,  -678,  -678,   724,   759,   456,   765,   768,   771,
1844 >     772,   755,   775,   777,   456,   778,   778,   665,  -678,  -678,
1845 >     764,   180,   766,   723,   666,   773,   774,   776,   779,   789,
1846 >     780,   781,   782,   674,  -678,   783,   784,   677,  -678,   680,
1847 >    -678,   785,   786,   676,   690,  -678,   691,   694,   696,   697,
1848 >     698,   699,   700,   701,   702,   703,   704,   707,   708,   709,
1849 >     710,   711,   712,   713,   714,   716,   717,   718,   719,   720,
1850 >     721,   722,   725,   726,   727,   573,   728,   609,   729,   730,
1851 >     731,   732,   733,   734,   735,   736,   737,   738,   739,   740,
1852 >     741,   742,   743,   744,   745,   746,   747,  -678,  -678,   787,
1853 >     751,   748,   822,   864,   847,   848,   850,   753,  -678,   852,
1854 >     752,   854,   757,  -678,  -678,   756,   856,   858,   877,   762,
1855 >    -678,   763,  -678,   185,   767,   769,  -678,  -678,   862,   821,
1856 >     770,   866,   868,   869,   788,   870,   790,  -678,  -678,   872,
1857 >     873,   874,   792,  -678,   793,   794,   795,   796,   797,   798,
1858 >    -678,   799,   800,   801,   802,   803,   804,   805,   806,  -678,
1859 >    -678,  -204,  -678,  -678,  -678,  -197,  -678,   807,   808,   809,
1860 >     810,   811,  -678,  -678,   875,   813,   876,   814,  -678,  -678,
1861 >     878,   815,   817,  -678,   819,  -678,  -678,  -678,  -678,  -678,
1862 >    -678,  -678,   456,   456,   456,   456,   456,  -678,  -678,  -678,
1863 >    -678,  -678,  -678,  -678,  -678,  -678,  -678,  -678,  -678,  -678,
1864 >     820,   823,   824,   825,   826,   827,   828,   829,   830,   831,
1865 >     832,   297,   833,   834,  -678,   835,   836,   837,   838,   839,
1866 >       5,   840,   841,   842,   843,   844,   845,   846,   849,  -678,
1867 >     851,   853,  -678,  -678,   855,   857,   859,  -678,  -678,  -678,
1868 >    -678,  -678,  -678,  -678,  -678,  -678,  -678,  -678,  -678,  -678,
1869 >    -678,  -678,  -678,  -678,  -678,  -678,  -678,  -678,  -678,  -678,
1870 >    -678,  -678,  -678,  -678,  -678,  -678,  -678,  -678,  -678,  -678,
1871 >    -678,  -678,  -678,  -678,  -678,  -678,  -678,  -678,  -678,  -678,
1872 >    -678,  -678,  -678,  -678,  -678,  -678,  -678,  -195,  -678,  -678,
1873 >    -678,  -678,  -678,  -678,  -678,  -678,  -678,  -678,  -678,  -678,
1874 >    -678,  -678,  -678,  -678,  -678,  -678,  -678,  -678,  -678,  -678,
1875 >    -184,  -678,  -678,  -678,  -678,  -678,  -678,  -678,  -678,  -678,
1876 >    -678,  -678,  -678,  -678,  -678,  -678,  -678,  -678,  -678,  -678,
1877 >    -678,   860,   861,   537,   863,   865,   867,   871,   879,  -678,
1878 >     880,   881,   882,  -678,   -26,   883,   884,   899,   818,  -678,
1879 >    -678,  -678,   885,   886,  -678,   887,   129,  -678,  -678,  -678,
1880 >    -678,  -678,  -678,   888,   891,   484,   892,   893,   894,   643,
1881 >     895,  -678,   896,   897,   898,  -678,  -678,  -678,  -678,  -678,
1882 >    -678,  -678,  -678,  -678,  -678,  -678,  -678,  -678,  -678,  -678,
1883 >    -678,    46,  -678,   213,  -678,  -678,  -678,  -678,  -678,   900,
1884 >     657,   901,  -678,   902,   664,  -678,  -678,  -678,  -678,  -678,
1885 >    -678,  -678,  -678,  -678,  -678,  -678,  -678,  -678,  -678,  -678,
1886 >    -678,  -678,  -678,   778,   778,   778,  -678,  -678,  -678,  -678,
1887 >    -678,  -678,  -678,  -678,  -678,  -678,  -678,  -166,  -678,  -678,
1888 >    -678,  -678,  -678,  -678,  -678,  -678,  -678,  -678,  -678,  -678,
1889 >    -678,  -678,  -164,  -678,  -678,   573,  -678,   609,  -678,  -678,
1890 >    -678,  -678,  -678,  -678,  -678,  -678,  -678,  -678,  -678,  -678,
1891 >    -147,  -678,  -678,  -678,  -678,  -678,  -678,  -678,  -678,  -130,
1892 >    -678,  -678,  -678,  -678,  -678,   -46,  -678,  -678,  -678,   903,
1893 >     877,   904,  -678,   910,   905,   -92,   906,  -678,  -678,  -678,
1894 >    -678,  -678,  -678,  -678,  -678,  -678,  -678,  -678,  -678,  -678,
1895 >    -678,  -678,  -678,  -678,  -678,  -678,  -678,  -678,  -678,    -7,
1896 >    -678,  -678,  -678,  -678,  -678,  -678,  -678,  -678,  -678,  -678,
1897 >    -678,  -678,  -678,  -678,  -678,  -678,  -678,  -678,  -678,  -678,
1898 >    -678,  -678,  -678,  -678,    76,  -678,  -678,  -678,  -678,  -678,
1899 >    -678,  -678,  -678,  -678,  -678,  -678,  -678,  -678,  -678,  -678,
1900 >    -678,  -678,  -678,    82,  -678,  -678,  -678,  -678,  -678,  -678,
1901 >    -678,  -678,  -678,  -678,  -678,  -678,  -678,    85,  -678,  -678,
1902 >    -678,  -678,  -678,     5,  -678,   859,  -678,  -678,  -678,   537,
1903 >    -678,   881,  -678,   -26,  -678,  -678,  -678,   907,   265,   909,
1904 >     911,  -678,  -678,   484,  -678,   643,  -678,   657,  -678,   664,
1905 >    -678,  -678,  -678,  -678,  -678,  -678,  -678,  -678,  -678,  -678,
1906 >    -678,  -678,  -678,    95,  -678,  -678,  -678,  -678,  -678,  -678,
1907 >    -678,  -678,   265,  -678
1908   };
1909  
1910   /* YYPGOTO[NTERM-NUM].  */
1911   static const yytype_int16 yypgoto[] =
1912   {
1913 <    -925,  -925,  -925,  -769,  -319,  -924,  -456,  -925,  -925,   963,
1914 <    -925,  -925,  -925,  -925,   792,  -925,  -925,  -925,  -156,  -925,
1915 <    -925,  -925,  -925,  -925,  -925,  -925,  -925,  -925,  -925,  -925,
1916 <    -925,  -925,  -925,  -925,   996,  -925,  -925,  -925,  -925,  -925,
1917 <     944,  -925,  -925,  -925,  -925,  -925,    61,  -925,  -925,  -925,
1918 <    -925,  -925,  -234,  -925,  -925,  -925,   540,  -925,  -925,  -925,
1919 <    -925,  -925,  -925,  -925,  -925,  -925,  -202,  -925,  -925,  -925,
1920 <    -197,  -925,  -925,  -925,   728,  -925,  -925,  -925,  -925,  -925,
1921 <    -925,  -925,  -925,  -925,  -925,  -925,  -925,  -925,  -925,  -925,
1922 <    -925,  -925,  -925,  -183,  -925,   625,  -925,  -925,  -925,   -72,
1923 <    -925,  -925,  -925,  -925,  -925,   616,  -925,  -925,  -925,  -925,
1924 <    -925,  -925,  -925,  -166,  -925,  -925,  -925,  -925,  -925,  -925,
1925 <     594,  -925,  -925,  -925,  -925,  -925,   795,  -925,  -925,  -925,
1926 <    -925,   501,  -925,  -925,  -925,  -925,  -925,  -175,  -925,  -925,
1927 <    -925,   520,  -925,  -925,  -925,  -925,  -140,  -925,  -925,  -925,
1928 <     797,  -925,  -925,  -925,  -925,  -925,  -925,  -925,  -925,  -925,
1929 <    -925,  -106,  -925,  -925,  -925,  -925,  -925,  -925,  -925,  -925,
1930 <    -925,  -925,  -115,  -925,   660,  -925,  -925,  -925,  -925,  -925,
1931 <     812,  -925,  -925,  -925,  -925,  1025,  -925,  -925,  -925,  -925,
1932 <    -925,  -925,  -100,  -925,   799,  -925,  -925,  -925,  -925,   973,
1933 <    -925,  -925,  -925,  -925,  -925,  -925,  -925,  -925,  -925,  -925,
1934 <    -925,  -925,  -925,  -925,  -925,  -925,  -925,  -925,  -925,  -925,
1935 <    -925,  -925,  -925,  -925,  -925,  -925,  -925,  -925,  -925,  -925,
1936 <    -925,  -925,  -925,  -925,  -925,  -925,  -925,  -925,  -925,  -925,
1937 <    -925,  -925,  -925,  -925,  -925,  -925,  -925,  -925,    41,  -925,
1938 <    -925,  -925,    51,  -925,  -925,  -925,  -925,  -925,  -925,  -925,
1939 <     689,  -925,  -925,  -925,  -925,  -925,   -91,  -925,  -925,  -925,
1940 <    -925,  -925,   -87,  -925,  -925,  1071,  -925,  -925,  -925,  -925,
1941 <    -925,  -925,  -925,  -925,  -925,  -925,  -925,  -925,  -925,  -925,
2034 <    -925,  -925,  -925,  -925,  -925,  -925,   966,  -925,  -925,  -925,
2035 <    -925,  -925,  -925,  -925
1913 >    -678,  -678,  -678,  -451,  -298,  -677,  -595,  -678,  -678,   890,
1914 >    -678,  -678,  -678,  -678,   761,  -678,  -678,  -678,    16,  -678,
1915 >      17,  -678,  -678,  -678,  -678,  -678,  -678,  -678,  -678,  -678,
1916 >    -678,  -678,  -678,  -678,  -678,  -678,   923,  -678,  -678,  -678,
1917 >    -678,  -678,   908,  -678,  -678,  -678,  -678,    50,  -678,  -678,
1918 >    -678,  -678,  -678,  -224,  -678,  -678,  -678,   505,  -678,  -678,
1919 >    -678,  -678,  -678,  -678,  -678,  -678,  -678,  -196,  -678,  -678,
1920 >    -678,  -192,  -678,  -678,  -678,   750,  -678,  -678,  -678,  -678,
1921 >    -678,  -678,  -678,  -678,  -678,  -678,  -678,  -678,  -678,  -678,
1922 >    -678,  -678,  -678,  -678,  -153,  -678,   561,  -678,  -678,  -678,
1923 >     -17,  -678,  -678,  -678,  -678,  -678,   615,  -678,  -678,  -678,
1924 >    -678,  -678,  -678,  -678,  -112,  -678,  -678,  -678,  -678,  -678,
1925 >    -678,   556,  -678,  -678,  -678,  -678,  -678,   791,  -678,  -678,
1926 >    -678,  -678,   539,  -678,  -678,  -678,  -678,  -678,  -126,  -678,
1927 >    -678,  -678,   527,  -678,  -678,  -678,  -678,  -125,  -678,  -678,
1928 >    -678,   758,  -678,  -678,  -678,  -678,  -678,  -678,  -678,  -678,
1929 >    -678,  -678,  -100,  -678,  -678,  -678,  -678,  -678,  -678,  -678,
1930 >    -678,  -678,  -678,   -97,  -678,   616,  -678,  -678,  -678,  -678,
1931 >    -678,   715,  -678,  -678,  -678,  -678,   973,  -678,  -678,  -678,
1932 >    -678,  -678,  -678,   -87,  -678,   705,  -678,  -678,  -678,  -678,
1933 >     924,  -678,  -678,  -678,  -678,  -678,  -678,  -678,  -678,  -678,
1934 >    -678,  -678,  -678,  -678,  -678,  -678,  -678,  -678,  -678,  -678,
1935 >    -678,  -678,  -678,  -678,  -678,  -678,  -678,  -678,  -678,  -678,
1936 >    -678,  -678,  -678,  -678,  -678,  -678,  -678,  -678,  -678,  -678,
1937 >    -678,  -678,  -678,  -678,  -678,  -678,  -678,  -678,    54,  -678,
1938 >    -678,  -678,    47,  -678,  -678,  -678,  -678,  -678,  1002,  -678,
1939 >    -678,  -678,  -678,  -678,  -678,  -678,  -678,  -678,  -678,  -678,
1940 >    -678,  -678,  -678,  -678,  -678,   889,  -678,  -678,  -678,  -678,
1941 >    -678,  -678
1942   };
1943  
1944   /* YYTABLE[YYPACT[STATE-NUM]].  What to do in state STATE-NUM.  If
1945     positive, shift that token.  If negative, reduce the rule which
1946     number is the opposite.  If YYTABLE_NINF, syntax error.  */
1947 < #define YYTABLE_NINF -106
1947 > #define YYTABLE_NINF -108
1948   static const yytype_int16 yytable[] =
1949   {
1950 <     717,   613,   614,   465,    49,  1117,   466,    50,   620,   245,
1951 <      54,   304,   499,   271,   549,  1110,  1123,   393,    56,  1111,
1952 <     254,    70,   121,   508,   593,    61,  1152,   593,   121,   549,
1953 <     480,  1112,  1010,   309,   550,  1113,  1219,   393,  1248,    62,
1954 <    1220,   467,  1249,   272,   468,  1114,  1115,  1116,  1250,   550,
1955 <     716,    71,  1251,   481,   255,  1066,  1067,  1068,  1069,  1070,
1956 <    1254,    72,  1256,   364,  1255,   365,  1257,   256,   366,   509,
1957 <      47,    48,   482,    65,   236,   304,   483,   236,    66,   273,
1958 <     257,   258,   259,   260,    69,   469,   367,   394,   510,   969,
1959 <     970,   971,   122,   511,   671,   672,   584,  1258,   122,   530,
1960 <     261,  1259,   470,   403,   118,   368,   246,   394,   685,   369,
1961 <     305,   127,   274,   690,   275,   276,   245,   551,   128,   129,
1962 <      73,   119,   531,   594,   701,   702,   594,   704,   370,   130,
1963 <     371,  1011,   551,  1010,   247,   714,   715,   131,  1089,   719,
1964 <    1090,   532,   372,   132,   500,   533,   552,   133,   134,   395,
1965 <     135,  1269,   512,   499,   484,   277,   136,   278,   279,   280,
1966 <     120,   552,   373,   485,   486,   137,   138,   126,  1153,   395,
1967 <     139,  1118,  1154,   281,   305,   140,   501,   232,   584,   141,
1968 <     142,    79,  1124,   143,   856,   716,   144,   145,   595,   708,
1969 <     709,   595,   374,    80,   146,   585,  1012,   487,   534,   282,
1970 <     147,   148,   404,   149,   150,   151,   152,   153,    81,    82,
1971 <     233,   283,   234,   246,    83,   235,    84,  1260,   154,   403,
1972 <     375,  1261,   252,   535,   710,   711,   155,   156,   157,   471,
1973 <     158,   253,  1011,   159,   160,   405,  1262,   161,   502,  1272,
1974 <    1263,   247,   536,  1273,   731,   786,   284,   285,   162,   376,
1975 <     528,   310,   601,   747,   582,   778,   488,   524,    85,    86,
1976 <     586,   565,   313,   401,   754,    87,    88,   406,   812,   335,
1977 <    1013,   742,   163,  1166,   311,  1274,   164,   585,   661,  1275,
1978 <     165,   166,   167,   168,   169,   500,    89,    90,   170,   171,
1979 <     336,   337,   237,   302,   338,   237,   377,  1012,   172,    70,
1980 <     303,    91,    92,   312,   657,   238,   537,   315,   238,   316,
1981 <    1277,   846,    93,  -105,  1278,   522,  -105,   501,   404,   854,
1982 <     855,    94,   587,  1279,   317,   538,   519,  1280,   173,    71,
1983 <     174,   318,   175,   271,   319,  1091,   320,   807,   176,    72,
1984 <     772,  1304,   586,   177,   668,  1305,   525,   530,   178,  1092,
1985 <     321,   405,   463,   859,   860,   339,   340,   341,  1049,  1050,
1986 <     342,   322,   323,   272,   324,   325,   326,   327,   343,   127,
1987 <     531,  1013,   603,   328,   329,   330,   128,   129,   331,   502,
1988 <     344,   345,   332,   406,   400,   412,   413,   130,   414,   532,
1989 <     415,   416,   417,   533,   480,   131,   346,   347,    73,   273,
1990 <     418,   132,   419,   508,   587,   133,   134,   982,   135,    95,
1991 <      96,    97,   465,   420,   136,   466,   421,   481,   422,   423,
1992 <     424,   604,   333,   137,   138,   348,   425,   426,   139,   427,
1993 <     428,   429,   274,   140,   275,   276,   482,   141,   142,   430,
1994 <     483,   143,   431,   432,   144,   145,   534,   433,   434,   509,
1995 <     467,   435,   146,   468,   605,   436,   437,   438,   147,   148,
1996 <    1289,   149,   150,   151,   152,   153,   439,   441,   510,   443,
1997 <     444,   535,   445,   511,  1131,   277,   154,   278,   279,   280,
1998 <     446,  1290,   447,  1291,   155,   156,   157,    79,   158,   448,
1999 <     536,   159,   160,   281,   469,   161,   449,   450,  1132,    80,
2000 <     451,   452,   453,   364,   454,   365,   162,  1133,   366,   455,
2001 <     641,   470,   567,  1134,    81,    82,   456,   457,   484,   282,
2002 <      83,   458,    84,   459,  1292,   460,   367,   485,   486,  1135,
2003 <     163,   283,   512,   612,   164,  1170,   461,   462,   165,   166,
2004 <     167,   168,   169,   520,   521,   368,   170,   171,   526,   369,
2005 <     254,   527,   558,   559,   537,  1136,   172,   560,   561,   562,
2006 <     563,   487,  1171,  1137,    85,    86,   284,   285,   370,   564,
2007 <     371,    87,    88,   538,   568,   824,   825,   826,   827,   828,
2008 <     569,  1172,   372,   570,   255,   571,   173,  1173,   174,  1222,
2009 <     175,   572,    89,    90,   573,   574,   176,   256,   575,  1293,
2010 <    1294,   177,   373,   577,  1174,  1138,   178,    91,    92,   578,
2011 <     257,   258,   259,   260,   579,   580,   581,   600,    93,   606,
2012 <     488,   607,   608,  1139,   609,   610,   611,    94,  1175,   612,
2013 <     261,  1236,   374,   615,   616,  1176,  1295,   617,   471,   618,
2014 <     621,   619,   622,   623,   624,   625,   626,   627,   628,  1177,
2015 <       2,     3,   629,   663,   630,     4,   631,   632,   633,   634,
2016 <     375,   635,   636,   637,   638,  1223,   639,  1178,   640,  1179,
2017 <    1180,     5,   643,   644,     6,     7,   645,   646,   647,   649,
2018 <       8,   650,   651,   652,   653,   654,   655,   656,   659,   376,
2019 <     664,   660,   665,   670,   673,     9,  1224,   666,   676,    10,
2020 <      11,   674,    12,   675,   677,   679,  1225,  1237,    13,  1270,
2021 <     678,   680,   681,  1226,   682,    95,    96,    97,   909,   683,
2022 <     684,  1181,    14,   686,   688,  1227,   687,  1228,  1229,   689,
2023 <     691,  1182,    15,    16,   692,   693,   377,   335,  1238,   694,
2024 <    1183,  1230,   695,   696,  1184,   697,  1185,   698,  1239,    17,
2025 <     699,  1231,   700,   703,   705,  1240,  1186,   932,   336,   337,
2026 <     706,   707,   338,   716,   712,    18,  1187,  1241,   713,  1242,
2027 <    1243,   718,   720,   721,   722,   723,   726,   724,   727,   760,
2028 <     756,   729,   730,  1244,   733,  1193,   734,   757,   780,   761,
2029 <     735,   737,   738,  1245,   739,   783,   740,   741,   744,   746,
2030 <      19,   749,   751,   752,   758,   753,   762,   759,   763,    20,
2031 <      21,   781,   782,    22,    23,   764,   765,   784,   767,   785,
2032 <     768,   769,   774,   339,   340,   341,   771,   775,   342,   788,
2033 <     789,   776,   787,   790,   777,   791,   343,   792,   793,   910,
2034 <     911,   912,   913,   914,   794,   795,   915,   916,   344,   345,
2035 <     917,   918,   919,   796,   797,   920,   798,   921,   922,   923,
2036 <     799,   924,   925,   926,   346,   347,   927,    24,   800,   801,
2037 <     804,   802,   928,   814,   803,   806,   809,   844,   933,   934,
2038 <     935,   936,   937,   810,   815,   938,   939,   816,   817,   940,
2039 <     941,   942,   818,   348,   943,   819,   944,   945,   946,   845,
2040 <     947,   948,   949,   820,   821,   950,  1194,  1195,  1196,  1197,
2041 <    1198,   951,   822,  1199,  1200,   823,   831,  1201,  1202,  1203,
2042 <     832,   833,  1204,   834,  1205,  1206,  1207,   835,  1208,  1209,
2043 <    1210,   836,   837,  1211,   838,   839,   840,   847,   841,  1212,
2044 <     842,   843,   848,   849,   850,   851,   852,   853,   858,   857,
2045 <     861,   862,   864,   863,   865,   866,   867,   868,   872,   869,
2046 <     870,   871,   873,   875,   879,   981,   874,   876,   880,   877,
2047 <     878,   881,   882,   883,   884,   885,   886,   983,   989,   985,
2048 <     887,   888,   889,   986,   890,   891,   892,   893,   894,   895,
2049 <     896,   988,   897,   898,   899,   900,   901,   902,   903,   904,
2050 <     905,   906,   907,   908,   931,   954,   955,   956,   991,   957,
2051 <     958,   959,   960,   961,   962,   963,   964,   992,   965,   966,
2052 <     967,   968,   974,   975,   976,   977,   978,   979,   980,   993,
2053 <     994,   987,   984,   995,   996,   990,   997,   999,   998,  1000,
2054 <    1001,  1002,  1003,  1004,  1021,  1007,  1008,  1009,  1019,  1020,
2055 <    1022,  1024,  1025,  1023,  1026,  1027,  1028,  1029,  1030,  1031,
2056 <    1032,  1033,  1058,  1034,  1276,  1060,  1062,  1035,  1107,  1264,
2057 <     314,  1306,  1148,  1301,  1267,  1167,  1300,   642,   583,   773,
2058 <    1287,  1036,  1037,  1038,  1039,  1040,  1041,  1042,  1265,   808,
2059 <    1043,  1044,  1045,  1285,  1046,  1047,  1048,  1053,  1054,  1055,
2060 <    1056,   602,  1057,  1302,  1061,   743,  1059,  1064,  1063,  1065,
2061 <    1071,  1072,  1073,  1074,  1075,  1076,   813,  1077,  1159,  1078,
2062 <    1079,  1080,  1081,  1082,  1083,  1084,  1085,  1086,  1087,  1088,
2063 <    1095,  1096,  1097,  1098,  1099,  1100,  1101,  1102,  1103,   755,
2158 <    1303,  1104,  1105,  1281,  1106,  1121,  1286,   779,   402,  1122,
2159 <    1127,  1282,   464,  1128,  1253,  1129,  1130,  1142,  1143,  1144,
2160 <    1145,   732,  1252,  1146,   748,  1147,  1284,  1151,  1283,   334,
2161 <       0,  1157,     0,     0,     0,   658,     0,     0,  1158,     0,
2162 <       0,  1162,     0,   523,  1160,  1163,  1165,  1168,  1169,  1190,
2163 <    1191,  1192,  1215,  1216,  1217,  1218,  1221,  1234,  1235,  1266,
2164 <       0,     0,  1271,  1288,  1268,  1298,  1299,   669,   662,     0,
2165 <       0,   529,     0,     0,     0,     0,     0,     0,     0,     0,
2166 <       0,     0,     0,     0,     0,     0,     0,     0,   566
1950 >     802,   803,   571,   572,    47,   460,    48,   801,   236,    67,
1951 >     579,   980,   544,  1025,   509,   981,   286,    52,   982,   110,
1952 >    1044,   544,   983,    54,  1045,  1072,    58,   510,    59,   553,
1953 >     371,  1046,    68,   291,   509,  1047,    62,   116,    63,    69,
1954 >     381,    66,   117,   118,   237,   110,   220,   510,   119,  1172,
1955 >     227,  1174,   469,  1173,   286,  1175,   120,   490,   238,   239,
1956 >     240,   241,   121,   220,   122,   123,   124,   371,  1178,   227,
1957 >     460,   125,  1179,   491,   107,   251,   242,   126,   127,   111,
1958 >     128,   129,   130,    45,    46,  1180,   131,   470,   492,  1181,
1959 >     372,   132,   493,   627,   628,   133,   134,    70,   252,   135,
1960 >     545,   635,  1189,   637,   287,   111,   511,   471,   136,   545,
1961 >     644,   108,   472,   647,   109,   137,   138,   554,   139,   140,
1962 >     141,   142,   143,   461,   658,   659,   511,   372,   382,   115,
1963 >     942,   253,   512,   144,   670,   671,   228,   673,   217,   145,
1964 >     146,   147,   287,   148,   218,   494,   149,   150,   373,   219,
1965 >     151,   234,   512,   553,   462,   228,    76,   313,   383,  1073,
1966 >     235,   546,   229,   254,  1074,   255,   256,   473,   495,  1182,
1967 >     546,   314,   315,  1183,   284,   316,    77,    78,   555,   739,
1968 >     740,   229,    79,   152,   496,   373,   942,   153,   461,   384,
1969 >     154,   155,   156,   157,   158,  1026,   285,   159,   160,   381,
1970 >     441,   257,   292,   258,   259,   260,   261,   293,  1192,   294,
1971 >     463,   342,  1193,   343,   297,   344,   442,   547,   943,   462,
1972 >     262,    80,    81,   524,   295,   729,   547,   345,    82,    83,
1973 >      84,   443,   317,   318,   319,   444,   757,   320,   161,   162,
1974 >     163,   554,   346,   164,   263,   321,   347,   497,   165,   722,
1975 >      85,    86,   439,   221,   264,   624,   322,   323,   469,  -107,
1976 >     379,   482,   498,    87,    88,   488,   348,   699,   349,   561,
1977 >     221,   324,   716,    89,   943,   463,  -107,   298,   350,   944,
1978 >     480,    90,   617,   265,   266,   692,    67,   382,   792,   299,
1979 >     542,  1194,   570,   470,   484,  1195,   800,  1196,   325,   351,
1980 >    1198,  1197,   555,   485,  1199,  1206,  1013,  1014,  1015,    68,
1981 >    1221,   445,   300,   471,  1222,   301,    69,   383,   472,   446,
1982 >     447,   997,   998,   999,  1000,  1001,   352,  1207,   302,  1208,
1983 >     772,   773,   774,   775,   776,   944,  1169,  1170,  1171,   326,
1984 >     664,   665,   945,   666,   667,  1086,   743,   744,   384,   303,
1985 >     116,   448,   304,   353,   305,   117,   118,   806,   807,   306,
1986 >     307,   119,   308,   309,   310,   378,   390,  1209,   762,   120,
1987 >     563,   311,   597,   473,    70,   121,   391,   122,   123,   124,
1988 >     354,   392,   393,   394,   125,   395,   396,   397,   251,   236,
1989 >     126,   127,   398,   128,   129,   130,   801,   399,   945,   131,
1990 >     400,   401,   526,   564,   132,   449,   402,   403,   133,   134,
1991 >     404,   252,   135,   405,   406,   687,   565,   566,   407,   355,
1992 >     342,   136,   343,   408,   344,   237,   613,   490,   137,   138,
1993 >     409,   139,   140,   141,   142,   143,   345,  1210,  1211,   238,
1994 >     239,   240,   241,   491,   253,   410,   144,   411,   412,   441,
1995 >     413,   346,   145,   146,   147,   347,   148,   242,   492,   149,
1996 >     150,   414,   493,   151,   415,   442,   416,   417,   418,   420,
1997 >     422,  1212,   423,   424,   425,   348,   254,   349,   255,   256,
1998 >     443,   426,   427,   567,   444,   428,   429,   350,  1090,   430,
1999 >    1190,   431,   432,   433,   434,   435,   152,   436,   437,   438,
2000 >     153,   481,   486,   154,   155,   156,   157,   158,   351,  1091,
2001 >     159,   160,   487,   518,   257,   494,   258,   259,   260,   261,
2002 >     519,   520,   521,   522,  1092,   523,   527,   528,   529,   530,
2003 >     531,  1093,   532,   262,   533,   352,   534,   535,   495,   536,
2004 >     537,   538,   539,   540,   541,   560,   568,   582,  1094,   569,
2005 >    1050,   161,   162,   163,   496,   570,   164,   263,   573,   574,
2006 >     445,   165,   353,   575,   576,   577,   578,   264,   446,   447,
2007 >    1051,  1095,   580,   581,   583,   584,   585,   599,  1096,   586,
2008 >    1052,     2,     3,   587,   588,     4,  1053,   589,   590,   354,
2009 >    1097,   591,   592,   593,   594,     5,   265,   266,     6,     7,
2010 >     448,   595,  1054,   596,     8,   619,   620,  1098,  1099,  1100,
2011 >     600,   601,   602,   603,   605,     9,   606,   497,   607,    10,
2012 >      11,   608,   609,   313,   857,   610,   611,  1055,   355,    12,
2013 >     612,   626,   498,   615,   616,  1056,   621,   314,   315,   622,
2014 >     629,   316,   630,    13,   631,   632,   633,   638,   634,   636,
2015 >     639,    14,    15,   640,   449,   641,   642,  1101,   643,   645,
2016 >     880,   646,   648,   649,   650,   651,  1102,   652,   653,    16,
2017 >     654,  1103,   655,  1057,   656,   657,   660,  1104,   661,   662,
2018 >     663,  1105,   668,    17,  1106,   669,   672,   674,   677,  1107,
2019 >    1058,   675,   676,   678,  1114,  1108,   694,   679,   317,   318,
2020 >     319,   701,   704,   320,   680,   682,   705,   726,   702,   683,
2021 >     684,   321,   685,   686,   724,   703,    18,   725,   689,   691,
2022 >     696,  1143,   322,   323,   697,    19,    20,   706,  1157,    21,
2023 >      22,   698,   708,   707,   709,   727,  1059,   324,   858,   859,
2024 >     860,   861,   862,   711,   863,   864,   718,   865,   866,   867,
2025 >     728,   730,   868,   712,   869,   870,   713,   871,   715,   872,
2026 >     732,   873,   874,   719,   325,   875,   731,   720,   721,   733,
2027 >     734,   876,   735,   736,   881,   882,   883,   884,   885,   737,
2028 >     886,   887,    23,   888,   889,   890,   738,   747,   891,   748,
2029 >     892,   893,  1144,   894,   749,   895,   750,   896,   897,  1158,
2030 >     751,   898,   752,   753,   754,   326,   764,   899,  1115,  1116,
2031 >    1117,  1118,  1119,    76,  1120,  1121,   756,  1122,  1123,  1124,
2032 >     759,  1145,  1125,   790,  1126,  1127,   760,  1128,  1159,  1129,
2033 >    1146,  1130,  1131,    77,    78,  1132,  1147,  1160,   765,    79,
2034 >     766,  1133,   767,  1161,   768,   769,   770,   771,   779,   780,
2035 >    1148,   781,  1149,  1150,   782,   783,   784,  1162,   791,  1163,
2036 >    1164,   785,  1151,   786,   793,   787,   788,   794,  1152,  1165,
2037 >     795,   796,   797,   789,   798,  1166,   799,   801,    80,    81,
2038 >     804,   805,   809,   808,   810,    82,    83,    84,   815,   819,
2039 >     811,   812,   822,   813,   826,   823,   814,   816,   817,   818,
2040 >     820,   821,   824,   825,   921,   827,   828,    85,    86,   829,
2041 >     922,   830,   831,   832,   833,   834,   835,   836,   837,   838,
2042 >      87,    88,   839,   840,   841,   842,   843,   844,   845,   846,
2043 >      89,   847,   848,   849,   850,   851,   852,   853,    90,   924,
2044 >     854,   855,   856,   879,   902,   903,   904,   905,   906,   907,
2045 >     908,   909,   910,   911,   912,   913,   914,   915,   916,   917,
2046 >     918,   919,   920,   925,   926,   927,   923,   928,   929,   930,
2047 >     931,   932,   933,   935,   934,   936,   937,   940,   941,   953,
2048 >     954,  1041,   951,   956,   952,   957,   958,   960,   955,   962,
2049 >     963,   964,   989,   991,   296,   993,  1087,  1140,  1223,  1218,
2050 >    1141,  1217,  1184,  1068,   717,   961,   959,   965,   966,   967,
2051 >     968,   969,   970,   971,   972,   973,   974,   975,   976,   977,
2052 >     978,   979,   984,   985,   986,   987,   988,  1187,   543,   992,
2053 >    1204,   990,   995,   994,   996,  1002,   700,  1080,  1003,  1004,
2054 >    1005,  1006,  1007,  1008,  1009,  1010,  1011,  1012,  1018,  1019,
2055 >    1020,  1021,  1022,  1023,  1024,  1029,  1030,  1031,  1032,  1033,
2056 >    1034,  1035,  1079,  1185,  1036,   688,  1037,  1202,  1038,   723,
2057 >    1039,  1219,  1040,  1200,  1220,  1048,  1049,   598,  1062,   562,
2058 >    1063,   693,  1064,   763,  1203,   380,  1065,   758,  1201,   618,
2059 >     440,   625,  1176,   312,  1066,  1067,     0,  1071,  1077,  1078,
2060 >    1082,  1177,     0,  1088,  1083,  1085,  1089,  1111,  1112,  1113,
2061 >    1136,  1137,  1138,  1139,   614,  1142,  1155,  1156,     0,  1186,
2062 >     489,  1191,  1205,  1188,  1215,     0,  1216,     0,     0,     0,
2063 >     483,     0,   525
2064   };
2065  
2066 < #define yypact_value_is_default(yystate) \
2067 <  ((yystate) == (-925))
2066 > #define yypact_value_is_default(Yystate) \
2067 >  (!!((Yystate) == (-678)))
2068  
2069 < #define yytable_value_is_error(yytable_value) \
2069 > #define yytable_value_is_error(Yytable_value) \
2070    YYID (0)
2071  
2072   static const yytype_int16 yycheck[] =
2073   {
2074 <     456,   320,   321,     1,   243,    11,     4,   243,   327,     1,
2075 <     243,     1,     1,     1,     1,   241,    11,     1,   243,   245,
2076 <       1,     1,     1,     1,     1,   243,    61,     1,     1,     1,
2077 <       1,   241,     1,   241,    21,   245,   241,     1,   241,   243,
2078 <     245,    39,   245,    31,    42,   969,   970,   971,   241,    21,
2079 <     110,    31,   245,    24,    35,   824,   825,   826,   827,   828,
2080 <     241,    41,   241,     1,   245,     3,   245,    48,     6,    47,
2081 <     241,   242,    43,   243,     1,     1,    47,     1,   243,    67,
2082 <      61,    62,    63,    64,   243,    83,    24,    71,    66,    14,
2083 <      15,    16,    71,    71,   413,   414,     1,   241,    71,     1,
2084 <      81,   245,   100,     1,   243,    43,    98,    71,   427,    47,
2085 <     100,     1,   100,   432,   102,   103,     1,   104,     8,     9,
2086 <     100,   243,    24,   100,   443,   444,   100,   446,    66,    19,
2087 <      68,   100,   104,     1,   126,   454,   455,    27,    10,   458,
2088 <      12,    43,    80,    33,   133,    47,   133,    37,    38,   133,
2089 <      40,   211,   130,     1,   125,   143,    46,   145,   146,   147,
2090 <     243,   133,   100,   134,   135,    55,    56,   243,   203,   133,
2091 <      60,   177,   207,   161,   100,    65,   165,   243,     1,    69,
2092 <      70,     1,   177,    73,   640,   110,    76,    77,   165,   175,
2093 <     176,   165,   130,    13,    84,   100,   165,   168,   100,   187,
2094 <      90,    91,   100,    93,    94,    95,    96,    97,    28,    29,
2095 <     243,   199,   243,    98,    34,   243,    36,   241,   108,     1,
2096 <     158,   245,   243,   125,   175,   176,   116,   117,   118,   227,
2097 <     120,   243,   100,   123,   124,   133,   241,   127,   227,   241,
2098 <     245,   126,   144,   245,   242,   564,   234,   235,   138,   187,
2099 <     242,   244,   242,   242,   242,   242,   227,   240,    78,    79,
2100 <     165,   242,   242,   242,   242,    85,    86,   165,   242,     1,
2101 <     239,   242,   162,   242,   244,   241,   166,   100,   242,   245,
2102 <     170,   171,   172,   173,   174,   133,   106,   107,   178,   179,
2103 <      22,    23,   219,   243,    26,   219,   234,   165,   188,     1,
2104 <     243,   121,   122,   244,   242,   232,   208,   244,   232,   244,
2105 <     241,   630,   132,   240,   245,   242,   240,   165,   100,   638,
2106 <     639,   141,   227,   241,   244,   227,   241,   245,   218,    31,
2107 <     220,   244,   222,     1,   244,   207,   244,   242,   228,    41,
2108 <     242,   241,   165,   233,   242,   245,   241,     1,   238,   221,
2109 <     244,   133,   242,   196,   197,    87,    88,    89,   148,   149,
2110 <      92,   244,   244,    31,   244,   244,   244,   244,   100,     1,
2111 <      24,   239,   131,   244,   244,   244,     8,     9,   244,   227,
2112 <     112,   113,   244,   165,   244,   244,   244,    19,   244,    43,
2113 <     244,   244,   244,    47,     1,    27,   128,   129,   100,    67,
2114 <     244,    33,   244,     1,   227,    37,    38,   726,    40,   229,
2115 <     230,   231,     1,   244,    46,     4,   244,    24,   244,   244,
2116 <     244,   131,   242,    55,    56,   157,   244,   244,    60,   244,
2117 <     244,   244,   100,    65,   102,   103,    43,    69,    70,   244,
2118 <      47,    73,   244,   244,    76,    77,   100,   244,   244,    47,
2119 <      39,   244,    84,    42,   131,   244,   244,   244,    90,    91,
2120 <      51,    93,    94,    95,    96,    97,   244,   244,    66,   244,
2121 <     244,   125,   244,    71,    20,   143,   108,   145,   146,   147,
2122 <     244,    72,   244,    74,   116,   117,   118,     1,   120,   244,
2123 <     144,   123,   124,   161,    83,   127,   244,   244,    44,    13,
2124 <     244,   244,   244,     1,   244,     3,   138,    53,     6,   244,
2125 <     242,   100,   241,    59,    28,    29,   244,   244,   125,   187,
2126 <      34,   244,    36,   244,   115,   244,    24,   134,   135,    75,
2127 <     162,   199,   130,   110,   166,     5,   244,   244,   170,   171,
2128 <     172,   173,   174,   244,   244,    43,   178,   179,   244,    47,
2129 <       1,   244,   244,   244,   208,   101,   188,   244,   244,   244,
2130 <     244,   168,    32,   109,    78,    79,   234,   235,    66,   244,
2131 <      68,    85,    86,   227,   244,   152,   153,   154,   155,   156,
2132 <     244,    51,    80,   244,    35,   244,   218,    57,   220,    74,
2133 <     222,   244,   106,   107,   244,   244,   228,    48,   244,   190,
2134 <     191,   233,   100,   244,    74,   151,   238,   121,   122,   244,
2135 <      61,    62,    63,    64,   244,   244,   244,   244,   132,   241,
2136 <     227,   175,   110,   169,   110,   175,   175,   141,    98,   110,
2137 <      81,    74,   130,   110,   110,   105,   227,   175,   227,   175,
2138 <     175,   110,   175,   175,   175,   175,   241,   241,   244,   119,
2139 <       0,     1,   244,   131,   244,     5,   244,   244,   244,   244,
2140 <     158,   244,   244,   244,   244,   150,   244,   137,   244,   139,
2141 <     140,    21,   241,   244,    24,    25,   244,   244,   244,   244,
2142 <      30,   244,   244,   244,   244,   244,   244,   244,   244,   187,
2143 <     241,   244,   244,   175,   110,    45,   181,   244,   110,    49,
2144 <      50,   175,    52,   175,   131,   110,   191,   150,    58,  1165,
2145 <     175,   110,   110,   198,   175,   229,   230,   231,    61,   175,
2146 <     175,   191,    72,   131,   110,   210,   175,   212,   213,   110,
2147 <     110,   201,    82,    83,   110,   131,   234,     1,   181,   110,
2148 <     210,   226,   110,   175,   214,   175,   216,   244,   191,    99,
2149 <     175,   236,   244,   175,   175,   198,   226,    61,    22,    23,
2150 <     175,   175,    26,   110,   175,   115,   236,   210,   175,   212,
2151 <     213,   131,   175,   175,   175,   175,   244,   241,   244,   131,
2152 <     175,   244,   244,   226,   241,    61,   244,   175,   175,   131,
2153 <     244,   244,   244,   236,   244,   131,   244,   244,   244,   244,
2154 <     150,   241,   244,   244,   241,   244,   241,   243,   241,   159,
2155 <     160,   175,   175,   163,   164,   244,   244,   175,   244,   175,
2156 <     244,   244,   241,    87,    88,    89,   244,   244,    92,   131,
2157 <     175,   244,   241,   131,   244,   131,   100,   131,   131,   182,
2158 <     183,   184,   185,   186,   131,   131,   189,   190,   112,   113,
2159 <     193,   194,   195,   244,   131,   198,   131,   200,   201,   202,
2160 <     110,   204,   205,   206,   128,   129,   209,   217,   131,   131,
2161 <     244,   241,   215,   131,   241,   244,   241,   110,   182,   183,
2162 <     184,   185,   186,   244,   241,   189,   190,   241,   241,   193,
2163 <     194,   195,   241,   157,   198,   241,   200,   201,   202,   110,
2164 <     204,   205,   206,   241,   241,   209,   182,   183,   184,   185,
2165 <     186,   215,   241,   189,   190,   241,   241,   193,   194,   195,
2166 <     241,   241,   198,   241,   200,   201,   202,   241,   204,   205,
2167 <     206,   241,   241,   209,   241,   241,   241,   110,   241,   215,
2168 <     241,   241,   110,   110,   110,   131,   110,   110,   131,   241,
2169 <     131,   175,   131,   244,   131,   131,   131,   110,   241,   131,
2170 <     131,   131,   131,   241,   244,   244,   131,   241,   241,   131,
2171 <     131,   241,   241,   241,   241,   241,   241,   175,   175,   131,
2172 <     241,   241,   241,   131,   241,   241,   241,   241,   241,   241,
2173 <     241,   131,   241,   241,   241,   241,   241,   241,   241,   241,
2174 <     241,   241,   241,   241,   241,   241,   241,   241,   131,   241,
2175 <     241,   241,   241,   241,   241,   241,   241,   110,   241,   241,
2176 <     241,   241,   241,   241,   241,   241,   241,   241,   241,   131,
2177 <     131,   241,   244,   131,   241,   244,   131,   131,   244,   241,
2178 <     244,   131,   131,   110,   131,   241,   241,   241,   241,   241,
2179 <     175,   131,   131,   244,   131,   244,   131,   241,   131,   131,
2180 <     131,   241,   131,   241,  1220,   131,   131,   241,   136,   110,
2181 <      74,  1305,   136,  1275,   131,  1014,  1273,   349,   286,   539,
2182 <    1263,   241,   241,   241,   241,   241,   241,   241,  1160,   588,
2183 <     241,   241,   241,  1259,   241,   241,   241,   241,   241,   241,
2184 <     241,   306,   241,  1278,   241,   489,   244,   241,   244,   241,
2185 <     241,   241,   241,   241,   241,   241,   596,   241,   180,   241,
2186 <     241,   241,   241,   241,   241,   241,   241,   241,   241,   241,
2187 <     241,   241,   241,   241,   241,   241,   241,   241,   241,   514,
2291 <    1280,   241,   241,  1249,   241,   241,  1261,   553,   123,   241,
2292 <     241,  1251,   179,   241,  1113,   241,   241,   241,   241,   241,
2293 <     241,   472,  1111,   241,   504,   241,  1257,   241,  1255,    98,
2294 <      -1,   241,    -1,    -1,    -1,   378,    -1,    -1,   241,    -1,
2295 <      -1,   241,    -1,   239,   245,   244,   244,   241,   241,   241,
2296 <     241,   241,   241,   241,   241,   241,   241,   241,   241,   241,
2297 <      -1,    -1,   241,   241,   244,   241,   241,   408,   396,    -1,
2298 <      -1,   248,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2299 <      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   262
2074 >     595,   596,   300,   301,   217,     1,   217,    99,     1,     1,
2075 >     308,   215,     1,     8,     1,   219,     1,   217,   215,     1,
2076 >     215,     1,   219,   217,   219,    51,   217,    14,   217,     1,
2077 >       1,   215,    24,   215,     1,   219,   217,     1,   217,    31,
2078 >       1,   217,     6,     7,    37,     1,     1,    14,    12,   215,
2079 >       1,   215,     1,   219,     1,   219,    20,     1,    51,    52,
2080 >      53,    54,    26,     1,    28,    29,    30,     1,   215,     1,
2081 >       1,    35,   219,    17,   217,     1,    69,    41,    42,    61,
2082 >      44,    45,    46,   215,   216,   215,    50,    36,    32,   219,
2083 >      61,    55,    36,   391,   392,    59,    60,    89,    24,    63,
2084 >      89,   399,   194,   401,    89,    61,    93,    56,    72,    89,
2085 >     408,   217,    61,   411,   217,    79,    80,    89,    82,    83,
2086 >      84,    85,    86,   119,   422,   423,    93,    61,    89,   217,
2087 >       1,    57,   119,    97,   432,   433,    87,   435,   217,   103,
2088 >     104,   105,    89,   107,   217,    89,   110,   111,   119,   217,
2089 >     114,   217,   119,     1,   150,    87,     1,     1,   119,   185,
2090 >     217,   150,   113,    89,   190,    91,    92,   116,   112,   215,
2091 >     150,    15,    16,   219,   217,    19,    21,    22,   150,   133,
2092 >     134,   113,    27,   147,   128,   119,     1,   151,   119,   150,
2093 >     154,   155,   156,   157,   158,   190,   217,   161,   162,     1,
2094 >       1,   127,   218,   129,   130,   131,   132,   218,   215,   218,
2095 >     206,     1,   219,     3,   218,     5,    17,   206,    89,   150,
2096 >     146,    66,    67,   216,   216,   523,   206,    17,    73,    74,
2097 >      75,    32,    76,    77,    78,    36,   216,    81,   202,   203,
2098 >     204,    89,    32,   207,   170,    89,    36,   191,   212,   216,
2099 >      95,    96,   216,   208,   180,   216,   100,   101,     1,   214,
2100 >     216,   216,   206,   108,   109,   216,    56,   216,    58,   216,
2101 >     208,   115,   216,   118,    89,   206,   214,   218,    68,   150,
2102 >     215,   126,   216,   209,   210,   216,     1,    89,   586,   218,
2103 >     216,   215,    99,    36,   214,   219,   594,   215,   142,    89,
2104 >     215,   219,   150,   215,   219,    40,     9,    10,    11,    24,
2105 >     215,   112,   218,    56,   219,   218,    31,   119,    61,   120,
2106 >     121,   772,   773,   774,   775,   776,   116,    62,   218,    64,
2107 >     137,   138,   139,   140,   141,   150,  1013,  1014,  1015,   183,
2108 >     159,   160,   213,   159,   160,   216,   133,   134,   150,   218,
2109 >       1,   152,   218,   143,   218,     6,     7,   177,   178,   218,
2110 >     218,    12,   218,   218,   218,   218,   218,   102,   216,    20,
2111 >     117,   216,   216,   116,    89,    26,   218,    28,    29,    30,
2112 >     170,   218,   218,   218,    35,   218,   218,   218,     1,     1,
2113 >      41,    42,   218,    44,    45,    46,    99,   218,   213,    50,
2114 >     218,   218,   215,   117,    55,   206,   218,   218,    59,    60,
2115 >     218,    24,    63,   218,   218,   216,   117,   215,   218,   209,
2116 >       1,    72,     3,   218,     5,    37,   216,     1,    79,    80,
2117 >     218,    82,    83,    84,    85,    86,    17,   172,   173,    51,
2118 >      52,    53,    54,    17,    57,   218,    97,   218,   218,     1,
2119 >     218,    32,   103,   104,   105,    36,   107,    69,    32,   110,
2120 >     111,   218,    36,   114,   218,    17,   218,   218,   218,   218,
2121 >     218,   206,   218,   218,   218,    56,    89,    58,    91,    92,
2122 >      32,   218,   218,    99,    36,   218,   218,    68,     4,   218,
2123 >    1085,   218,   218,   218,   218,   218,   147,   218,   218,   218,
2124 >     151,   218,   218,   154,   155,   156,   157,   158,    89,    25,
2125 >     161,   162,   218,   218,   127,    89,   129,   130,   131,   132,
2126 >     218,   218,   218,   218,    40,   218,   218,   218,   218,   218,
2127 >     218,    47,   218,   146,   218,   116,   218,   218,   112,   218,
2128 >     218,   218,   218,   218,   218,   218,    99,   215,    64,   159,
2129 >      13,   202,   203,   204,   128,    99,   207,   170,    99,    99,
2130 >     112,   212,   143,    99,   159,   159,    99,   180,   120,   121,
2131 >      33,    87,   159,   159,   215,   218,   218,   215,    94,   218,
2132 >      43,     0,     1,   218,   218,     4,    49,   218,   218,   170,
2133 >     106,   218,   218,   218,   218,    14,   209,   210,    17,    18,
2134 >     152,   218,    65,   218,    23,   117,   215,   123,   124,   125,
2135 >     218,   218,   218,   218,   218,    34,   218,   191,   218,    38,
2136 >      39,   218,   218,     1,    51,   218,   218,    90,   209,    48,
2137 >     218,   159,   206,   218,   218,    98,   218,    15,    16,   218,
2138 >      99,    19,   159,    62,   159,    99,   117,    99,   159,   159,
2139 >      99,    70,    71,    99,   206,   159,   159,   173,   159,    99,
2140 >      51,    99,    99,    99,   117,    99,   182,    99,   159,    88,
2141 >     159,   187,   218,   136,   159,   218,   159,   193,   159,   159,
2142 >     159,   197,   159,   102,   200,   159,   117,   159,   215,   205,
2143 >     153,   159,   159,   215,    51,   211,   215,   218,    76,    77,
2144 >      78,   159,   117,    81,   218,   218,   117,   117,   215,   218,
2145 >     218,    89,   218,   218,   159,   217,   135,   159,   218,   218,
2146 >     218,    64,   100,   101,   218,   144,   145,   215,    64,   148,
2147 >     149,   218,   218,   215,   218,   159,   199,   115,   165,   166,
2148 >     167,   168,   169,   218,   171,   172,   215,   174,   175,   176,
2149 >     159,   215,   179,   218,   181,   182,   218,   184,   218,   186,
2150 >     159,   188,   189,   218,   142,   192,   117,   218,   218,   117,
2151 >     117,   198,   117,   117,   165,   166,   167,   168,   169,   117,
2152 >     171,   172,   201,   174,   175,   176,   117,   117,   179,   117,
2153 >     181,   182,   135,   184,    99,   186,   117,   188,   189,   135,
2154 >     117,   192,   215,   215,   218,   183,   117,   198,   165,   166,
2155 >     167,   168,   169,     1,   171,   172,   218,   174,   175,   176,
2156 >     215,   164,   179,    99,   181,   182,   218,   184,   164,   186,
2157 >     173,   188,   189,    21,    22,   192,   179,   173,   215,    27,
2158 >     215,   198,   215,   179,   215,   215,   215,   215,   215,   215,
2159 >     193,   215,   195,   196,   215,   215,   215,   193,    99,   195,
2160 >     196,   215,   205,   215,    99,   215,   215,    99,   211,   205,
2161 >      99,    99,   117,   215,    99,   211,    99,    99,    66,    67,
2162 >     215,   117,   159,   117,   218,    73,    74,    75,    99,   215,
2163 >     117,   117,   215,   117,   218,   215,   117,   117,   117,   117,
2164 >     117,   117,   117,   117,   117,   215,   215,    95,    96,   215,
2165 >     159,   215,   215,   215,   215,   215,   215,   215,   215,   215,
2166 >     108,   109,   215,   215,   215,   215,   215,   215,   215,   215,
2167 >     118,   215,   215,   215,   215,   215,   215,   215,   126,   117,
2168 >     215,   215,   215,   215,   215,   215,   215,   215,   215,   215,
2169 >     215,   215,   215,   215,   215,   215,   215,   215,   215,   215,
2170 >     215,   215,   215,    99,   117,   117,   218,   117,   215,   117,
2171 >     218,   117,   215,   117,   218,   117,    99,   215,   215,   117,
2172 >     159,   122,   215,   117,   215,   117,   117,   117,   218,   117,
2173 >     117,   117,   117,   117,    71,   117,   946,   981,  1222,  1195,
2174 >     983,  1193,    99,   122,   499,   215,   218,   215,   215,   215,
2175 >     215,   215,   215,   215,   215,   215,   215,   215,   215,   215,
2176 >     215,   215,   215,   215,   215,   215,   215,   117,   267,   215,
2177 >    1183,   218,   215,   218,   215,   215,   475,   219,   215,   215,
2178 >     215,   215,   215,   215,   215,   215,   215,   215,   215,   215,
2179 >     215,   215,   215,   215,   215,   215,   215,   215,   215,   215,
2180 >     215,   215,   163,  1080,   215,   450,   215,  1179,   215,   513,
2181 >     215,  1197,   215,  1173,  1199,   215,   215,   327,   215,   288,
2182 >     215,   465,   215,   556,  1181,   112,   215,   548,  1175,   374,
2183 >     166,   386,  1045,    91,   215,   215,    -1,   215,   215,   215,
2184 >     215,  1047,    -1,   215,   218,   218,   215,   215,   215,   215,
2185 >     215,   215,   215,   215,   356,   215,   215,   215,    -1,   215,
2186 >     230,   215,   215,   218,   215,    -1,   215,    -1,    -1,    -1,
2187 >     222,    -1,   243
2188   };
2189  
2190   /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
2191     symbol of state STATE-NUM.  */
2192   static const yytype_uint16 yystos[] =
2193   {
2194 <       0,   247,     0,     1,     5,    21,    24,    25,    30,    45,
2195 <      49,    50,    52,    58,    72,    82,    83,    99,   115,   150,
2196 <     159,   160,   163,   164,   217,   248,   253,   258,   278,   284,
2197 <     299,   317,   334,   348,   363,   370,   374,   384,   393,   413,
2198 <     423,   429,   433,   443,   503,   519,   540,   241,   242,   243,
2199 <     243,   318,   394,   424,   243,   434,   243,   504,   349,   414,
2200 <     335,   243,   243,   300,   364,   243,   243,   375,   385,   243,
2201 <       1,    31,    41,   100,   279,   280,   281,   282,   283,     1,
2202 <      13,    28,    29,    34,    36,    78,    79,    85,    86,   106,
2203 <     107,   121,   122,   132,   141,   229,   230,   231,   520,   521,
2204 <     522,   523,   524,   525,   526,   527,   528,   529,   530,   531,
2205 <     532,   533,   534,   535,   536,   537,   538,   539,   243,   243,
2206 <     243,     1,    71,   430,   431,   432,   243,     1,     8,     9,
2207 <      19,    27,    33,    37,    38,    40,    46,    55,    56,    60,
2208 <      65,    69,    70,    73,    76,    77,    84,    90,    91,    93,
2209 <      94,    95,    96,    97,   108,   116,   117,   118,   120,   123,
2210 <     124,   127,   138,   162,   166,   170,   171,   172,   173,   174,
2211 <     178,   179,   188,   218,   220,   222,   228,   233,   238,   444,
2212 <     445,   446,   447,   448,   449,   450,   451,   452,   453,   454,
2213 <     455,   456,   457,   458,   459,   460,   461,   462,   463,   464,
2214 <     465,   466,   467,   468,   469,   470,   471,   472,   473,   474,
2215 <     475,   476,   477,   478,   479,   480,   481,   482,   483,   484,
2216 <     485,   486,   487,   488,   489,   490,   491,   495,   499,   500,
2217 <     501,   502,   243,   243,   243,   243,     1,   219,   232,   285,
2218 <     286,   287,   288,   289,   290,     1,    98,   126,   254,   255,
2219 <     256,   257,   243,   243,     1,    35,    48,    61,    62,    63,
2220 <      64,    81,   541,   542,   543,   544,   545,   546,   547,   548,
2221 <     549,     1,    31,    67,   100,   102,   103,   143,   145,   146,
2222 <     147,   161,   187,   199,   234,   235,   259,   260,   261,   265,
2223 <     266,   267,   268,   269,   270,   271,   272,   273,   274,   275,
2224 <     276,   277,   243,   243,     1,   100,   371,   372,   373,   241,
2225 <     244,   244,   244,   242,   280,   244,   244,   244,   244,   244,
2226 <     244,   244,   244,   244,   244,   244,   244,   244,   244,   244,
2227 <     244,   244,   244,   242,   521,     1,    22,    23,    26,    87,
2228 <      88,    89,    92,   100,   112,   113,   128,   129,   157,   319,
2229 <     320,   321,   322,   323,   324,   325,   326,   327,   328,   329,
2230 <     330,   331,   332,   333,     1,     3,     6,    24,    43,    47,
2231 <      66,    68,    80,   100,   130,   158,   187,   234,   395,   396,
2232 <     397,   398,   399,   400,   401,   402,   403,   404,   408,   409,
2233 <     410,   411,   412,     1,    71,   133,   425,   426,   427,   428,
2234 <     244,   242,   431,     1,   100,   133,   165,   435,   439,   440,
2235 <     441,   442,   244,   244,   244,   244,   244,   244,   244,   244,
2236 <     244,   244,   244,   244,   244,   244,   244,   244,   244,   244,
2237 <     244,   244,   244,   244,   244,   244,   244,   244,   244,   244,
2238 <     496,   244,   492,   244,   244,   244,   244,   244,   244,   244,
2239 <     244,   244,   244,   244,   244,   244,   244,   244,   244,   244,
2240 <     244,   244,   244,   242,   445,     1,     4,    39,    42,    83,
2241 <     100,   227,   505,   506,   507,   508,   509,   513,   514,   515,
2242 <       1,    24,    43,    47,   125,   134,   135,   168,   227,   350,
2243 <     351,   352,   353,   354,   355,   356,   360,   361,   362,     1,
2244 <     133,   165,   227,   415,   419,   420,   421,   422,     1,    47,
2245 <      66,    71,   130,   336,   340,   341,   342,   346,   347,   241,
2246 <     244,   244,   242,   286,   240,   241,   244,   244,   242,   255,
2247 <       1,    24,    43,    47,   100,   125,   144,   208,   227,   301,
2248 <     302,   303,   304,   305,   306,   307,   308,   309,   313,     1,
2249 <      21,   104,   133,   365,   366,   367,   368,   369,   244,   244,
2250 <     244,   244,   244,   244,   244,   242,   542,   241,   244,   244,
2251 <     244,   244,   244,   244,   244,   244,   262,   244,   244,   244,
2252 <     244,   244,   242,   260,     1,   100,   165,   227,   376,   377,
2253 <     378,   379,   380,     1,   100,   165,   386,   387,   388,   389,
2254 <     244,   242,   372,   131,   131,   131,   241,   175,   110,   110,
2255 <     175,   175,   110,   250,   250,   110,   110,   175,   175,   110,
2256 <     250,   175,   175,   175,   175,   175,   241,   241,   244,   244,
2257 <     244,   244,   244,   244,   244,   244,   244,   244,   244,   244,
2258 <     244,   242,   320,   241,   244,   244,   244,   244,   405,   244,
2259 <     244,   244,   244,   244,   244,   244,   244,   242,   396,   244,
2260 <     244,   242,   426,   131,   241,   244,   244,   436,   242,   440,
2261 <     175,   250,   250,   110,   175,   175,   110,   131,   175,   110,
2262 <     110,   110,   175,   175,   175,   250,   131,   175,   110,   110,
2263 <     250,   110,   110,   131,   110,   110,   175,   175,   244,   175,
2264 <     244,   250,   250,   175,   250,   175,   175,   175,   175,   176,
2265 <     175,   176,   175,   175,   250,   250,   110,   252,   131,   250,
2266 <     175,   175,   175,   175,   241,   516,   244,   244,   510,   244,
2267 <     244,   242,   506,   241,   244,   244,   357,   244,   244,   244,
2268 <     244,   244,   242,   351,   244,   416,   244,   242,   420,   241,
2269 <     337,   244,   244,   244,   242,   341,   175,   175,   241,   243,
2270 <     131,   131,   241,   241,   244,   244,   314,   244,   244,   244,
2271 <     310,   244,   242,   302,   241,   244,   244,   244,   242,   366,
2272 <     175,   175,   175,   131,   175,   175,   250,   241,   131,   175,
2273 <     131,   131,   131,   131,   131,   131,   244,   131,   131,   110,
2274 <     131,   131,   241,   241,   244,   381,   244,   242,   377,   241,
2275 <     244,   390,   242,   387,   131,   241,   241,   241,   241,   241,
2276 <     241,   241,   241,   241,   152,   153,   154,   155,   156,   249,
2277 <     250,   241,   241,   241,   241,   241,   241,   241,   241,   241,
2278 <     241,   241,   241,   241,   110,   110,   250,   110,   110,   110,
2279 <     110,   131,   110,   110,   250,   250,   252,   241,   131,   196,
2280 <     197,   131,   175,   244,   131,   131,   131,   131,   110,   131,
2281 <     131,   131,   241,   131,   131,   241,   241,   131,   131,   244,
2282 <     241,   241,   241,   241,   241,   241,   241,   241,   241,   241,
2283 <     241,   241,   241,   241,   241,   241,   241,   241,   241,   241,
2284 <     241,   241,   241,   241,   241,   241,   241,   241,   241,    61,
2285 <     182,   183,   184,   185,   186,   189,   190,   193,   194,   195,
2286 <     198,   200,   201,   202,   204,   205,   206,   209,   215,   497,
2287 <     498,   241,    61,   182,   183,   184,   185,   186,   189,   190,
2288 <     193,   194,   195,   198,   200,   201,   202,   204,   205,   206,
2289 <     209,   215,   493,   494,   241,   241,   241,   241,   241,   241,
2290 <     241,   241,   241,   241,   241,   241,   241,   241,   241,    14,
2291 <      15,    16,   251,   252,   241,   241,   241,   241,   241,   241,
2292 <     241,   244,   250,   175,   244,   131,   131,   241,   131,   175,
2293 <     244,   131,   110,   131,   131,   131,   241,   131,   244,   131,
2294 <     241,   244,   131,   131,   110,   344,   345,   241,   241,   241,
2295 <       1,   100,   165,   239,   291,   292,   293,   294,   295,   241,
2296 <     241,   131,   175,   244,   131,   131,   131,   244,   131,   241,
2297 <     131,   131,   131,   241,   241,   241,   241,   241,   241,   241,
2298 <     241,   241,   241,   241,   241,   241,   241,   241,   241,   148,
2299 <     149,   263,   264,   241,   241,   241,   241,   241,   131,   244,
2300 <     131,   241,   131,   244,   241,   241,   249,   249,   249,   249,
2301 <     249,   241,   241,   241,   241,   241,   241,   241,   241,   241,
2302 <     241,   241,   241,   241,   241,   241,   241,   241,   241,    10,
2303 <      12,   207,   221,   406,   407,   241,   241,   241,   241,   241,
2304 <     241,   241,   241,   241,   241,   241,   241,   136,   437,   438,
2305 <     241,   245,   241,   245,   251,   251,   251,    11,   177,   517,
2306 <     518,   241,   241,    11,   177,   511,   512,   241,   241,   241,
2307 <     241,    20,    44,    53,    59,    75,   101,   109,   151,   169,
2308 <     358,   359,   241,   241,   241,   241,   241,   241,   136,   417,
2309 <     418,   241,    61,   203,   207,   338,   339,   241,   241,   180,
2310 <     245,   343,   241,   244,   296,   244,   242,   292,   241,   241,
2311 <       5,    32,    51,    57,    74,    98,   105,   119,   137,   139,
2312 <     140,   191,   201,   210,   214,   216,   226,   236,   315,   316,
2313 <     241,   241,   241,    61,   182,   183,   184,   185,   186,   189,
2314 <     190,   193,   194,   195,   198,   200,   201,   202,   204,   205,
2315 <     206,   209,   215,   311,   312,   241,   241,   241,   241,   241,
2316 <     245,   241,    74,   150,   181,   191,   198,   210,   212,   213,
2429 <     226,   236,   382,   383,   241,   241,    74,   150,   181,   191,
2430 <     198,   210,   212,   213,   226,   236,   391,   392,   241,   245,
2431 <     241,   245,   498,   494,   241,   245,   241,   245,   241,   245,
2432 <     241,   245,   241,   245,   110,   345,   241,   131,   244,   211,
2433 <     252,   241,   241,   245,   241,   245,   264,   241,   245,   241,
2434 <     245,   407,   438,   518,   512,   359,   418,   339,   241,    51,
2435 <      72,    74,   115,   190,   191,   227,   297,   298,   241,   241,
2436 <     316,   312,   383,   392,   241,   245,   298
2194 >       0,   221,     0,     1,     4,    14,    17,    18,    23,    34,
2195 >      38,    39,    48,    62,    70,    71,    88,   102,   135,   144,
2196 >     145,   148,   149,   201,   222,   227,   232,   254,   260,   274,
2197 >     292,   309,   323,   338,   345,   349,   359,   368,   388,   398,
2198 >     404,   408,   418,   476,   493,   215,   216,   217,   217,   293,
2199 >     369,   399,   217,   409,   217,   324,   389,   310,   217,   217,
2200 >     275,   339,   217,   217,   350,   360,   217,     1,    24,    31,
2201 >      89,   255,   256,   257,   258,   259,     1,    21,    22,    27,
2202 >      66,    67,    73,    74,    75,    95,    96,   108,   109,   118,
2203 >     126,   477,   478,   479,   480,   481,   482,   483,   484,   485,
2204 >     486,   487,   488,   489,   490,   491,   492,   217,   217,   217,
2205 >       1,    61,   405,   406,   407,   217,     1,     6,     7,    12,
2206 >      20,    26,    28,    29,    30,    35,    41,    42,    44,    45,
2207 >      46,    50,    55,    59,    60,    63,    72,    79,    80,    82,
2208 >      83,    84,    85,    86,    97,   103,   104,   105,   107,   110,
2209 >     111,   114,   147,   151,   154,   155,   156,   157,   158,   161,
2210 >     162,   202,   203,   204,   207,   212,   419,   420,   421,   422,
2211 >     423,   424,   425,   426,   427,   428,   429,   430,   431,   432,
2212 >     433,   434,   435,   436,   437,   438,   439,   440,   441,   442,
2213 >     443,   444,   445,   446,   447,   448,   449,   450,   451,   452,
2214 >     453,   454,   455,   456,   457,   458,   459,   460,   461,   462,
2215 >     463,   464,   465,   469,   473,   474,   475,   217,   217,   217,
2216 >       1,   208,   261,   262,   263,   264,   265,     1,    87,   113,
2217 >     228,   229,   230,   231,   217,   217,     1,    37,    51,    52,
2218 >      53,    54,    69,   494,   495,   496,   497,   498,   499,   500,
2219 >     501,     1,    24,    57,    89,    91,    92,   127,   129,   130,
2220 >     131,   132,   146,   170,   180,   209,   210,   233,   234,   235,
2221 >     236,   241,   242,   243,   244,   245,   246,   247,   248,   249,
2222 >     250,   251,   252,   253,   217,   217,     1,    89,   346,   347,
2223 >     348,   215,   218,   218,   218,   216,   256,   218,   218,   218,
2224 >     218,   218,   218,   218,   218,   218,   218,   218,   218,   218,
2225 >     218,   216,   478,     1,    15,    16,    19,    76,    77,    78,
2226 >      81,    89,   100,   101,   115,   142,   183,   294,   295,   296,
2227 >     297,   298,   299,   300,   301,   302,   303,   304,   305,   306,
2228 >     307,   308,     1,     3,     5,    17,    32,    36,    56,    58,
2229 >      68,    89,   116,   143,   170,   209,   370,   371,   372,   373,
2230 >     374,   375,   376,   377,   378,   379,   383,   384,   385,   386,
2231 >     387,     1,    61,   119,   400,   401,   402,   403,   218,   216,
2232 >     406,     1,    89,   119,   150,   410,   414,   415,   416,   417,
2233 >     218,   218,   218,   218,   218,   218,   218,   218,   218,   218,
2234 >     218,   218,   218,   218,   218,   218,   218,   218,   218,   218,
2235 >     218,   218,   218,   218,   218,   218,   218,   218,   218,   470,
2236 >     218,   466,   218,   218,   218,   218,   218,   218,   218,   218,
2237 >     218,   218,   218,   218,   218,   218,   218,   218,   218,   216,
2238 >     420,     1,    17,    32,    36,   112,   120,   121,   152,   206,
2239 >     325,   326,   327,   328,   329,   330,   331,   335,   336,   337,
2240 >       1,   119,   150,   206,   390,   394,   395,   396,   397,     1,
2241 >      36,    56,    61,   116,   311,   315,   316,   317,   321,   322,
2242 >     215,   218,   216,   262,   214,   215,   218,   218,   216,   229,
2243 >       1,    17,    32,    36,    89,   112,   128,   191,   206,   276,
2244 >     277,   278,   279,   280,   281,   282,   283,   284,   288,     1,
2245 >      14,    93,   119,   340,   341,   342,   343,   344,   218,   218,
2246 >     218,   218,   218,   218,   216,   495,   215,   218,   218,   218,
2247 >     218,   218,   218,   218,   218,   218,   218,   218,   218,   218,
2248 >     218,   218,   216,   234,     1,    89,   150,   206,   351,   352,
2249 >     353,   354,   355,     1,    89,   150,   361,   362,   363,   364,
2250 >     218,   216,   347,   117,   117,   117,   215,    99,    99,   159,
2251 >      99,   224,   224,    99,    99,    99,   159,   159,    99,   224,
2252 >     159,   159,   215,   215,   218,   218,   218,   218,   218,   218,
2253 >     218,   218,   218,   218,   218,   218,   218,   216,   295,   215,
2254 >     218,   218,   218,   218,   380,   218,   218,   218,   218,   218,
2255 >     218,   218,   218,   216,   371,   218,   218,   216,   401,   117,
2256 >     215,   218,   218,   411,   216,   415,   159,   224,   224,    99,
2257 >     159,   159,    99,   117,   159,   224,   159,   224,    99,    99,
2258 >      99,   159,   159,   159,   224,    99,    99,   224,    99,    99,
2259 >     117,    99,    99,   159,   159,   218,   159,   218,   224,   224,
2260 >     159,   159,   159,   159,   159,   160,   159,   160,   159,   159,
2261 >     224,   224,   117,   224,   159,   159,   159,   215,   215,   218,
2262 >     218,   332,   218,   218,   218,   218,   218,   216,   326,   218,
2263 >     391,   218,   216,   395,   215,   312,   218,   218,   218,   216,
2264 >     316,   159,   215,   217,   117,   117,   215,   215,   218,   218,
2265 >     289,   218,   218,   218,   285,   218,   216,   277,   215,   218,
2266 >     218,   218,   216,   341,   159,   159,   117,   159,   159,   224,
2267 >     215,   117,   159,   117,   117,   117,   117,   117,   117,   133,
2268 >     134,   237,   238,   133,   134,   239,   240,   117,   117,    99,
2269 >     117,   117,   215,   215,   218,   356,   218,   216,   352,   215,
2270 >     218,   365,   216,   362,   117,   215,   215,   215,   215,   215,
2271 >     215,   215,   137,   138,   139,   140,   141,   223,   224,   215,
2272 >     215,   215,   215,   215,   215,   215,   215,   215,   215,   215,
2273 >      99,    99,   224,    99,    99,    99,    99,   117,    99,    99,
2274 >     224,    99,   226,   226,   215,   117,   177,   178,   117,   159,
2275 >     218,   117,   117,   117,   117,    99,   117,   117,   117,   215,
2276 >     117,   117,   215,   215,   117,   117,   218,   215,   215,   215,
2277 >     215,   215,   215,   215,   215,   215,   215,   215,   215,   215,
2278 >     215,   215,   215,   215,   215,   215,   215,   215,   215,   215,
2279 >     215,   215,   215,   215,   215,   215,   215,    51,   165,   166,
2280 >     167,   168,   169,   171,   172,   174,   175,   176,   179,   181,
2281 >     182,   184,   186,   188,   189,   192,   198,   471,   472,   215,
2282 >      51,   165,   166,   167,   168,   169,   171,   172,   174,   175,
2283 >     176,   179,   181,   182,   184,   186,   188,   189,   192,   198,
2284 >     467,   468,   215,   215,   215,   215,   215,   215,   215,   215,
2285 >     215,   215,   215,   215,   215,   215,   215,   215,   215,   215,
2286 >     215,   117,   159,   218,   117,    99,   117,   117,   117,   215,
2287 >     117,   218,   117,   215,   218,   117,   117,    99,   319,   320,
2288 >     215,   215,     1,    89,   150,   213,   266,   267,   268,   269,
2289 >     270,   215,   215,   117,   159,   218,   117,   117,   117,   218,
2290 >     117,   215,   117,   117,   117,   215,   215,   215,   215,   215,
2291 >     215,   215,   215,   215,   215,   215,   215,   215,   215,   215,
2292 >     215,   219,   215,   219,   215,   215,   215,   215,   215,   117,
2293 >     218,   117,   215,   117,   218,   215,   215,   223,   223,   223,
2294 >     223,   223,   215,   215,   215,   215,   215,   215,   215,   215,
2295 >     215,   215,   215,     9,    10,    11,   225,   226,   215,   215,
2296 >     215,   215,   215,   215,   215,     8,   190,   381,   382,   215,
2297 >     215,   215,   215,   215,   215,   215,   215,   215,   215,   215,
2298 >     215,   122,   412,   413,   215,   219,   215,   219,   215,   215,
2299 >      13,    33,    43,    49,    65,    90,    98,   136,   153,   199,
2300 >     333,   334,   215,   215,   215,   215,   215,   215,   122,   392,
2301 >     393,   215,    51,   185,   190,   313,   314,   215,   215,   163,
2302 >     219,   318,   215,   218,   271,   218,   216,   267,   215,   215,
2303 >       4,    25,    40,    47,    64,    87,    94,   106,   123,   124,
2304 >     125,   173,   182,   187,   193,   197,   200,   205,   211,   290,
2305 >     291,   215,   215,   215,    51,   165,   166,   167,   168,   169,
2306 >     171,   172,   174,   175,   176,   179,   181,   182,   184,   186,
2307 >     188,   189,   192,   198,   286,   287,   215,   215,   215,   215,
2308 >     238,   240,   215,    64,   135,   164,   173,   179,   193,   195,
2309 >     196,   205,   211,   357,   358,   215,   215,    64,   135,   164,
2310 >     173,   179,   193,   195,   196,   205,   211,   366,   367,   225,
2311 >     225,   225,   215,   219,   215,   219,   472,   468,   215,   219,
2312 >     215,   219,   215,   219,    99,   320,   215,   117,   218,   194,
2313 >     226,   215,   215,   219,   215,   219,   215,   219,   215,   219,
2314 >     382,   413,   334,   393,   314,   215,    40,    62,    64,   102,
2315 >     172,   173,   206,   272,   273,   215,   215,   291,   287,   358,
2316 >     367,   215,   219,   273
2317   };
2318  
2319   #define yyerrok         (yyerrstatus = 0)
# Line 2463 | Line 2343 | static const yytype_uint16 yystos[] =
2343  
2344   #define YYRECOVERING()  (!!yyerrstatus)
2345  
2346 < #define YYBACKUP(Token, Value)                                  \
2347 < do                                                              \
2348 <  if (yychar == YYEMPTY && yylen == 1)                          \
2349 <    {                                                           \
2350 <      yychar = (Token);                                         \
2351 <      yylval = (Value);                                         \
2352 <      YYPOPSTACK (1);                                           \
2353 <      goto yybackup;                                            \
2354 <    }                                                           \
2355 <  else                                                          \
2356 <    {                                                           \
2346 > #define YYBACKUP(Token, Value)                                  \
2347 > do                                                              \
2348 >  if (yychar == YYEMPTY)                                        \
2349 >    {                                                           \
2350 >      yychar = (Token);                                         \
2351 >      yylval = (Value);                                         \
2352 >      YYPOPSTACK (yylen);                                       \
2353 >      yystate = *yyssp;                                         \
2354 >      goto yybackup;                                            \
2355 >    }                                                           \
2356 >  else                                                          \
2357 >    {                                                           \
2358        yyerror (YY_("syntax error: cannot back up")); \
2359        YYERROR;                                                  \
2360      }                                                           \
2361   while (YYID (0))
2362  
2363 <
2363 > /* Error token number */
2364   #define YYTERROR        1
2365   #define YYERRCODE       256
2366  
2367  
2487 /* YYLLOC_DEFAULT -- Set CURRENT to span from RHS[1] to RHS[N].
2488   If N is 0, then set CURRENT to the empty location which ends
2489   the previous symbol: RHS[0] (always defined).  */
2490
2491 #define YYRHSLOC(Rhs, K) ((Rhs)[K])
2492 #ifndef YYLLOC_DEFAULT
2493 # define YYLLOC_DEFAULT(Current, Rhs, N)                                \
2494    do                                                                  \
2495      if (YYID (N))                                                    \
2496        {                                                               \
2497          (Current).first_line   = YYRHSLOC (Rhs, 1).first_line;        \
2498          (Current).first_column = YYRHSLOC (Rhs, 1).first_column;      \
2499          (Current).last_line    = YYRHSLOC (Rhs, N).last_line;         \
2500          (Current).last_column  = YYRHSLOC (Rhs, N).last_column;       \
2501        }                                                               \
2502      else                                                              \
2503        {                                                               \
2504          (Current).first_line   = (Current).last_line   =              \
2505            YYRHSLOC (Rhs, 0).last_line;                                \
2506          (Current).first_column = (Current).last_column =              \
2507            YYRHSLOC (Rhs, 0).last_column;                              \
2508        }                                                               \
2509    while (YYID (0))
2510 #endif
2511
2512
2368   /* This macro is provided for backward compatibility. */
2514
2369   #ifndef YY_LOCATION_PRINT
2370   # define YY_LOCATION_PRINT(File, Loc) ((void) 0)
2371   #endif
2372  
2373  
2374   /* YYLEX -- calling `yylex' with the right arguments.  */
2521
2375   #ifdef YYLEX_PARAM
2376   # define YYLEX yylex (YYLEX_PARAM)
2377   #else
# Line 2568 | Line 2421 | yy_symbol_value_print (yyoutput, yytype,
2421      YYSTYPE const * const yyvaluep;
2422   #endif
2423   {
2424 +  FILE *yyo = yyoutput;
2425 +  YYUSE (yyo);
2426    if (!yyvaluep)
2427      return;
2428   # ifdef YYPRINT
# Line 2579 | Line 2434 | yy_symbol_value_print (yyoutput, yytype,
2434    switch (yytype)
2435      {
2436        default:
2437 <        break;
2437 >        break;
2438      }
2439   }
2440  
# Line 2819 | Line 2674 | static int
2674   yysyntax_error (YYSIZE_T *yymsg_alloc, char **yymsg,
2675                  yytype_int16 *yyssp, int yytoken)
2676   {
2677 <  YYSIZE_T yysize0 = yytnamerr (0, yytname[yytoken]);
2677 >  YYSIZE_T yysize0 = yytnamerr (YY_NULL, yytname[yytoken]);
2678    YYSIZE_T yysize = yysize0;
2824  YYSIZE_T yysize1;
2679    enum { YYERROR_VERBOSE_ARGS_MAXIMUM = 5 };
2680    /* Internationalized format string. */
2681 <  const char *yyformat = 0;
2681 >  const char *yyformat = YY_NULL;
2682    /* Arguments of yyformat. */
2683    char const *yyarg[YYERROR_VERBOSE_ARGS_MAXIMUM];
2684    /* Number of reported tokens (one for the "unexpected", one per
# Line 2884 | Line 2738 | yysyntax_error (YYSIZE_T *yymsg_alloc, c
2738                      break;
2739                    }
2740                  yyarg[yycount++] = yytname[yyx];
2741 <                yysize1 = yysize + yytnamerr (0, yytname[yyx]);
2742 <                if (! (yysize <= yysize1
2743 <                       && yysize1 <= YYSTACK_ALLOC_MAXIMUM))
2744 <                  return 2;
2745 <                yysize = yysize1;
2741 >                {
2742 >                  YYSIZE_T yysize1 = yysize + yytnamerr (YY_NULL, yytname[yyx]);
2743 >                  if (! (yysize <= yysize1
2744 >                         && yysize1 <= YYSTACK_ALLOC_MAXIMUM))
2745 >                    return 2;
2746 >                  yysize = yysize1;
2747 >                }
2748                }
2749          }
2750      }
# Line 2908 | Line 2764 | yysyntax_error (YYSIZE_T *yymsg_alloc, c
2764   # undef YYCASE_
2765      }
2766  
2767 <  yysize1 = yysize + yystrlen (yyformat);
2768 <  if (! (yysize <= yysize1 && yysize1 <= YYSTACK_ALLOC_MAXIMUM))
2769 <    return 2;
2770 <  yysize = yysize1;
2767 >  {
2768 >    YYSIZE_T yysize1 = yysize + yystrlen (yyformat);
2769 >    if (! (yysize <= yysize1 && yysize1 <= YYSTACK_ALLOC_MAXIMUM))
2770 >      return 2;
2771 >    yysize = yysize1;
2772 >  }
2773  
2774    if (*yymsg_alloc < yysize)
2775      {
# Line 2971 | Line 2829 | yydestruct (yymsg, yytype, yyvaluep)
2829      {
2830  
2831        default:
2832 <        break;
2832 >        break;
2833      }
2834   }
2835  
2836  
2979 /* Prevent warnings from -Wmissing-prototypes.  */
2980 #ifdef YYPARSE_PARAM
2981 #if defined __STDC__ || defined __cplusplus
2982 int yyparse (void *YYPARSE_PARAM);
2983 #else
2984 int yyparse ();
2985 #endif
2986 #else /* ! YYPARSE_PARAM */
2987 #if defined __STDC__ || defined __cplusplus
2988 int yyparse (void);
2989 #else
2990 int yyparse ();
2991 #endif
2992 #endif /* ! YYPARSE_PARAM */
2837  
2838  
2839   /* The lookahead symbol.  */
2840   int yychar;
2841  
2842 +
2843 + #ifndef YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
2844 + # define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
2845 + # define YY_IGNORE_MAYBE_UNINITIALIZED_END
2846 + #endif
2847 + #ifndef YY_INITIAL_VALUE
2848 + # define YY_INITIAL_VALUE(Value) /* Nothing. */
2849 + #endif
2850 +
2851   /* The semantic value of the lookahead symbol.  */
2852 < YYSTYPE yylval;
2852 > YYSTYPE yylval YY_INITIAL_VALUE(yyval_default);
2853  
2854   /* Number of syntax errors so far.  */
2855   int yynerrs;
# Line 3036 | Line 2889 | yyparse ()
2889         `yyss': related to states.
2890         `yyvs': related to semantic values.
2891  
2892 <       Refer to the stacks thru separate pointers, to allow yyoverflow
2892 >       Refer to the stacks through separate pointers, to allow yyoverflow
2893         to reallocate them elsewhere.  */
2894  
2895      /* The state stack.  */
# Line 3054 | Line 2907 | yyparse ()
2907    int yyn;
2908    int yyresult;
2909    /* Lookahead token as an internal (translated) token number.  */
2910 <  int yytoken;
2910 >  int yytoken = 0;
2911    /* The variables used to return semantic value and location from the
2912       action routines.  */
2913    YYSTYPE yyval;
# Line 3072 | Line 2925 | yyparse ()
2925       Keep to zero when no symbol should be popped.  */
2926    int yylen = 0;
2927  
2928 <  yytoken = 0;
2929 <  yyss = yyssa;
3077 <  yyvs = yyvsa;
2928 >  yyssp = yyss = yyssa;
2929 >  yyvsp = yyvs = yyvsa;
2930    yystacksize = YYINITDEPTH;
2931  
2932    YYDPRINTF ((stderr, "Starting parse\n"));
# Line 3083 | Line 2935 | yyparse ()
2935    yyerrstatus = 0;
2936    yynerrs = 0;
2937    yychar = YYEMPTY; /* Cause a token to be read.  */
3086
3087  /* Initialize stack pointers.
3088     Waste one element of value and location stack
3089     so that they stay on the same level as the state stack.
3090     The wasted elements are never initialized.  */
3091  yyssp = yyss;
3092  yyvsp = yyvs;
3093
2938    goto yysetstate;
2939  
2940   /*------------------------------------------------------------.
# Line 3231 | Line 3075 | yybackup:
3075    yychar = YYEMPTY;
3076  
3077    yystate = yyn;
3078 +  YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
3079    *++yyvsp = yylval;
3080 +  YY_IGNORE_MAYBE_UNINITIALIZED_END
3081  
3082    goto yynewstate;
3083  
# Line 3267 | Line 3113 | yyreduce:
3113    YY_REDUCE_PRINT (yyn);
3114    switch (yyn)
3115      {
3116 <        case 27:
3117 <
3118 < /* Line 1806 of yacc.c  */
3273 < #line 407 "ircd_parser.y"
3116 >        case 26:
3117 > /* Line 1792 of yacc.c  */
3118 > #line 384 "conf_parser.y"
3119      { (yyval.number) = 0; }
3120      break;
3121  
3122 <  case 29:
3123 <
3124 < /* Line 1806 of yacc.c  */
3280 < #line 409 "ircd_parser.y"
3122 >  case 28:
3123 > /* Line 1792 of yacc.c  */
3124 > #line 386 "conf_parser.y"
3125      {
3126                          (yyval.number) = (yyvsp[(1) - (2)].number) + (yyvsp[(2) - (2)].number);
3127                  }
3128      break;
3129  
3130 <  case 30:
3131 <
3132 < /* Line 1806 of yacc.c  */
3289 < #line 413 "ircd_parser.y"
3130 >  case 29:
3131 > /* Line 1792 of yacc.c  */
3132 > #line 390 "conf_parser.y"
3133      {
3134                          (yyval.number) = (yyvsp[(1) - (3)].number) + (yyvsp[(3) - (3)].number);
3135                  }
3136      break;
3137  
3138 <  case 31:
3139 <
3140 < /* Line 1806 of yacc.c  */
3298 < #line 417 "ircd_parser.y"
3138 >  case 30:
3139 > /* Line 1792 of yacc.c  */
3140 > #line 394 "conf_parser.y"
3141      {
3142                          (yyval.number) = (yyvsp[(1) - (3)].number) * 60 + (yyvsp[(3) - (3)].number);
3143                  }
3144      break;
3145  
3146 <  case 32:
3147 <
3148 < /* Line 1806 of yacc.c  */
3307 < #line 421 "ircd_parser.y"
3146 >  case 31:
3147 > /* Line 1792 of yacc.c  */
3148 > #line 398 "conf_parser.y"
3149      {
3150                          (yyval.number) = (yyvsp[(1) - (3)].number) * 60 * 60 + (yyvsp[(3) - (3)].number);
3151                  }
3152      break;
3153  
3154 <  case 33:
3155 <
3156 < /* Line 1806 of yacc.c  */
3316 < #line 425 "ircd_parser.y"
3154 >  case 32:
3155 > /* Line 1792 of yacc.c  */
3156 > #line 402 "conf_parser.y"
3157      {
3158                          (yyval.number) = (yyvsp[(1) - (3)].number) * 60 * 60 * 24 + (yyvsp[(3) - (3)].number);
3159                  }
3160      break;
3161  
3162 <  case 34:
3163 <
3164 < /* Line 1806 of yacc.c  */
3325 < #line 429 "ircd_parser.y"
3162 >  case 33:
3163 > /* Line 1792 of yacc.c  */
3164 > #line 406 "conf_parser.y"
3165      {
3166                          (yyval.number) = (yyvsp[(1) - (3)].number) * 60 * 60 * 24 * 7 + (yyvsp[(3) - (3)].number);
3167                  }
3168      break;
3169  
3170 <  case 35:
3171 <
3172 < /* Line 1806 of yacc.c  */
3334 < #line 434 "ircd_parser.y"
3170 >  case 34:
3171 > /* Line 1792 of yacc.c  */
3172 > #line 411 "conf_parser.y"
3173      { (yyval.number) = 0; }
3174      break;
3175  
3176 <  case 37:
3177 <
3178 < /* Line 1806 of yacc.c  */
3341 < #line 435 "ircd_parser.y"
3176 >  case 36:
3177 > /* Line 1792 of yacc.c  */
3178 > #line 412 "conf_parser.y"
3179      { (yyval.number) = (yyvsp[(1) - (2)].number) + (yyvsp[(2) - (2)].number); }
3180      break;
3181  
3182 <  case 38:
3183 <
3184 < /* Line 1806 of yacc.c  */
3348 < #line 436 "ircd_parser.y"
3182 >  case 37:
3183 > /* Line 1792 of yacc.c  */
3184 > #line 413 "conf_parser.y"
3185      { (yyval.number) = (yyvsp[(1) - (3)].number) + (yyvsp[(3) - (3)].number); }
3186      break;
3187  
3188 <  case 39:
3189 <
3190 < /* Line 1806 of yacc.c  */
3355 < #line 437 "ircd_parser.y"
3188 >  case 38:
3189 > /* Line 1792 of yacc.c  */
3190 > #line 414 "conf_parser.y"
3191      { (yyval.number) = (yyvsp[(1) - (3)].number) * 1024 + (yyvsp[(3) - (3)].number); }
3192      break;
3193  
3194 <  case 40:
3195 <
3196 < /* Line 1806 of yacc.c  */
3362 < #line 438 "ircd_parser.y"
3194 >  case 39:
3195 > /* Line 1792 of yacc.c  */
3196 > #line 415 "conf_parser.y"
3197      { (yyval.number) = (yyvsp[(1) - (3)].number) * 1024 * 1024 + (yyvsp[(3) - (3)].number); }
3198      break;
3199  
3200 <  case 47:
3201 <
3202 < /* Line 1806 of yacc.c  */
3369 < #line 452 "ircd_parser.y"
3200 >  case 46:
3201 > /* Line 1792 of yacc.c  */
3202 > #line 429 "conf_parser.y"
3203      {
3204    if (conf_parser_ctx.pass == 2)
3205      add_conf_module(libio_basename(yylval.string));
3206   }
3207      break;
3208  
3209 <  case 48:
3210 <
3211 < /* Line 1806 of yacc.c  */
3379 < #line 458 "ircd_parser.y"
3209 >  case 47:
3210 > /* Line 1792 of yacc.c  */
3211 > #line 435 "conf_parser.y"
3212      {
3213    if (conf_parser_ctx.pass == 2)
3214      mod_add_path(yylval.string);
3215   }
3216      break;
3217  
3218 <  case 67:
3219 <
3220 < /* Line 1806 of yacc.c  */
3389 < #line 478 "ircd_parser.y"
3218 >  case 71:
3219 > /* Line 1792 of yacc.c  */
3220 > #line 460 "conf_parser.y"
3221      {
3222   #ifdef HAVE_LIBCRYPTO
3223 <  if (conf_parser_ctx.boot && conf_parser_ctx.pass == 2)
3224 <    ServerInfo.tls_version = 0;
3223 >  if (conf_parser_ctx.pass == 2 && ServerInfo.client_ctx)
3224 >    SSL_CTX_clear_options(ServerInfo.client_ctx, SSL_OP_NO_SSLv3);
3225   #endif
3226   }
3227      break;
3228  
3229 <  case 68:
3230 <
3231 < /* Line 1806 of yacc.c  */
3401 < #line 484 "ircd_parser.y"
3229 >  case 72:
3230 > /* Line 1792 of yacc.c  */
3231 > #line 466 "conf_parser.y"
3232      {
3233   #ifdef HAVE_LIBCRYPTO
3234 <  if (conf_parser_ctx.boot && conf_parser_ctx.pass == 2)
3235 <  {
3406 <    if (!(ServerInfo.tls_version & CONF_SERVER_INFO_TLS_VERSION_SSLV3))
3407 <    {
3408 <      SSL_CTX_set_options(ServerInfo.server_ctx, SSL_OP_NO_SSLv3);
3409 <      SSL_CTX_set_options(ServerInfo.client_ctx, SSL_OP_NO_SSLv3);
3410 <    }
3411 <
3412 <    if (!(ServerInfo.tls_version & CONF_SERVER_INFO_TLS_VERSION_TLSV1))
3413 <    {
3414 <      SSL_CTX_set_options(ServerInfo.server_ctx, SSL_OP_NO_TLSv1);
3415 <      SSL_CTX_set_options(ServerInfo.client_ctx, SSL_OP_NO_TLSv1);
3416 <    }
3417 <  }
3234 >  if (conf_parser_ctx.pass == 2 && ServerInfo.client_ctx)
3235 >    SSL_CTX_clear_options(ServerInfo.client_ctx, SSL_OP_NO_TLSv1);
3236   #endif
3237   }
3238      break;
3239  
3240 <  case 71:
3241 <
3242 < /* Line 1806 of yacc.c  */
3425 < #line 505 "ircd_parser.y"
3240 >  case 75:
3241 > /* Line 1792 of yacc.c  */
3242 > #line 475 "conf_parser.y"
3243      {
3244   #ifdef HAVE_LIBCRYPTO
3245 <  if (conf_parser_ctx.boot && conf_parser_ctx.pass == 2)
3246 <    ServerInfo.tls_version |= CONF_SERVER_INFO_TLS_VERSION_SSLV3;
3245 >  if (conf_parser_ctx.pass == 2 && ServerInfo.server_ctx)
3246 >    SSL_CTX_clear_options(ServerInfo.server_ctx, SSL_OP_NO_SSLv3);
3247   #endif
3248   }
3249      break;
3250  
3251 <  case 72:
3252 <
3253 < /* Line 1806 of yacc.c  */
3437 < #line 511 "ircd_parser.y"
3251 >  case 76:
3252 > /* Line 1792 of yacc.c  */
3253 > #line 481 "conf_parser.y"
3254      {
3255   #ifdef HAVE_LIBCRYPTO
3256 <  if (conf_parser_ctx.boot && conf_parser_ctx.pass == 2)
3257 <    ServerInfo.tls_version |= CONF_SERVER_INFO_TLS_VERSION_TLSV1;
3256 >  if (conf_parser_ctx.pass == 2 && ServerInfo.server_ctx)
3257 >    SSL_CTX_clear_options(ServerInfo.server_ctx, SSL_OP_NO_TLSv1);
3258   #endif
3259   }
3260      break;
3261  
3262 <  case 73:
3263 <
3264 < /* Line 1806 of yacc.c  */
3449 < #line 519 "ircd_parser.y"
3262 >  case 77:
3263 > /* Line 1792 of yacc.c  */
3264 > #line 489 "conf_parser.y"
3265      {
3266   #ifdef HAVE_LIBCRYPTO
3267    if (conf_parser_ctx.pass == 2 && ServerInfo.server_ctx)
# Line 3486 | Line 3301 | yyreduce:
3301   }
3302      break;
3303  
3304 <  case 74:
3305 <
3306 < /* Line 1806 of yacc.c  */
3492 < #line 558 "ircd_parser.y"
3304 >  case 78:
3305 > /* Line 1792 of yacc.c  */
3306 > #line 528 "conf_parser.y"
3307      {
3308   #ifdef HAVE_LIBCRYPTO
3309    if (conf_parser_ctx.pass == 1)
# Line 3508 | Line 3322 | yyreduce:
3322        ServerInfo.rsa_private_key_file = NULL;
3323      }
3324  
3325 <    DupString(ServerInfo.rsa_private_key_file, yylval.string);
3325 >    ServerInfo.rsa_private_key_file = xstrdup(yylval.string);
3326  
3327      if ((file = BIO_new_file(yylval.string, "r")) == NULL)
3328      {
# Line 3549 | Line 3363 | yyreduce:
3363   }
3364      break;
3365  
3366 <  case 75:
3367 <
3368 < /* Line 1806 of yacc.c  */
3555 < #line 617 "ircd_parser.y"
3366 >  case 79:
3367 > /* Line 1792 of yacc.c  */
3368 > #line 587 "conf_parser.y"
3369      {
3370   /* TBD - XXX: error reporting */
3371   #ifdef HAVE_LIBCRYPTO
# Line 3568 | Line 3381 | yyreduce:
3381  
3382        if (dh)
3383        {
3384 <        SSL_CTX_set_tmp_dh(ServerInfo.server_ctx, dh);
3384 >        if (DH_size(dh) < 128)
3385 >          ilog(LOG_TYPE_IRCD, "Ignoring serverinfo::ssl_dh_param_file -- need at least a 1024 bit DH prime size");
3386 >        else
3387 >          SSL_CTX_set_tmp_dh(ServerInfo.server_ctx, dh);
3388 >
3389          DH_free(dh);
3390        }
3391      }
# Line 3577 | Line 3394 | yyreduce:
3394   }
3395      break;
3396  
3397 <  case 76:
3398 <
3399 < /* Line 1806 of yacc.c  */
3583 < #line 641 "ircd_parser.y"
3397 >  case 80:
3398 > /* Line 1792 of yacc.c  */
3399 > #line 615 "conf_parser.y"
3400      {
3401   #ifdef HAVE_LIBCRYPTO
3402    if (conf_parser_ctx.pass == 2 && ServerInfo.server_ctx)
3587  {
3403      SSL_CTX_set_cipher_list(ServerInfo.server_ctx, yylval.string);
3589  }
3404   #endif
3405   }
3406      break;
3407  
3408 <  case 77:
3409 <
3410 < /* Line 1806 of yacc.c  */
3597 < #line 651 "ircd_parser.y"
3408 >  case 81:
3409 > /* Line 1792 of yacc.c  */
3410 > #line 623 "conf_parser.y"
3411      {
3412    /* this isn't rehashable */
3413    if (conf_parser_ctx.pass == 2 && !ServerInfo.name)
3414    {
3415      if (valid_servname(yylval.string))
3416 <      DupString(ServerInfo.name, yylval.string);
3416 >      ServerInfo.name = xstrdup(yylval.string);
3417      else
3418      {
3419        ilog(LOG_TYPE_IRCD, "Ignoring serverinfo::name -- invalid name. Aborting.");
# Line 3610 | Line 3423 | yyreduce:
3423   }
3424      break;
3425  
3426 <  case 78:
3427 <
3428 < /* Line 1806 of yacc.c  */
3616 < #line 666 "ircd_parser.y"
3426 >  case 82:
3427 > /* Line 1792 of yacc.c  */
3428 > #line 638 "conf_parser.y"
3429      {
3430    /* this isn't rehashable */
3431    if (conf_parser_ctx.pass == 2 && !ServerInfo.sid)
3432    {
3433      if (valid_sid(yylval.string))
3434 <      DupString(ServerInfo.sid, yylval.string);
3434 >      ServerInfo.sid = xstrdup(yylval.string);
3435      else
3436      {
3437        ilog(LOG_TYPE_IRCD, "Ignoring serverinfo::sid -- invalid SID. Aborting.");
# Line 3629 | Line 3441 | yyreduce:
3441   }
3442      break;
3443  
3444 <  case 79:
3445 <
3446 < /* Line 1806 of yacc.c  */
3635 < #line 681 "ircd_parser.y"
3444 >  case 83:
3445 > /* Line 1792 of yacc.c  */
3446 > #line 653 "conf_parser.y"
3447      {
3448    if (conf_parser_ctx.pass == 2)
3449    {
3450      MyFree(ServerInfo.description);
3451 <    DupString(ServerInfo.description,yylval.string);
3451 >    ServerInfo.description = xstrdup(yylval.string);
3452    }
3453   }
3454      break;
3455  
3456 <  case 80:
3457 <
3458 < /* Line 1806 of yacc.c  */
3648 < #line 690 "ircd_parser.y"
3456 >  case 84:
3457 > /* Line 1792 of yacc.c  */
3458 > #line 662 "conf_parser.y"
3459      {
3460    if (conf_parser_ctx.pass == 2)
3461    {
# Line 3655 | Line 3465 | yyreduce:
3465        p = '\0';
3466  
3467      MyFree(ServerInfo.network_name);
3468 <    DupString(ServerInfo.network_name, yylval.string);
3468 >    ServerInfo.network_name = xstrdup(yylval.string);
3469    }
3470   }
3471      break;
3472  
3473 <  case 81:
3474 <
3475 < /* Line 1806 of yacc.c  */
3666 < #line 704 "ircd_parser.y"
3473 >  case 85:
3474 > /* Line 1792 of yacc.c  */
3475 > #line 676 "conf_parser.y"
3476      {
3477    if (conf_parser_ctx.pass == 2)
3478    {
3479      MyFree(ServerInfo.network_desc);
3480 <    DupString(ServerInfo.network_desc, yylval.string);
3480 >    ServerInfo.network_desc = xstrdup(yylval.string);
3481    }
3482   }
3483      break;
3484  
3485 <  case 82:
3486 <
3487 < /* Line 1806 of yacc.c  */
3679 < #line 713 "ircd_parser.y"
3485 >  case 86:
3486 > /* Line 1792 of yacc.c  */
3487 > #line 685 "conf_parser.y"
3488      {
3489    if (conf_parser_ctx.pass == 2 && *yylval.string != '*')
3490    {
# Line 3705 | Line 3513 | yyreduce:
3513   }
3514      break;
3515  
3516 <  case 83:
3517 <
3518 < /* Line 1806 of yacc.c  */
3711 < #line 741 "ircd_parser.y"
3516 >  case 87:
3517 > /* Line 1792 of yacc.c  */
3518 > #line 713 "conf_parser.y"
3519      {
3520   #ifdef IPV6
3521    if (conf_parser_ctx.pass == 2 && *yylval.string != '*')
# Line 3739 | Line 3546 | yyreduce:
3546   }
3547      break;
3548  
3549 <  case 84:
3550 <
3551 < /* Line 1806 of yacc.c  */
3745 < #line 771 "ircd_parser.y"
3549 >  case 88:
3550 > /* Line 1792 of yacc.c  */
3551 > #line 743 "conf_parser.y"
3552      {
3553    if (conf_parser_ctx.pass == 2)
3554    {
# Line 3766 | Line 3572 | yyreduce:
3572   }
3573      break;
3574  
3575 <  case 85:
3576 <
3577 < /* Line 1806 of yacc.c  */
3772 < #line 794 "ircd_parser.y"
3575 >  case 89:
3576 > /* Line 1792 of yacc.c  */
3577 > #line 766 "conf_parser.y"
3578      {
3579    if (conf_parser_ctx.pass == 2)
3580      ServerInfo.hub = yylval.number;
3581   }
3582      break;
3583  
3584 <  case 93:
3585 <
3586 < /* Line 1806 of yacc.c  */
3782 < #line 809 "ircd_parser.y"
3584 >  case 97:
3585 > /* Line 1792 of yacc.c  */
3586 > #line 781 "conf_parser.y"
3587      {
3588    if (conf_parser_ctx.pass == 2)
3589    {
3590      MyFree(AdminInfo.name);
3591 <    DupString(AdminInfo.name, yylval.string);
3591 >    AdminInfo.name = xstrdup(yylval.string);
3592    }
3593   }
3594      break;
3595  
3596 <  case 94:
3597 <
3598 < /* Line 1806 of yacc.c  */
3795 < #line 818 "ircd_parser.y"
3596 >  case 98:
3597 > /* Line 1792 of yacc.c  */
3598 > #line 790 "conf_parser.y"
3599      {
3600    if (conf_parser_ctx.pass == 2)
3601    {
3602      MyFree(AdminInfo.email);
3603 <    DupString(AdminInfo.email, yylval.string);
3603 >    AdminInfo.email = xstrdup(yylval.string);
3604    }
3605   }
3606      break;
3607  
3608 <  case 95:
3609 <
3610 < /* Line 1806 of yacc.c  */
3808 < #line 827 "ircd_parser.y"
3608 >  case 99:
3609 > /* Line 1792 of yacc.c  */
3610 > #line 799 "conf_parser.y"
3611      {
3612    if (conf_parser_ctx.pass == 2)
3613    {
3614      MyFree(AdminInfo.description);
3615 <    DupString(AdminInfo.description, yylval.string);
3615 >    AdminInfo.description = xstrdup(yylval.string);
3616    }
3617   }
3618      break;
3619  
3620 <  case 103:
3621 <
3622 < /* Line 1806 of yacc.c  */
3821 < #line 845 "ircd_parser.y"
3620 >  case 106:
3621 > /* Line 1792 of yacc.c  */
3622 > #line 817 "conf_parser.y"
3623      {
3624    if (conf_parser_ctx.pass == 2)
3625      ConfigLoggingEntry.use_logging = yylval.number;
3626   }
3627      break;
3628  
3629 <  case 104:
3630 <
3631 < /* Line 1806 of yacc.c  */
3831 < #line 851 "ircd_parser.y"
3629 >  case 107:
3630 > /* Line 1792 of yacc.c  */
3631 > #line 823 "conf_parser.y"
3632      {
3633    if (conf_parser_ctx.pass == 2)
3634 <    ConfigLoggingEntry.timestamp = yylval.number;
3634 >    reset_block_state();
3635   }
3636      break;
3637  
3638 <  case 105:
3639 <
3640 < /* Line 1806 of yacc.c  */
3841 < #line 857 "ircd_parser.y"
3638 >  case 108:
3639 > /* Line 1792 of yacc.c  */
3640 > #line 827 "conf_parser.y"
3641      {
3642 <  lfile[0] = '\0';
3844 <  ltype = 0;
3845 <  lsize = 0;
3846 < }
3642 >  if (conf_parser_ctx.pass != 2)
3643      break;
3644  
3645 <  case 106:
3646 <
3647 < /* Line 1806 of yacc.c  */
3852 < #line 862 "ircd_parser.y"
3853 <    {
3854 <  if (conf_parser_ctx.pass == 2 && ltype > 0)
3855 <    log_add_file(ltype, lsize, lfile);
3645 >  if (block_state.type.value && block_state.file.buf[0])
3646 >    log_add_file(block_state.type.value, block_state.size.value,
3647 >                 block_state.file.buf);
3648   }
3649      break;
3650  
3651 <  case 113:
3652 <
3653 < /* Line 1806 of yacc.c  */
3862 < #line 874 "ircd_parser.y"
3863 <    {
3864 <  strlcpy(lfile, yylval.string, sizeof(lfile));
3865 < }
3866 <    break;
3867 <
3868 <  case 114:
3869 <
3870 < /* Line 1806 of yacc.c  */
3871 < #line 879 "ircd_parser.y"
3651 >  case 115:
3652 > /* Line 1792 of yacc.c  */
3653 > #line 843 "conf_parser.y"
3654      {
3655 <  lsize = (yyvsp[(3) - (4)].number);
3874 < }
3655 >  if (conf_parser_ctx.pass != 2)
3656      break;
3657  
3658 <  case 115:
3878 <
3879 < /* Line 1806 of yacc.c  */
3880 < #line 882 "ircd_parser.y"
3881 <    {
3882 <  lsize = 0;
3658 >  strlcpy(block_state.file.buf, yylval.string, sizeof(block_state.file.buf));
3659   }
3660      break;
3661  
3662    case 116:
3663 <
3664 < /* Line 1806 of yacc.c  */
3889 < #line 887 "ircd_parser.y"
3663 > /* Line 1792 of yacc.c  */
3664 > #line 851 "conf_parser.y"
3665      {
3666 <  if (conf_parser_ctx.pass == 2)
3892 <    ltype = 0;
3666 >  block_state.size.value = (yyvsp[(3) - (4)].number);
3667   }
3668      break;
3669  
3670 <  case 120:
3671 <
3672 < /* Line 1806 of yacc.c  */
3899 < #line 894 "ircd_parser.y"
3670 >  case 117:
3671 > /* Line 1792 of yacc.c  */
3672 > #line 854 "conf_parser.y"
3673      {
3674 <  if (conf_parser_ctx.pass == 2)
3902 <    ltype = LOG_TYPE_USER;
3674 >  block_state.size.value = 0;
3675   }
3676      break;
3677  
3678 <  case 121:
3679 <
3680 < /* Line 1806 of yacc.c  */
3909 < #line 898 "ircd_parser.y"
3678 >  case 118:
3679 > /* Line 1792 of yacc.c  */
3680 > #line 859 "conf_parser.y"
3681      {
3682    if (conf_parser_ctx.pass == 2)
3683 <    ltype = LOG_TYPE_OPER;
3683 >    block_state.type.value = 0;
3684   }
3685      break;
3686  
3687    case 122:
3688 <
3689 < /* Line 1806 of yacc.c  */
3919 < #line 902 "ircd_parser.y"
3688 > /* Line 1792 of yacc.c  */
3689 > #line 866 "conf_parser.y"
3690      {
3691    if (conf_parser_ctx.pass == 2)
3692 <    ltype = LOG_TYPE_GLINE;
3692 >    block_state.type.value = LOG_TYPE_USER;
3693   }
3694      break;
3695  
3696    case 123:
3697 <
3698 < /* Line 1806 of yacc.c  */
3929 < #line 906 "ircd_parser.y"
3697 > /* Line 1792 of yacc.c  */
3698 > #line 870 "conf_parser.y"
3699      {
3700    if (conf_parser_ctx.pass == 2)
3701 <    ltype = LOG_TYPE_DLINE;
3701 >    block_state.type.value = LOG_TYPE_OPER;
3702   }
3703      break;
3704  
3705    case 124:
3706 <
3707 < /* Line 1806 of yacc.c  */
3939 < #line 910 "ircd_parser.y"
3706 > /* Line 1792 of yacc.c  */
3707 > #line 874 "conf_parser.y"
3708      {
3709    if (conf_parser_ctx.pass == 2)
3710 <    ltype = LOG_TYPE_KLINE;
3710 >    block_state.type.value = LOG_TYPE_GLINE;
3711   }
3712      break;
3713  
3714    case 125:
3715 <
3716 < /* Line 1806 of yacc.c  */
3949 < #line 914 "ircd_parser.y"
3715 > /* Line 1792 of yacc.c  */
3716 > #line 878 "conf_parser.y"
3717      {
3718    if (conf_parser_ctx.pass == 2)
3719 <    ltype = LOG_TYPE_KILL;
3719 >    block_state.type.value = LOG_TYPE_DLINE;
3720   }
3721      break;
3722  
3723    case 126:
3724 <
3725 < /* Line 1806 of yacc.c  */
3959 < #line 918 "ircd_parser.y"
3724 > /* Line 1792 of yacc.c  */
3725 > #line 882 "conf_parser.y"
3726      {
3727    if (conf_parser_ctx.pass == 2)
3728 <    ltype = LOG_TYPE_DEBUG;
3728 >    block_state.type.value = LOG_TYPE_KLINE;
3729   }
3730      break;
3731  
3732    case 127:
3733 <
3734 < /* Line 1806 of yacc.c  */
3969 < #line 928 "ircd_parser.y"
3733 > /* Line 1792 of yacc.c  */
3734 > #line 886 "conf_parser.y"
3735      {
3736    if (conf_parser_ctx.pass == 2)
3737 <  {
3973 <    yy_conf = make_conf_item(OPER_TYPE);
3974 <    yy_aconf = map_to_conf(yy_conf);
3975 <    SetConfEncrypted(yy_aconf); /* Yes, the default is encrypted */
3976 <  }
3977 <  else
3978 <  {
3979 <    MyFree(class_name);
3980 <    class_name = NULL;
3981 <  }
3737 >    block_state.type.value = LOG_TYPE_KILL;
3738   }
3739      break;
3740  
3741    case 128:
3742 <
3743 < /* Line 1806 of yacc.c  */
3988 < #line 941 "ircd_parser.y"
3742 > /* Line 1792 of yacc.c  */
3743 > #line 890 "conf_parser.y"
3744      {
3745    if (conf_parser_ctx.pass == 2)
3746 <  {
3747 <    struct CollectItem *yy_tmp;
3748 <    dlink_node *ptr;
3994 <    dlink_node *next_ptr;
3995 <
3996 <    conf_add_class_to_conf(yy_conf, class_name);
3997 <
3998 <    /* Now, make sure there is a copy of the "base" given oper
3999 <     * block in each of the collected copies
4000 <     */
3746 >    block_state.type.value = LOG_TYPE_DEBUG;
3747 > }
3748 >    break;
3749  
3750 <    DLINK_FOREACH_SAFE(ptr, next_ptr, col_conf_list.head)
3750 >  case 129:
3751 > /* Line 1792 of yacc.c  */
3752 > #line 900 "conf_parser.y"
3753      {
3754 <      struct AccessItem *new_aconf;
3755 <      struct ConfItem *new_conf;
4006 <      yy_tmp = ptr->data;
4007 <
4008 <      new_conf = make_conf_item(OPER_TYPE);
4009 <      new_aconf = (struct AccessItem *)map_to_conf(new_conf);
4010 <
4011 <      new_aconf->flags = yy_aconf->flags;
4012 <
4013 <      if (yy_conf->name != NULL)
4014 <        DupString(new_conf->name, yy_conf->name);
4015 <      if (yy_tmp->user != NULL)
4016 <        DupString(new_aconf->user, yy_tmp->user);
4017 <      else
4018 <        DupString(new_aconf->user, "*");
4019 <      if (yy_tmp->host != NULL)
4020 <        DupString(new_aconf->host, yy_tmp->host);
4021 <      else
4022 <        DupString(new_aconf->host, "*");
4023 <
4024 <      new_aconf->type = parse_netmask(new_aconf->host, &new_aconf->ipnum,
4025 <                                     &new_aconf->bits);
4026 <
4027 <      conf_add_class_to_conf(new_conf, class_name);
4028 <      if (yy_aconf->passwd != NULL)
4029 <        DupString(new_aconf->passwd, yy_aconf->passwd);
4030 <
4031 <      new_aconf->port = yy_aconf->port;
4032 < #ifdef HAVE_LIBCRYPTO
4033 <      if (yy_aconf->rsa_public_key_file != NULL)
4034 <      {
4035 <        BIO *file;
4036 <
4037 <        DupString(new_aconf->rsa_public_key_file,
4038 <                  yy_aconf->rsa_public_key_file);
4039 <
4040 <        file = BIO_new_file(yy_aconf->rsa_public_key_file, "r");
4041 <        new_aconf->rsa_public_key = (RSA *)PEM_read_bio_RSA_PUBKEY(file,
4042 <                                                           NULL, 0, NULL);
4043 <        BIO_set_close(file, BIO_CLOSE);
4044 <        BIO_free(file);
4045 <      }
4046 < #endif
4047 <
4048 < #ifdef HAVE_LIBCRYPTO
4049 <      if (yy_tmp->name && (yy_tmp->passwd || yy_aconf->rsa_public_key)
4050 <          && yy_tmp->host)
4051 < #else
4052 <      if (yy_tmp->name && yy_tmp->passwd && yy_tmp->host)
4053 < #endif
4054 <      {
4055 <        conf_add_class_to_conf(new_conf, class_name);
4056 <        if (yy_tmp->name != NULL)
4057 <          DupString(new_conf->name, yy_tmp->name);
4058 <      }
4059 <
4060 <      dlinkDelete(&yy_tmp->node, &col_conf_list);
4061 <      free_collect_item(yy_tmp);
4062 <    }
4063 <
4064 <    yy_conf = NULL;
4065 <    yy_aconf = NULL;
4066 <
3754 >  if (conf_parser_ctx.pass != 2)
3755 >    break;
3756  
3757 <    MyFree(class_name);
3758 <    class_name = NULL;
4070 <  }
3757 >  reset_block_state();
3758 >  block_state.flags.value |= CONF_FLAGS_ENCRYPTED;
3759   }
3760      break;
3761  
3762 <  case 140:
3763 <
3764 < /* Line 1806 of yacc.c  */
4077 < #line 1031 "ircd_parser.y"
3762 >  case 130:
3763 > /* Line 1792 of yacc.c  */
3764 > #line 907 "conf_parser.y"
3765      {
3766 <  if (conf_parser_ctx.pass == 2)
4080 <  {
4081 <    if (strlen(yylval.string) > OPERNICKLEN)
4082 <      yylval.string[OPERNICKLEN] = '\0';
3766 >  dlink_node *ptr = NULL;
3767  
3768 <    MyFree(yy_conf->name);
4085 <    DupString(yy_conf->name, yylval.string);
4086 <  }
4087 < }
3768 >  if (conf_parser_ctx.pass != 2)
3769      break;
3770  
3771 <  case 141:
3771 >  if (!block_state.name.buf[0])
3772 >    break;
3773 > #ifdef HAVE_LIBCRYPTO
3774 >  if (!(block_state.file.buf[0] ||
3775 >        block_state.rpass.buf[0]))
3776 >    break;
3777 > #else
3778 >  if (!block_state.rpass.buf[0])
3779 >    break;
3780 > #endif
3781  
3782 < /* Line 1806 of yacc.c  */
4093 < #line 1043 "ircd_parser.y"
4094 <    {
4095 <  if (conf_parser_ctx.pass == 2)
3782 >  DLINK_FOREACH(ptr, block_state.mask.list.head)
3783    {
3784 +    struct MaskItem *conf = NULL;
3785      struct split_nuh_item nuh;
3786  
3787 <    nuh.nuhmask  = yylval.string;
3787 >    nuh.nuhmask  = ptr->data;
3788      nuh.nickptr  = NULL;
3789 <    nuh.userptr  = userbuf;
3790 <    nuh.hostptr  = hostbuf;
4103 <
3789 >    nuh.userptr  = block_state.user.buf;
3790 >    nuh.hostptr  = block_state.host.buf;
3791      nuh.nicksize = 0;
3792 <    nuh.usersize = sizeof(userbuf);
3793 <    nuh.hostsize = sizeof(hostbuf);
4107 <
3792 >    nuh.usersize = sizeof(block_state.user.buf);
3793 >    nuh.hostsize = sizeof(block_state.host.buf);
3794      split_nuh(&nuh);
3795  
3796 <    if (yy_aconf->user == NULL)
3797 <    {
3798 <      DupString(yy_aconf->user, userbuf);
3799 <      DupString(yy_aconf->host, hostbuf);
3796 >    conf        = conf_make(CONF_OPER);
3797 >    conf->name  = xstrdup(block_state.name.buf);
3798 >    conf->user  = xstrdup(block_state.user.buf);
3799 >    conf->host  = xstrdup(block_state.host.buf);
3800 >
3801 >    if (block_state.rpass.buf[0])
3802 >      conf->passwd = xstrdup(block_state.rpass.buf);
3803 >
3804 >    conf->flags = block_state.flags.value;
3805 >    conf->modes = block_state.modes.value;
3806 >    conf->port  = block_state.port.value;
3807 >    conf->htype = parse_netmask(conf->host, &conf->addr, &conf->bits);
3808  
3809 <      yy_aconf->type = parse_netmask(yy_aconf->host, &yy_aconf->ipnum,
3810 <                                    &yy_aconf->bits);
3811 <    }
3812 <    else
3809 >    conf_add_class_to_conf(conf, block_state.class.buf);
3810 >
3811 > #ifdef HAVE_LIBCRYPTO
3812 >    if (block_state.file.buf[0])
3813      {
3814 <      struct CollectItem *yy_tmp = MyMalloc(sizeof(struct CollectItem));
3814 >      BIO *file = NULL;
3815 >      RSA *pkey = NULL;
3816  
3817 <      DupString(yy_tmp->user, userbuf);
3818 <      DupString(yy_tmp->host, hostbuf);
3817 >      if ((file = BIO_new_file(block_state.file.buf, "r")) == NULL)
3818 >      {
3819 >        yyerror("Ignoring rsa_public_key_file -- file doesn't exist");
3820 >        break;
3821 >      }
3822  
3823 <      dlinkAdd(yy_tmp, &yy_tmp->node, &col_conf_list);
3823 >      if ((pkey = PEM_read_bio_RSA_PUBKEY(file, NULL, 0, NULL)) == NULL)
3824 >      {
3825 >        yyerror("Ignoring rsa_public_key_file -- Key invalid; check key syntax.");
3826 >        break;
3827 >      }
3828 >
3829 >      conf->rsa_public_key = pkey;
3830 >      BIO_set_close(file, BIO_CLOSE);
3831 >      BIO_free(file);
3832      }
3833 + #endif /* HAVE_LIBCRYPTO */
3834    }
3835   }
3836      break;
3837  
3838    case 142:
3839 <
3840 < /* Line 1806 of yacc.c  */
4134 < #line 1080 "ircd_parser.y"
3839 > /* Line 1792 of yacc.c  */
3840 > #line 985 "conf_parser.y"
3841      {
3842    if (conf_parser_ctx.pass == 2)
3843 <  {
4138 <    if (yy_aconf->passwd != NULL)
4139 <      memset(yy_aconf->passwd, 0, strlen(yy_aconf->passwd));
4140 <
4141 <    MyFree(yy_aconf->passwd);
4142 <    DupString(yy_aconf->passwd, yylval.string);
4143 <  }
3843 >    strlcpy(block_state.name.buf, yylval.string, sizeof(block_state.name.buf));
3844   }
3845      break;
3846  
3847    case 143:
3848 <
3849 < /* Line 1806 of yacc.c  */
4150 < #line 1092 "ircd_parser.y"
3848 > /* Line 1792 of yacc.c  */
3849 > #line 991 "conf_parser.y"
3850      {
3851    if (conf_parser_ctx.pass == 2)
3852 <  {
4154 <    if (yylval.number)
4155 <      SetConfEncrypted(yy_aconf);
4156 <    else
4157 <      ClearConfEncrypted(yy_aconf);
4158 <  }
3852 >    dlinkAdd(xstrdup(yylval.string), make_dlink_node(), &block_state.mask.list);
3853   }
3854      break;
3855  
3856    case 144:
3857 <
3858 < /* Line 1806 of yacc.c  */
4165 < #line 1103 "ircd_parser.y"
3857 > /* Line 1792 of yacc.c  */
3858 > #line 997 "conf_parser.y"
3859      {
4167 #ifdef HAVE_LIBCRYPTO
3860    if (conf_parser_ctx.pass == 2)
3861 <  {
4170 <    BIO *file;
4171 <
4172 <    if (yy_aconf->rsa_public_key != NULL)
4173 <    {
4174 <      RSA_free(yy_aconf->rsa_public_key);
4175 <      yy_aconf->rsa_public_key = NULL;
4176 <    }
4177 <
4178 <    if (yy_aconf->rsa_public_key_file != NULL)
4179 <    {
4180 <      MyFree(yy_aconf->rsa_public_key_file);
4181 <      yy_aconf->rsa_public_key_file = NULL;
4182 <    }
4183 <
4184 <    DupString(yy_aconf->rsa_public_key_file, yylval.string);
4185 <    file = BIO_new_file(yylval.string, "r");
4186 <
4187 <    if (file == NULL)
4188 <    {
4189 <      yyerror("Ignoring rsa_public_key_file -- file doesn't exist");
4190 <      break;
4191 <    }
4192 <
4193 <    yy_aconf->rsa_public_key = (RSA *)PEM_read_bio_RSA_PUBKEY(file, NULL, 0, NULL);
4194 <
4195 <    if (yy_aconf->rsa_public_key == NULL)
4196 <    {
4197 <      yyerror("Ignoring rsa_public_key_file -- Key invalid; check key syntax.");
4198 <      break;
4199 <    }
4200 <
4201 <    BIO_set_close(file, BIO_CLOSE);
4202 <    BIO_free(file);
4203 <  }
4204 < #endif /* HAVE_LIBCRYPTO */
3861 >    strlcpy(block_state.rpass.buf, yylval.string, sizeof(block_state.rpass.buf));
3862   }
3863      break;
3864  
3865    case 145:
3866 <
3867 < /* Line 1806 of yacc.c  */
4211 < #line 1145 "ircd_parser.y"
3866 > /* Line 1792 of yacc.c  */
3867 > #line 1003 "conf_parser.y"
3868      {
3869    if (conf_parser_ctx.pass == 2)
3870    {
3871 <    MyFree(class_name);
3872 <    DupString(class_name, yylval.string);
3871 >    if (yylval.number)
3872 >      block_state.flags.value |= CONF_FLAGS_ENCRYPTED;
3873 >    else
3874 >      block_state.flags.value &= ~CONF_FLAGS_ENCRYPTED;
3875    }
3876   }
3877      break;
3878  
3879    case 146:
3880 <
3881 < /* Line 1806 of yacc.c  */
4224 < #line 1154 "ircd_parser.y"
3880 > /* Line 1792 of yacc.c  */
3881 > #line 1014 "conf_parser.y"
3882      {
3883    if (conf_parser_ctx.pass == 2)
3884 <    yy_aconf->modes = 0;
3884 >    strlcpy(block_state.file.buf, yylval.string, sizeof(block_state.file.buf));
3885   }
3886      break;
3887  
3888 <  case 150:
3889 <
3890 < /* Line 1806 of yacc.c  */
4234 < #line 1161 "ircd_parser.y"
3888 >  case 147:
3889 > /* Line 1792 of yacc.c  */
3890 > #line 1020 "conf_parser.y"
3891      {
3892    if (conf_parser_ctx.pass == 2)
3893 <    yy_aconf->modes |= UMODE_BOTS;
3893 >    strlcpy(block_state.class.buf, yylval.string, sizeof(block_state.class.buf));
3894   }
3895      break;
3896  
3897 <  case 151:
3898 <
3899 < /* Line 1806 of yacc.c  */
4244 < #line 1165 "ircd_parser.y"
3897 >  case 148:
3898 > /* Line 1792 of yacc.c  */
3899 > #line 1026 "conf_parser.y"
3900      {
3901    if (conf_parser_ctx.pass == 2)
3902 <    yy_aconf->modes |= UMODE_CCONN;
3902 >    block_state.modes.value = 0;
3903   }
3904      break;
3905  
3906    case 152:
3907 <
3908 < /* Line 1806 of yacc.c  */
4254 < #line 1169 "ircd_parser.y"
3907 > /* Line 1792 of yacc.c  */
3908 > #line 1033 "conf_parser.y"
3909      {
3910    if (conf_parser_ctx.pass == 2)
3911 <    yy_aconf->modes |= UMODE_CCONN_FULL;
3911 >    block_state.modes.value |= UMODE_BOTS;
3912   }
3913      break;
3914  
3915    case 153:
3916 <
3917 < /* Line 1806 of yacc.c  */
4264 < #line 1173 "ircd_parser.y"
3916 > /* Line 1792 of yacc.c  */
3917 > #line 1037 "conf_parser.y"
3918      {
3919    if (conf_parser_ctx.pass == 2)
3920 <    yy_aconf->modes |= UMODE_DEAF;
3920 >    block_state.modes.value |= UMODE_CCONN;
3921   }
3922      break;
3923  
3924    case 154:
3925 <
3926 < /* Line 1806 of yacc.c  */
4274 < #line 1177 "ircd_parser.y"
3925 > /* Line 1792 of yacc.c  */
3926 > #line 1041 "conf_parser.y"
3927      {
3928    if (conf_parser_ctx.pass == 2)
3929 <    yy_aconf->modes |= UMODE_DEBUG;
3929 >    block_state.modes.value |= UMODE_CCONN_FULL;
3930   }
3931      break;
3932  
3933    case 155:
3934 <
3935 < /* Line 1806 of yacc.c  */
4284 < #line 1181 "ircd_parser.y"
3934 > /* Line 1792 of yacc.c  */
3935 > #line 1045 "conf_parser.y"
3936      {
3937    if (conf_parser_ctx.pass == 2)
3938 <    yy_aconf->modes |= UMODE_FULL;
3938 >    block_state.modes.value |= UMODE_DEAF;
3939   }
3940      break;
3941  
3942    case 156:
3943 <
3944 < /* Line 1806 of yacc.c  */
4294 < #line 1185 "ircd_parser.y"
3943 > /* Line 1792 of yacc.c  */
3944 > #line 1049 "conf_parser.y"
3945      {
3946    if (conf_parser_ctx.pass == 2)
3947 <    yy_aconf->modes |= UMODE_HIDDEN;
3947 >    block_state.modes.value |= UMODE_DEBUG;
3948   }
3949      break;
3950  
3951    case 157:
3952 <
3953 < /* Line 1806 of yacc.c  */
4304 < #line 1189 "ircd_parser.y"
3952 > /* Line 1792 of yacc.c  */
3953 > #line 1053 "conf_parser.y"
3954      {
3955    if (conf_parser_ctx.pass == 2)
3956 <    yy_aconf->modes |= UMODE_SKILL;
3956 >    block_state.modes.value |= UMODE_FULL;
3957   }
3958      break;
3959  
3960    case 158:
3961 <
3962 < /* Line 1806 of yacc.c  */
4314 < #line 1193 "ircd_parser.y"
3961 > /* Line 1792 of yacc.c  */
3962 > #line 1057 "conf_parser.y"
3963      {
3964    if (conf_parser_ctx.pass == 2)
3965 <    yy_aconf->modes |= UMODE_NCHANGE;
3965 >    block_state.modes.value |= UMODE_HIDDEN;
3966   }
3967      break;
3968  
3969    case 159:
3970 <
3971 < /* Line 1806 of yacc.c  */
4324 < #line 1197 "ircd_parser.y"
3970 > /* Line 1792 of yacc.c  */
3971 > #line 1061 "conf_parser.y"
3972      {
3973    if (conf_parser_ctx.pass == 2)
3974 <    yy_aconf->modes |= UMODE_REJ;
3974 >    block_state.modes.value |= UMODE_SKILL;
3975   }
3976      break;
3977  
3978    case 160:
3979 <
3980 < /* Line 1806 of yacc.c  */
4334 < #line 1201 "ircd_parser.y"
3979 > /* Line 1792 of yacc.c  */
3980 > #line 1065 "conf_parser.y"
3981      {
3982    if (conf_parser_ctx.pass == 2)
3983 <    yy_aconf->modes |= UMODE_UNAUTH;
3983 >    block_state.modes.value |= UMODE_NCHANGE;
3984   }
3985      break;
3986  
3987    case 161:
3988 <
3989 < /* Line 1806 of yacc.c  */
4344 < #line 1205 "ircd_parser.y"
3988 > /* Line 1792 of yacc.c  */
3989 > #line 1069 "conf_parser.y"
3990      {
3991    if (conf_parser_ctx.pass == 2)
3992 <    yy_aconf->modes |= UMODE_SPY;
3992 >    block_state.modes.value |= UMODE_REJ;
3993   }
3994      break;
3995  
3996    case 162:
3997 <
3998 < /* Line 1806 of yacc.c  */
4354 < #line 1209 "ircd_parser.y"
3997 > /* Line 1792 of yacc.c  */
3998 > #line 1073 "conf_parser.y"
3999      {
4000    if (conf_parser_ctx.pass == 2)
4001 <    yy_aconf->modes |= UMODE_EXTERNAL;
4001 >    block_state.modes.value |= UMODE_UNAUTH;
4002   }
4003      break;
4004  
4005    case 163:
4006 <
4007 < /* Line 1806 of yacc.c  */
4364 < #line 1213 "ircd_parser.y"
4006 > /* Line 1792 of yacc.c  */
4007 > #line 1077 "conf_parser.y"
4008      {
4009    if (conf_parser_ctx.pass == 2)
4010 <    yy_aconf->modes |= UMODE_OPERWALL;
4010 >    block_state.modes.value |= UMODE_SPY;
4011   }
4012      break;
4013  
4014    case 164:
4015 <
4016 < /* Line 1806 of yacc.c  */
4374 < #line 1217 "ircd_parser.y"
4015 > /* Line 1792 of yacc.c  */
4016 > #line 1081 "conf_parser.y"
4017      {
4018    if (conf_parser_ctx.pass == 2)
4019 <    yy_aconf->modes |= UMODE_SERVNOTICE;
4019 >    block_state.modes.value |= UMODE_EXTERNAL;
4020   }
4021      break;
4022  
4023    case 165:
4024 <
4025 < /* Line 1806 of yacc.c  */
4384 < #line 1221 "ircd_parser.y"
4024 > /* Line 1792 of yacc.c  */
4025 > #line 1085 "conf_parser.y"
4026      {
4027    if (conf_parser_ctx.pass == 2)
4028 <    yy_aconf->modes |= UMODE_INVISIBLE;
4028 >    block_state.modes.value |= UMODE_OPERWALL;
4029   }
4030      break;
4031  
4032    case 166:
4033 <
4034 < /* Line 1806 of yacc.c  */
4394 < #line 1225 "ircd_parser.y"
4033 > /* Line 1792 of yacc.c  */
4034 > #line 1089 "conf_parser.y"
4035      {
4036    if (conf_parser_ctx.pass == 2)
4037 <    yy_aconf->modes |= UMODE_WALLOP;
4037 >    block_state.modes.value |= UMODE_SERVNOTICE;
4038   }
4039      break;
4040  
4041    case 167:
4042 <
4043 < /* Line 1806 of yacc.c  */
4404 < #line 1229 "ircd_parser.y"
4042 > /* Line 1792 of yacc.c  */
4043 > #line 1093 "conf_parser.y"
4044      {
4045    if (conf_parser_ctx.pass == 2)
4046 <    yy_aconf->modes |= UMODE_SOFTCALLERID;
4046 >    block_state.modes.value |= UMODE_INVISIBLE;
4047   }
4048      break;
4049  
4050    case 168:
4051 <
4052 < /* Line 1806 of yacc.c  */
4414 < #line 1233 "ircd_parser.y"
4051 > /* Line 1792 of yacc.c  */
4052 > #line 1097 "conf_parser.y"
4053      {
4054    if (conf_parser_ctx.pass == 2)
4055 <    yy_aconf->modes |= UMODE_CALLERID;
4055 >    block_state.modes.value |= UMODE_WALLOP;
4056   }
4057      break;
4058  
4059    case 169:
4060 <
4061 < /* Line 1806 of yacc.c  */
4424 < #line 1237 "ircd_parser.y"
4060 > /* Line 1792 of yacc.c  */
4061 > #line 1101 "conf_parser.y"
4062      {
4063    if (conf_parser_ctx.pass == 2)
4064 <    yy_aconf->modes |= UMODE_LOCOPS;
4064 >    block_state.modes.value |= UMODE_SOFTCALLERID;
4065   }
4066      break;
4067  
4068    case 170:
4069 <
4070 < /* Line 1806 of yacc.c  */
4434 < #line 1243 "ircd_parser.y"
4069 > /* Line 1792 of yacc.c  */
4070 > #line 1105 "conf_parser.y"
4071      {
4072    if (conf_parser_ctx.pass == 2)
4073 <    yy_aconf->port = 0;
4073 >    block_state.modes.value |= UMODE_CALLERID;
4074   }
4075      break;
4076  
4077 <  case 174:
4078 <
4079 < /* Line 1806 of yacc.c  */
4444 < #line 1250 "ircd_parser.y"
4077 >  case 171:
4078 > /* Line 1792 of yacc.c  */
4079 > #line 1109 "conf_parser.y"
4080      {
4081    if (conf_parser_ctx.pass == 2)
4082 <    yy_aconf->port |= OPER_FLAG_GLOBAL_KILL;
4082 >    block_state.modes.value |= UMODE_LOCOPS;
4083   }
4084      break;
4085  
4086 <  case 175:
4087 <
4088 < /* Line 1806 of yacc.c  */
4454 < #line 1254 "ircd_parser.y"
4086 >  case 172:
4087 > /* Line 1792 of yacc.c  */
4088 > #line 1115 "conf_parser.y"
4089      {
4090    if (conf_parser_ctx.pass == 2)
4091 <    yy_aconf->port |= OPER_FLAG_REMOTE;
4091 >    block_state.port.value = 0;
4092   }
4093      break;
4094  
4095    case 176:
4096 <
4097 < /* Line 1806 of yacc.c  */
4464 < #line 1258 "ircd_parser.y"
4096 > /* Line 1792 of yacc.c  */
4097 > #line 1122 "conf_parser.y"
4098      {
4099    if (conf_parser_ctx.pass == 2)
4100 <    yy_aconf->port |= OPER_FLAG_K;
4100 >    block_state.port.value |= OPER_FLAG_GLOBAL_KILL;
4101   }
4102      break;
4103  
4104    case 177:
4105 <
4106 < /* Line 1806 of yacc.c  */
4474 < #line 1262 "ircd_parser.y"
4105 > /* Line 1792 of yacc.c  */
4106 > #line 1126 "conf_parser.y"
4107      {
4108    if (conf_parser_ctx.pass == 2)
4109 <    yy_aconf->port |= OPER_FLAG_UNKLINE;
4109 >    block_state.port.value |= OPER_FLAG_REMOTE;
4110   }
4111      break;
4112  
4113    case 178:
4114 <
4115 < /* Line 1806 of yacc.c  */
4484 < #line 1266 "ircd_parser.y"
4114 > /* Line 1792 of yacc.c  */
4115 > #line 1130 "conf_parser.y"
4116      {
4117    if (conf_parser_ctx.pass == 2)
4118 <    yy_aconf->port |= OPER_FLAG_DLINE;
4118 >    block_state.port.value |= OPER_FLAG_K;
4119   }
4120      break;
4121  
4122    case 179:
4123 <
4124 < /* Line 1806 of yacc.c  */
4494 < #line 1270 "ircd_parser.y"
4123 > /* Line 1792 of yacc.c  */
4124 > #line 1134 "conf_parser.y"
4125      {
4126    if (conf_parser_ctx.pass == 2)
4127 <    yy_aconf->port |= OPER_FLAG_UNDLINE;
4127 >    block_state.port.value |= OPER_FLAG_UNKLINE;
4128   }
4129      break;
4130  
4131    case 180:
4132 <
4133 < /* Line 1806 of yacc.c  */
4504 < #line 1274 "ircd_parser.y"
4132 > /* Line 1792 of yacc.c  */
4133 > #line 1138 "conf_parser.y"
4134      {
4135    if (conf_parser_ctx.pass == 2)
4136 <    yy_aconf->port |= OPER_FLAG_X;
4136 >    block_state.port.value |= OPER_FLAG_DLINE;
4137   }
4138      break;
4139  
4140    case 181:
4141 <
4142 < /* Line 1806 of yacc.c  */
4514 < #line 1278 "ircd_parser.y"
4141 > /* Line 1792 of yacc.c  */
4142 > #line 1142 "conf_parser.y"
4143      {
4144    if (conf_parser_ctx.pass == 2)
4145 <    yy_aconf->port |= OPER_FLAG_GLINE;
4145 >    block_state.port.value |= OPER_FLAG_UNDLINE;
4146   }
4147      break;
4148  
4149    case 182:
4150 <
4151 < /* Line 1806 of yacc.c  */
4524 < #line 1282 "ircd_parser.y"
4150 > /* Line 1792 of yacc.c  */
4151 > #line 1146 "conf_parser.y"
4152      {
4153    if (conf_parser_ctx.pass == 2)
4154 <    yy_aconf->port |= OPER_FLAG_DIE;
4154 >    block_state.port.value |= OPER_FLAG_X;
4155   }
4156      break;
4157  
4158    case 183:
4159 <
4160 < /* Line 1806 of yacc.c  */
4534 < #line 1286 "ircd_parser.y"
4159 > /* Line 1792 of yacc.c  */
4160 > #line 1150 "conf_parser.y"
4161      {
4162    if (conf_parser_ctx.pass == 2)
4163 <    yy_aconf->port |= OPER_FLAG_RESTART;
4163 >    block_state.port.value |= OPER_FLAG_GLINE;
4164   }
4165      break;
4166  
4167    case 184:
4168 <
4169 < /* Line 1806 of yacc.c  */
4544 < #line 1290 "ircd_parser.y"
4168 > /* Line 1792 of yacc.c  */
4169 > #line 1154 "conf_parser.y"
4170      {
4171    if (conf_parser_ctx.pass == 2)
4172 <    yy_aconf->port |= OPER_FLAG_REHASH;
4172 >    block_state.port.value |= OPER_FLAG_DIE;
4173   }
4174      break;
4175  
4176    case 185:
4177 <
4178 < /* Line 1806 of yacc.c  */
4554 < #line 1294 "ircd_parser.y"
4177 > /* Line 1792 of yacc.c  */
4178 > #line 1158 "conf_parser.y"
4179      {
4180    if (conf_parser_ctx.pass == 2)
4181 <    yy_aconf->port |= OPER_FLAG_ADMIN;
4181 >    block_state.port.value |= OPER_FLAG_RESTART;
4182   }
4183      break;
4184  
4185    case 186:
4186 <
4187 < /* Line 1806 of yacc.c  */
4564 < #line 1298 "ircd_parser.y"
4186 > /* Line 1792 of yacc.c  */
4187 > #line 1162 "conf_parser.y"
4188      {
4189    if (conf_parser_ctx.pass == 2)
4190 <    yy_aconf->port |= OPER_FLAG_N;
4190 >    block_state.port.value |= OPER_FLAG_REHASH;
4191   }
4192      break;
4193  
4194    case 187:
4195 <
4196 < /* Line 1806 of yacc.c  */
4574 < #line 1302 "ircd_parser.y"
4195 > /* Line 1792 of yacc.c  */
4196 > #line 1166 "conf_parser.y"
4197      {
4198    if (conf_parser_ctx.pass == 2)
4199 <    yy_aconf->port |= OPER_FLAG_OPERWALL;
4199 >    block_state.port.value |= OPER_FLAG_ADMIN;
4200   }
4201      break;
4202  
4203    case 188:
4204 <
4205 < /* Line 1806 of yacc.c  */
4584 < #line 1306 "ircd_parser.y"
4204 > /* Line 1792 of yacc.c  */
4205 > #line 1170 "conf_parser.y"
4206      {
4207    if (conf_parser_ctx.pass == 2)
4208 <    yy_aconf->port |= OPER_FLAG_GLOBOPS;
4208 >    block_state.port.value |= OPER_FLAG_N;
4209   }
4210      break;
4211  
4212    case 189:
4213 <
4214 < /* Line 1806 of yacc.c  */
4594 < #line 1310 "ircd_parser.y"
4213 > /* Line 1792 of yacc.c  */
4214 > #line 1174 "conf_parser.y"
4215      {
4216    if (conf_parser_ctx.pass == 2)
4217 <    yy_aconf->port |= OPER_FLAG_OPER_SPY;
4217 >    block_state.port.value |= OPER_FLAG_OPERWALL;
4218   }
4219      break;
4220  
4221    case 190:
4222 <
4223 < /* Line 1806 of yacc.c  */
4604 < #line 1314 "ircd_parser.y"
4222 > /* Line 1792 of yacc.c  */
4223 > #line 1178 "conf_parser.y"
4224      {
4225    if (conf_parser_ctx.pass == 2)
4226 <    yy_aconf->port |= OPER_FLAG_REMOTEBAN;
4226 >    block_state.port.value |= OPER_FLAG_GLOBOPS;
4227   }
4228      break;
4229  
4230    case 191:
4231 <
4232 < /* Line 1806 of yacc.c  */
4614 < #line 1318 "ircd_parser.y"
4231 > /* Line 1792 of yacc.c  */
4232 > #line 1182 "conf_parser.y"
4233      {
4234    if (conf_parser_ctx.pass == 2)
4235 <    yy_aconf->port |= OPER_FLAG_MODULE;
4235 >    block_state.port.value |= OPER_FLAG_OPER_SPY;
4236   }
4237      break;
4238  
4239    case 192:
4240 <
4241 < /* Line 1806 of yacc.c  */
4624 < #line 1328 "ircd_parser.y"
4240 > /* Line 1792 of yacc.c  */
4241 > #line 1186 "conf_parser.y"
4242      {
4243 <  if (conf_parser_ctx.pass == 1)
4244 <  {
4628 <    yy_conf = make_conf_item(CLASS_TYPE);
4629 <    yy_class = map_to_conf(yy_conf);
4630 <  }
4243 >  if (conf_parser_ctx.pass == 2)
4244 >    block_state.port.value |= OPER_FLAG_REMOTEBAN;
4245   }
4246      break;
4247  
4248    case 193:
4249 <
4250 < /* Line 1806 of yacc.c  */
4637 < #line 1335 "ircd_parser.y"
4249 > /* Line 1792 of yacc.c  */
4250 > #line 1190 "conf_parser.y"
4251      {
4252 <  if (conf_parser_ctx.pass == 1)
4253 <  {
4254 <    struct ConfItem *cconf = NULL;
4255 <    struct ClassItem *class = NULL;
4252 >  if (conf_parser_ctx.pass == 2)
4253 >    block_state.port.value |= OPER_FLAG_SET;
4254 > }
4255 >    break;
4256  
4257 <    if (yy_class_name == NULL)
4258 <      delete_conf_item(yy_conf);
4259 <    else
4257 >  case 194:
4258 > /* Line 1792 of yacc.c  */
4259 > #line 1194 "conf_parser.y"
4260      {
4261 <      cconf = find_exact_name_conf(CLASS_TYPE, NULL, yy_class_name, NULL, NULL);
4262 <
4263 <      if (cconf != NULL)                /* The class existed already */
4264 <      {
4652 <        int user_count = 0;
4653 <
4654 <        rebuild_cidr_class(cconf, yy_class);
4261 >  if (conf_parser_ctx.pass == 2)
4262 >    block_state.port.value |= OPER_FLAG_MODULE;
4263 > }
4264 >    break;
4265  
4266 <        class = map_to_conf(cconf);
4266 >  case 195:
4267 > /* Line 1792 of yacc.c  */
4268 > #line 1204 "conf_parser.y"
4269 >    {
4270 >  if (conf_parser_ctx.pass != 1)
4271 >    break;
4272  
4273 <        user_count = class->curr_user_count;
4659 <        memcpy(class, yy_class, sizeof(*class));
4660 <        class->curr_user_count = user_count;
4661 <        class->active = 1;
4273 >  reset_block_state();
4274  
4275 <        delete_conf_item(yy_conf);
4275 >  block_state.ping_freq.value = DEFAULT_PINGFREQUENCY;
4276 >  block_state.con_freq.value  = DEFAULT_CONNECTFREQUENCY;
4277 >  block_state.max_total.value = MAXIMUM_LINKS_DEFAULT;
4278 >  block_state.max_sendq.value = DEFAULT_SENDQ;
4279 >  block_state.max_recvq.value = DEFAULT_RECVQ;
4280  
4665        MyFree(cconf->name);            /* Allows case change of class name */
4666        cconf->name = yy_class_name;
4667      }
4668      else      /* Brand new class */
4669      {
4670        MyFree(yy_conf->name);          /* just in case it was allocated */
4671        yy_conf->name = yy_class_name;
4672        yy_class->active = 1;
4673      }
4674    }
4675
4676    yy_class_name = NULL;
4677  }
4281   }
4282      break;
4283  
4284 <  case 210:
4285 <
4286 < /* Line 1806 of yacc.c  */
4684 < #line 1393 "ircd_parser.y"
4284 >  case 196:
4285 > /* Line 1792 of yacc.c  */
4286 > #line 1217 "conf_parser.y"
4287      {
4288 <  if (conf_parser_ctx.pass == 1)
4687 <  {
4688 <    MyFree(yy_class_name);
4689 <    DupString(yy_class_name, yylval.string);
4690 <  }
4691 < }
4692 <    break;
4288 >  struct ClassItem *class = NULL;
4289  
4290 <  case 211:
4290 >  if (conf_parser_ctx.pass != 1)
4291 >    break;
4292  
4293 < /* Line 1806 of yacc.c  */
4697 < #line 1402 "ircd_parser.y"
4698 <    {
4699 <  if (conf_parser_ctx.pass == 1)
4700 <    PingFreq(yy_class) = (yyvsp[(3) - (4)].number);
4701 < }
4293 >  if (!block_state.class.buf[0])
4294      break;
4295  
4296 <  case 212:
4296 >  if (!(class = class_find(block_state.class.buf, 0)))
4297 >    class = class_make();
4298  
4299 < /* Line 1806 of yacc.c  */
4300 < #line 1408 "ircd_parser.y"
4301 <    {
4302 <  if (conf_parser_ctx.pass == 1)
4303 <    PingWarning(yy_class) = (yyvsp[(3) - (4)].number);
4299 >  class->active = 1;
4300 >  MyFree(class->name);
4301 >  class->name = xstrdup(block_state.class.buf);
4302 >  class->ping_freq = block_state.ping_freq.value;
4303 >  class->max_perip = block_state.max_perip.value;
4304 >  class->con_freq = block_state.con_freq.value;
4305 >  class->max_total = block_state.max_total.value;
4306 >  class->max_global = block_state.max_global.value;
4307 >  class->max_local = block_state.max_local.value;
4308 >  class->max_ident = block_state.max_ident.value;
4309 >  class->max_sendq = block_state.max_sendq.value;
4310 >  class->max_recvq = block_state.max_recvq.value;
4311 >
4312 >  if (class->number_per_cidr && block_state.number_per_cidr.value)
4313 >    if ((class->cidr_bitlen_ipv4 && block_state.cidr_bitlen_ipv4.value) ||
4314 >        (class->cidr_bitlen_ipv6 && block_state.cidr_bitlen_ipv6.value))
4315 >      if ((class->cidr_bitlen_ipv4 != block_state.cidr_bitlen_ipv4.value) ||
4316 >          (class->cidr_bitlen_ipv6 != block_state.cidr_bitlen_ipv6.value))
4317 >        rebuild_cidr_list(class);
4318 >
4319 >  class->cidr_bitlen_ipv4 = block_state.cidr_bitlen_ipv4.value;
4320 >  class->cidr_bitlen_ipv6 = block_state.cidr_bitlen_ipv6.value;
4321 >  class->number_per_cidr = block_state.number_per_cidr.value;
4322   }
4323      break;
4324  
4325    case 213:
4326 <
4327 < /* Line 1806 of yacc.c  */
4717 < #line 1414 "ircd_parser.y"
4326 > /* Line 1792 of yacc.c  */
4327 > #line 1269 "conf_parser.y"
4328      {
4329    if (conf_parser_ctx.pass == 1)
4330 <    MaxPerIp(yy_class) = (yyvsp[(3) - (4)].number);
4330 >    strlcpy(block_state.class.buf, yylval.string, sizeof(block_state.class.buf));
4331   }
4332      break;
4333  
4334    case 214:
4335 <
4336 < /* Line 1806 of yacc.c  */
4727 < #line 1420 "ircd_parser.y"
4335 > /* Line 1792 of yacc.c  */
4336 > #line 1275 "conf_parser.y"
4337      {
4338    if (conf_parser_ctx.pass == 1)
4339 <    ConFreq(yy_class) = (yyvsp[(3) - (4)].number);
4339 >    block_state.ping_freq.value = (yyvsp[(3) - (4)].number);
4340   }
4341      break;
4342  
4343    case 215:
4344 <
4345 < /* Line 1806 of yacc.c  */
4737 < #line 1426 "ircd_parser.y"
4344 > /* Line 1792 of yacc.c  */
4345 > #line 1281 "conf_parser.y"
4346      {
4347    if (conf_parser_ctx.pass == 1)
4348 <    MaxTotal(yy_class) = (yyvsp[(3) - (4)].number);
4348 >    block_state.max_perip.value = (yyvsp[(3) - (4)].number);
4349   }
4350      break;
4351  
4352    case 216:
4353 <
4354 < /* Line 1806 of yacc.c  */
4747 < #line 1432 "ircd_parser.y"
4353 > /* Line 1792 of yacc.c  */
4354 > #line 1287 "conf_parser.y"
4355      {
4356    if (conf_parser_ctx.pass == 1)
4357 <    MaxGlobal(yy_class) = (yyvsp[(3) - (4)].number);
4357 >    block_state.con_freq.value = (yyvsp[(3) - (4)].number);
4358   }
4359      break;
4360  
4361    case 217:
4362 <
4363 < /* Line 1806 of yacc.c  */
4757 < #line 1438 "ircd_parser.y"
4362 > /* Line 1792 of yacc.c  */
4363 > #line 1293 "conf_parser.y"
4364      {
4365    if (conf_parser_ctx.pass == 1)
4366 <    MaxLocal(yy_class) = (yyvsp[(3) - (4)].number);
4366 >    block_state.max_total.value = (yyvsp[(3) - (4)].number);
4367   }
4368      break;
4369  
4370    case 218:
4371 <
4372 < /* Line 1806 of yacc.c  */
4767 < #line 1444 "ircd_parser.y"
4371 > /* Line 1792 of yacc.c  */
4372 > #line 1299 "conf_parser.y"
4373      {
4374    if (conf_parser_ctx.pass == 1)
4375 <    MaxIdent(yy_class) = (yyvsp[(3) - (4)].number);
4375 >    block_state.max_global.value = (yyvsp[(3) - (4)].number);
4376   }
4377      break;
4378  
4379    case 219:
4380 <
4381 < /* Line 1806 of yacc.c  */
4777 < #line 1450 "ircd_parser.y"
4380 > /* Line 1792 of yacc.c  */
4381 > #line 1305 "conf_parser.y"
4382      {
4383    if (conf_parser_ctx.pass == 1)
4384 <    MaxSendq(yy_class) = (yyvsp[(3) - (4)].number);
4384 >    block_state.max_local.value = (yyvsp[(3) - (4)].number);
4385   }
4386      break;
4387  
4388    case 220:
4389 <
4390 < /* Line 1806 of yacc.c  */
4787 < #line 1456 "ircd_parser.y"
4389 > /* Line 1792 of yacc.c  */
4390 > #line 1311 "conf_parser.y"
4391      {
4392    if (conf_parser_ctx.pass == 1)
4393 <    CidrBitlenIPV4(yy_class) = (yyvsp[(3) - (4)].number);
4393 >    block_state.max_ident.value = (yyvsp[(3) - (4)].number);
4394   }
4395      break;
4396  
4397    case 221:
4398 <
4399 < /* Line 1806 of yacc.c  */
4797 < #line 1462 "ircd_parser.y"
4398 > /* Line 1792 of yacc.c  */
4399 > #line 1317 "conf_parser.y"
4400      {
4401    if (conf_parser_ctx.pass == 1)
4402 <    CidrBitlenIPV6(yy_class) = (yyvsp[(3) - (4)].number);
4402 >    block_state.max_sendq.value = (yyvsp[(3) - (4)].number);
4403   }
4404      break;
4405  
4406    case 222:
4407 <
4408 < /* Line 1806 of yacc.c  */
4807 < #line 1468 "ircd_parser.y"
4407 > /* Line 1792 of yacc.c  */
4408 > #line 1323 "conf_parser.y"
4409      {
4410    if (conf_parser_ctx.pass == 1)
4411 <    NumberPerCidr(yy_class) = (yyvsp[(3) - (4)].number);
4411 >    if ((yyvsp[(3) - (4)].number) >= CLIENT_FLOOD_MIN && (yyvsp[(3) - (4)].number) <= CLIENT_FLOOD_MAX)
4412 >      block_state.max_recvq.value = (yyvsp[(3) - (4)].number);
4413   }
4414      break;
4415  
4416    case 223:
4417 <
4418 < /* Line 1806 of yacc.c  */
4817 < #line 1477 "ircd_parser.y"
4417 > /* Line 1792 of yacc.c  */
4418 > #line 1330 "conf_parser.y"
4419      {
4420 <  if (conf_parser_ctx.pass == 2)
4421 <  {
4821 <    listener_address = NULL;
4822 <    listener_flags = 0;
4823 <  }
4420 >  if (conf_parser_ctx.pass == 1)
4421 >    block_state.cidr_bitlen_ipv4.value = (yyvsp[(3) - (4)].number) > 32 ? 32 : (yyvsp[(3) - (4)].number);
4422   }
4423      break;
4424  
4425    case 224:
4426 <
4427 < /* Line 1806 of yacc.c  */
4830 < #line 1484 "ircd_parser.y"
4426 > /* Line 1792 of yacc.c  */
4427 > #line 1336 "conf_parser.y"
4428      {
4429 <  if (conf_parser_ctx.pass == 2)
4430 <  {
4834 <    MyFree(listener_address);
4835 <    listener_address = NULL;
4836 <  }
4429 >  if (conf_parser_ctx.pass == 1)
4430 >    block_state.cidr_bitlen_ipv6.value = (yyvsp[(3) - (4)].number) > 128 ? 128 : (yyvsp[(3) - (4)].number);
4431   }
4432      break;
4433  
4434    case 225:
4435 <
4436 < /* Line 1806 of yacc.c  */
4843 < #line 1493 "ircd_parser.y"
4435 > /* Line 1792 of yacc.c  */
4436 > #line 1342 "conf_parser.y"
4437      {
4438 <  listener_flags = 0;
4438 >  if (conf_parser_ctx.pass == 1)
4439 >    block_state.number_per_cidr.value = (yyvsp[(3) - (4)].number);
4440   }
4441      break;
4442  
4443 <  case 229:
4444 <
4445 < /* Line 1806 of yacc.c  */
4852 < #line 1499 "ircd_parser.y"
4443 >  case 226:
4444 > /* Line 1792 of yacc.c  */
4445 > #line 1351 "conf_parser.y"
4446      {
4447    if (conf_parser_ctx.pass == 2)
4448 <    listener_flags |= LISTENER_SSL;
4448 >    reset_block_state();
4449   }
4450      break;
4451  
4452 <  case 230:
4452 >  case 228:
4453 > /* Line 1792 of yacc.c  */
4454 > #line 1357 "conf_parser.y"
4455 >    {
4456 >  block_state.flags.value = 0;
4457 > }
4458 >    break;
4459  
4460 < /* Line 1806 of yacc.c  */
4461 < #line 1503 "ircd_parser.y"
4460 >  case 232:
4461 > /* Line 1792 of yacc.c  */
4462 > #line 1363 "conf_parser.y"
4463      {
4464    if (conf_parser_ctx.pass == 2)
4465 <    listener_flags |= LISTENER_HIDDEN;
4465 >    block_state.flags.value |= LISTENER_SSL;
4466   }
4467      break;
4468  
4469 <  case 231:
4470 <
4471 < /* Line 1806 of yacc.c  */
4872 < #line 1507 "ircd_parser.y"
4469 >  case 233:
4470 > /* Line 1792 of yacc.c  */
4471 > #line 1367 "conf_parser.y"
4472      {
4473    if (conf_parser_ctx.pass == 2)
4474 <    listener_flags |= LISTENER_SERVER;
4474 >    block_state.flags.value |= LISTENER_HIDDEN;
4475   }
4476      break;
4477  
4478 <  case 239:
4479 <
4480 < /* Line 1806 of yacc.c  */
4481 < #line 1517 "ircd_parser.y"
4482 <    { listener_flags = 0; }
4478 >  case 234:
4479 > /* Line 1792 of yacc.c  */
4480 > #line 1371 "conf_parser.y"
4481 >    {
4482 >  if (conf_parser_ctx.pass == 2)
4483 >   block_state.flags.value |= LISTENER_SERVER;
4484 > }
4485      break;
4486  
4487 <  case 243:
4487 >  case 242:
4488 > /* Line 1792 of yacc.c  */
4489 > #line 1379 "conf_parser.y"
4490 >    { block_state.flags.value = 0; }
4491 >    break;
4492  
4493 < /* Line 1806 of yacc.c  */
4494 < #line 1522 "ircd_parser.y"
4493 >  case 246:
4494 > /* Line 1792 of yacc.c  */
4495 > #line 1384 "conf_parser.y"
4496      {
4497    if (conf_parser_ctx.pass == 2)
4498    {
4499 <    if ((listener_flags & LISTENER_SSL))
4499 >    if (block_state.flags.value & LISTENER_SSL)
4500   #ifdef HAVE_LIBCRYPTO
4501        if (!ServerInfo.server_ctx)
4502   #endif
# Line 4898 | Line 4504 | yyreduce:
4504          yyerror("SSL not available - port closed");
4505          break;
4506        }
4507 <    add_listener((yyvsp[(1) - (1)].number), listener_address, listener_flags);
4507 >    add_listener((yyvsp[(1) - (1)].number), block_state.addr.buf, block_state.flags.value);
4508    }
4509   }
4510      break;
4511  
4512 <  case 244:
4513 <
4514 < /* Line 1806 of yacc.c  */
4909 < #line 1536 "ircd_parser.y"
4512 >  case 247:
4513 > /* Line 1792 of yacc.c  */
4514 > #line 1398 "conf_parser.y"
4515      {
4516    if (conf_parser_ctx.pass == 2)
4517    {
4518      int i;
4519  
4520 <    if ((listener_flags & LISTENER_SSL))
4520 >    if (block_state.flags.value & LISTENER_SSL)
4521   #ifdef HAVE_LIBCRYPTO
4522        if (!ServerInfo.server_ctx)
4523   #endif
# Line 4922 | Line 4527 | yyreduce:
4527        }
4528  
4529      for (i = (yyvsp[(1) - (3)].number); i <= (yyvsp[(3) - (3)].number); ++i)
4530 <      add_listener(i, listener_address, listener_flags);
4530 >      add_listener(i, block_state.addr.buf, block_state.flags.value);
4531    }
4532   }
4533      break;
4534  
4535 <  case 245:
4536 <
4537 < /* Line 1806 of yacc.c  */
4933 < #line 1556 "ircd_parser.y"
4535 >  case 248:
4536 > /* Line 1792 of yacc.c  */
4537 > #line 1418 "conf_parser.y"
4538      {
4539    if (conf_parser_ctx.pass == 2)
4540 <  {
4937 <    MyFree(listener_address);
4938 <    DupString(listener_address, yylval.string);
4939 <  }
4540 >    strlcpy(block_state.addr.buf, yylval.string, sizeof(block_state.addr.buf));
4541   }
4542      break;
4543  
4544 <  case 246:
4545 <
4546 < /* Line 1806 of yacc.c  */
4946 < #line 1565 "ircd_parser.y"
4544 >  case 249:
4545 > /* Line 1792 of yacc.c  */
4546 > #line 1424 "conf_parser.y"
4547      {
4548    if (conf_parser_ctx.pass == 2)
4549 <  {
4950 <    MyFree(listener_address);
4951 <    DupString(listener_address, yylval.string);
4952 <  }
4549 >    strlcpy(block_state.addr.buf, yylval.string, sizeof(block_state.addr.buf));
4550   }
4551      break;
4552  
4553 <  case 247:
4554 <
4555 < /* Line 1806 of yacc.c  */
4959 < #line 1577 "ircd_parser.y"
4553 >  case 250:
4554 > /* Line 1792 of yacc.c  */
4555 > #line 1433 "conf_parser.y"
4556      {
4557    if (conf_parser_ctx.pass == 2)
4558 <  {
4963 <    yy_conf = make_conf_item(CLIENT_TYPE);
4964 <    yy_aconf = map_to_conf(yy_conf);
4965 <  }
4966 <  else
4967 <  {
4968 <    MyFree(class_name);
4969 <    class_name = NULL;
4970 <  }
4558 >    reset_block_state();
4559   }
4560      break;
4561  
4562 <  case 248:
4563 <
4564 < /* Line 1806 of yacc.c  */
4977 < #line 1589 "ircd_parser.y"
4978 <    {
4979 <  if (conf_parser_ctx.pass == 2)
4980 <  {
4981 <    struct CollectItem *yy_tmp = NULL;
4982 <    dlink_node *ptr = NULL, *next_ptr = NULL;
4983 <
4984 <    if (yy_aconf->user && yy_aconf->host)
4562 >  case 251:
4563 > /* Line 1792 of yacc.c  */
4564 > #line 1437 "conf_parser.y"
4565      {
4566 <      conf_add_class_to_conf(yy_conf, class_name);
4987 <      add_conf_by_address(CONF_CLIENT, yy_aconf);
4988 <    }
4989 <    else
4990 <      delete_conf_item(yy_conf);
4566 >  dlink_node *ptr = NULL;
4567  
4568 <    /* copy over settings from first struct */
4993 <    DLINK_FOREACH_SAFE(ptr, next_ptr, col_conf_list.head)
4994 <    {
4995 <      struct AccessItem *new_aconf;
4996 <      struct ConfItem *new_conf;
4997 <
4998 <      new_conf = make_conf_item(CLIENT_TYPE);
4999 <      new_aconf = map_to_conf(new_conf);
5000 <
5001 <      yy_tmp = ptr->data;
5002 <
5003 <      assert(yy_tmp->user && yy_tmp->host);
5004 <
5005 <      if (yy_aconf->passwd != NULL)
5006 <        DupString(new_aconf->passwd, yy_aconf->passwd);
5007 <      if (yy_conf->name != NULL)
5008 <        DupString(new_conf->name, yy_conf->name);
5009 <      if (yy_aconf->passwd != NULL)
5010 <        DupString(new_aconf->passwd, yy_aconf->passwd);
5011 <
5012 <      new_aconf->flags = yy_aconf->flags;
5013 <      new_aconf->port  = yy_aconf->port;
5014 <
5015 <      DupString(new_aconf->user, yy_tmp->user);
5016 <      collapse(new_aconf->user);
5017 <
5018 <      DupString(new_aconf->host, yy_tmp->host);
5019 <      collapse(new_aconf->host);
5020 <
5021 <      conf_add_class_to_conf(new_conf, class_name);
5022 <      add_conf_by_address(CONF_CLIENT, new_aconf);
5023 <      dlinkDelete(&yy_tmp->node, &col_conf_list);
5024 <      free_collect_item(yy_tmp);
5025 <    }
5026 <
5027 <    MyFree(class_name);
5028 <    class_name = NULL;
5029 <    yy_conf = NULL;
5030 <    yy_aconf = NULL;
5031 <  }
5032 < }
4568 >  if (conf_parser_ctx.pass != 2)
4569      break;
4570  
4571 <  case 260:
5036 <
5037 < /* Line 1806 of yacc.c  */
5038 < #line 1651 "ircd_parser.y"
5039 <    {
5040 <  if (conf_parser_ctx.pass == 2)
4571 >  DLINK_FOREACH(ptr, block_state.mask.list.head)
4572    {
4573 <    struct CollectItem *yy_tmp = NULL;
4573 >    struct MaskItem *conf = NULL;
4574      struct split_nuh_item nuh;
4575  
4576 <    nuh.nuhmask  = yylval.string;
4576 >    nuh.nuhmask  = ptr->data;
4577      nuh.nickptr  = NULL;
4578 <    nuh.userptr  = userbuf;
4579 <    nuh.hostptr  = hostbuf;
5049 <
4578 >    nuh.userptr  = block_state.user.buf;
4579 >    nuh.hostptr  = block_state.host.buf;
4580      nuh.nicksize = 0;
4581 <    nuh.usersize = sizeof(userbuf);
4582 <    nuh.hostsize = sizeof(hostbuf);
5053 <
4581 >    nuh.usersize = sizeof(block_state.user.buf);
4582 >    nuh.hostsize = sizeof(block_state.host.buf);
4583      split_nuh(&nuh);
4584  
4585 <    if (yy_aconf->user == NULL)
4586 <    {
4587 <      DupString(yy_aconf->user, userbuf);
4588 <      DupString(yy_aconf->host, hostbuf);
4589 <    }
4590 <    else
4591 <    {
4592 <      yy_tmp = MyMalloc(sizeof(struct CollectItem));
5064 <
5065 <      DupString(yy_tmp->user, userbuf);
5066 <      DupString(yy_tmp->host, hostbuf);
5067 <
5068 <      dlinkAdd(yy_tmp, &yy_tmp->node, &col_conf_list);
5069 <    }
5070 <  }
5071 < }
5072 <    break;
5073 <
5074 <  case 261:
5075 <
5076 < /* Line 1806 of yacc.c  */
5077 < #line 1688 "ircd_parser.y"
5078 <    {
5079 <  if (conf_parser_ctx.pass == 2)
5080 <  {
5081 <    /* be paranoid */
5082 <    if (yy_aconf->passwd != NULL)
5083 <      memset(yy_aconf->passwd, 0, strlen(yy_aconf->passwd));
5084 <
5085 <    MyFree(yy_aconf->passwd);
5086 <    DupString(yy_aconf->passwd, yylval.string);
5087 <  }
5088 < }
5089 <    break;
4585 >    conf        = conf_make(CONF_CLIENT);
4586 >    conf->user  = xstrdup(collapse(block_state.user.buf));
4587 >    conf->host  = xstrdup(collapse(block_state.host.buf));
4588 >
4589 >    if (block_state.rpass.buf[0])
4590 >      conf->passwd = xstrdup(block_state.rpass.buf);
4591 >    if (block_state.name.buf[0])
4592 >      conf->passwd = xstrdup(block_state.name.buf);
4593  
4594 <  case 262:
4594 >    conf->flags = block_state.flags.value;
4595 >    conf->port  = block_state.port.value;
4596  
4597 < /* Line 1806 of yacc.c  */
4598 < #line 1701 "ircd_parser.y"
5095 <    {
5096 <  if (conf_parser_ctx.pass == 2)
5097 <  {
5098 <    MyFree(class_name);
5099 <    DupString(class_name, yylval.string);
4597 >    conf_add_class_to_conf(conf, block_state.class.buf);
4598 >    add_conf_by_address(CONF_CLIENT, conf);
4599    }
4600   }
4601      break;
4602  
4603    case 263:
4604 <
4605 < /* Line 1806 of yacc.c  */
5107 < #line 1710 "ircd_parser.y"
4604 > /* Line 1792 of yacc.c  */
4605 > #line 1480 "conf_parser.y"
4606      {
4607    if (conf_parser_ctx.pass == 2)
4608 <  {
5111 <    if (yylval.number)
5112 <      SetConfEncrypted(yy_aconf);
5113 <    else
5114 <      ClearConfEncrypted(yy_aconf);
5115 <  }
4608 >    dlinkAdd(xstrdup(yylval.string), make_dlink_node(), &block_state.mask.list);
4609   }
4610      break;
4611  
4612    case 264:
4613 <
4614 < /* Line 1806 of yacc.c  */
5122 < #line 1721 "ircd_parser.y"
4613 > /* Line 1792 of yacc.c  */
4614 > #line 1486 "conf_parser.y"
4615      {
4616 +  if (conf_parser_ctx.pass == 2)
4617 +    strlcpy(block_state.rpass.buf, yylval.string, sizeof(block_state.rpass.buf));
4618   }
4619      break;
4620  
4621 <  case 268:
4622 <
4623 < /* Line 1806 of yacc.c  */
5130 < #line 1726 "ircd_parser.y"
4621 >  case 265:
4622 > /* Line 1792 of yacc.c  */
4623 > #line 1492 "conf_parser.y"
4624      {
4625    if (conf_parser_ctx.pass == 2)
4626 <    yy_aconf->flags |= CONF_FLAGS_SPOOF_NOTICE;
4626 >    strlcpy(block_state.class.buf, yylval.string, sizeof(block_state.class.buf));
4627   }
4628      break;
4629  
4630 <  case 269:
4631 <
4632 < /* Line 1806 of yacc.c  */
5140 < #line 1730 "ircd_parser.y"
4630 >  case 266:
4631 > /* Line 1792 of yacc.c  */
4632 > #line 1498 "conf_parser.y"
4633      {
4634    if (conf_parser_ctx.pass == 2)
4635 <    yy_aconf->flags |= CONF_FLAGS_NOLIMIT;
4635 >  {
4636 >    if (yylval.number)
4637 >      block_state.flags.value |= CONF_FLAGS_ENCRYPTED;
4638 >    else
4639 >      block_state.flags.value &= ~CONF_FLAGS_ENCRYPTED;
4640 >  }
4641   }
4642      break;
4643  
4644 <  case 270:
4645 <
4646 < /* Line 1806 of yacc.c  */
5150 < #line 1734 "ircd_parser.y"
4644 >  case 267:
4645 > /* Line 1792 of yacc.c  */
4646 > #line 1509 "conf_parser.y"
4647      {
4648    if (conf_parser_ctx.pass == 2)
4649 <    yy_aconf->flags |= CONF_FLAGS_EXEMPTKLINE;
4649 >    block_state.flags.value &= CONF_FLAGS_ENCRYPTED;
4650   }
4651      break;
4652  
4653    case 271:
4654 <
4655 < /* Line 1806 of yacc.c  */
5160 < #line 1738 "ircd_parser.y"
4654 > /* Line 1792 of yacc.c  */
4655 > #line 1516 "conf_parser.y"
4656      {
4657    if (conf_parser_ctx.pass == 2)
4658 <    yy_aconf->flags |= CONF_FLAGS_NEED_IDENTD;
4658 >    block_state.flags.value |= CONF_FLAGS_SPOOF_NOTICE;
4659   }
4660      break;
4661  
4662    case 272:
4663 <
4664 < /* Line 1806 of yacc.c  */
5170 < #line 1742 "ircd_parser.y"
4663 > /* Line 1792 of yacc.c  */
4664 > #line 1520 "conf_parser.y"
4665      {
4666    if (conf_parser_ctx.pass == 2)
4667 <    yy_aconf->flags |= CONF_FLAGS_CAN_FLOOD;
4667 >    block_state.flags.value |= CONF_FLAGS_NOLIMIT;
4668   }
4669      break;
4670  
4671    case 273:
4672 <
4673 < /* Line 1806 of yacc.c  */
5180 < #line 1746 "ircd_parser.y"
4672 > /* Line 1792 of yacc.c  */
4673 > #line 1524 "conf_parser.y"
4674      {
4675    if (conf_parser_ctx.pass == 2)
4676 <    yy_aconf->flags |= CONF_FLAGS_NO_TILDE;
4676 >    block_state.flags.value |= CONF_FLAGS_EXEMPTKLINE;
4677   }
4678      break;
4679  
4680    case 274:
4681 <
4682 < /* Line 1806 of yacc.c  */
5190 < #line 1750 "ircd_parser.y"
4681 > /* Line 1792 of yacc.c  */
4682 > #line 1528 "conf_parser.y"
4683      {
4684    if (conf_parser_ctx.pass == 2)
4685 <    yy_aconf->flags |= CONF_FLAGS_EXEMPTGLINE;
4685 >    block_state.flags.value |= CONF_FLAGS_NEED_IDENTD;
4686   }
4687      break;
4688  
4689    case 275:
4690 <
4691 < /* Line 1806 of yacc.c  */
5200 < #line 1754 "ircd_parser.y"
4690 > /* Line 1792 of yacc.c  */
4691 > #line 1532 "conf_parser.y"
4692      {
4693    if (conf_parser_ctx.pass == 2)
4694 <    yy_aconf->flags |= CONF_FLAGS_EXEMPTRESV;
4694 >    block_state.flags.value |= CONF_FLAGS_CAN_FLOOD;
4695   }
4696      break;
4697  
4698    case 276:
4699 <
4700 < /* Line 1806 of yacc.c  */
5210 < #line 1758 "ircd_parser.y"
4699 > /* Line 1792 of yacc.c  */
4700 > #line 1536 "conf_parser.y"
4701      {
4702    if (conf_parser_ctx.pass == 2)
4703 <    yy_aconf->flags |= CONF_FLAGS_NEED_PASSWORD;
4703 >    block_state.flags.value |= CONF_FLAGS_NO_TILDE;
4704   }
4705      break;
4706  
4707    case 277:
4708 <
4709 < /* Line 1806 of yacc.c  */
5220 < #line 1765 "ircd_parser.y"
4708 > /* Line 1792 of yacc.c  */
4709 > #line 1540 "conf_parser.y"
4710      {
4711    if (conf_parser_ctx.pass == 2)
4712 <  {
5224 <    MyFree(yy_conf->name);
5225 <
5226 <    if (strlen(yylval.string) < HOSTLEN)
5227 <    {    
5228 <      DupString(yy_conf->name, yylval.string);
5229 <      yy_aconf->flags |= CONF_FLAGS_SPOOF_IP;
5230 <    }
5231 <    else
5232 <    {
5233 <      ilog(LOG_TYPE_IRCD, "Spoofs must be less than %d..ignoring it", HOSTLEN);
5234 <      yy_conf->name = NULL;
5235 <    }
5236 <  }
4712 >    block_state.flags.value |= CONF_FLAGS_EXEMPTGLINE;
4713   }
4714      break;
4715  
4716    case 278:
4717 <
4718 < /* Line 1806 of yacc.c  */
5243 < #line 1784 "ircd_parser.y"
4717 > /* Line 1792 of yacc.c  */
4718 > #line 1544 "conf_parser.y"
4719      {
4720    if (conf_parser_ctx.pass == 2)
4721 <  {
5247 <    yy_aconf->flags |= CONF_FLAGS_REDIR;
5248 <    MyFree(yy_conf->name);
5249 <    DupString(yy_conf->name, yylval.string);
5250 <  }
4721 >    block_state.flags.value |= CONF_FLAGS_EXEMPTRESV;
4722   }
4723      break;
4724  
4725    case 279:
4726 <
4727 < /* Line 1806 of yacc.c  */
5257 < #line 1794 "ircd_parser.y"
4726 > /* Line 1792 of yacc.c  */
4727 > #line 1548 "conf_parser.y"
4728      {
4729    if (conf_parser_ctx.pass == 2)
4730 <  {
5261 <    yy_aconf->flags |= CONF_FLAGS_REDIR;
5262 <    yy_aconf->port = (yyvsp[(3) - (4)].number);
5263 <  }
4730 >    block_state.flags.value |= CONF_FLAGS_WEBIRC;
4731   }
4732      break;
4733  
4734    case 280:
4735 <
4736 < /* Line 1806 of yacc.c  */
5270 < #line 1807 "ircd_parser.y"
4735 > /* Line 1792 of yacc.c  */
4736 > #line 1552 "conf_parser.y"
4737      {
4738    if (conf_parser_ctx.pass == 2)
4739 <  {
5274 <    MyFree(resv_reason);
5275 <    resv_reason = NULL;
5276 <  }
4739 >    block_state.flags.value |= CONF_FLAGS_NEED_PASSWORD;
4740   }
4741      break;
4742  
4743    case 281:
4744 <
4745 < /* Line 1806 of yacc.c  */
5283 < #line 1814 "ircd_parser.y"
4744 > /* Line 1792 of yacc.c  */
4745 > #line 1558 "conf_parser.y"
4746      {
4747 <  if (conf_parser_ctx.pass == 2)
4747 >  if (conf_parser_ctx.pass != 2)
4748 >    break;
4749 >
4750 >  if (strlen(yylval.string) <= HOSTLEN && valid_hostname(yylval.string))
4751    {
4752 <    MyFree(resv_reason);
4753 <    resv_reason = NULL;
4752 >    strlcpy(block_state.name.buf, yylval.string, sizeof(block_state.name.buf));
4753 >    block_state.flags.value |= CONF_FLAGS_SPOOF_IP;
4754    }
4755 +  else
4756 +    ilog(LOG_TYPE_IRCD, "Spoof either is too long or contains invalid characters. Ignoring it.");
4757   }
4758      break;
4759  
4760 <  case 288:
4761 <
4762 < /* Line 1806 of yacc.c  */
5296 < #line 1826 "ircd_parser.y"
4760 >  case 282:
4761 > /* Line 1792 of yacc.c  */
4762 > #line 1572 "conf_parser.y"
4763      {
4764 <  if (conf_parser_ctx.pass == 2)
5299 <  {
5300 <    MyFree(resv_reason);
5301 <    DupString(resv_reason, yylval.string);
5302 <  }
5303 < }
4764 >  if (conf_parser_ctx.pass != 2)
4765      break;
4766  
4767 <  case 289:
4767 >  strlcpy(block_state.name.buf, yylval.string, sizeof(block_state.name.buf));
4768 >  block_state.flags.value |= CONF_FLAGS_REDIR;
4769 > }
4770 >    break;
4771  
4772 < /* Line 1806 of yacc.c  */
4773 < #line 1835 "ircd_parser.y"
4772 >  case 283:
4773 > /* Line 1792 of yacc.c  */
4774 > #line 1581 "conf_parser.y"
4775      {
4776 <  if (conf_parser_ctx.pass == 2)
4777 <  {
5313 <    if (IsChanPrefix(*yylval.string))
5314 <    {
5315 <      char def_reason[] = "No reason";
4776 >  if (conf_parser_ctx.pass != 2)
4777 >    break;
4778  
4779 <      create_channel_resv(yylval.string, resv_reason != NULL ? resv_reason : def_reason, 1);
4780 <    }
5319 <  }
5320 <  /* ignore it for now.. but we really should make a warning if
5321 <   * its an erroneous name --fl_ */
4779 >  block_state.flags.value |= CONF_FLAGS_REDIR;
4780 >  block_state.port.value = (yyvsp[(3) - (4)].number);
4781   }
4782      break;
4783  
4784 <  case 290:
4785 <
4786 < /* Line 1806 of yacc.c  */
5328 < #line 1850 "ircd_parser.y"
4784 >  case 284:
4785 > /* Line 1792 of yacc.c  */
4786 > #line 1594 "conf_parser.y"
4787      {
4788 <  if (conf_parser_ctx.pass == 2)
4789 <  {
5332 <    char def_reason[] = "No reason";
4788 >  if (conf_parser_ctx.pass != 2)
4789 >    break;
4790  
4791 <    create_nick_resv(yylval.string, resv_reason != NULL ? resv_reason : def_reason, 1);
4792 <  }
4791 >  reset_block_state();
4792 >  strlcpy(block_state.rpass.buf, CONF_NOREASON, sizeof(block_state.rpass.buf));
4793   }
4794      break;
4795  
4796 <  case 296:
4797 <
4798 < /* Line 1806 of yacc.c  */
5342 < #line 1868 "ircd_parser.y"
4796 >  case 292:
4797 > /* Line 1792 of yacc.c  */
4798 > #line 1606 "conf_parser.y"
4799      {
4800    if (conf_parser_ctx.pass == 2)
4801 <  {
5346 <    if (valid_servname(yylval.string))
5347 <    {
5348 <      yy_conf = make_conf_item(SERVICE_TYPE);
5349 <      DupString(yy_conf->name, yylval.string);
5350 <    }
5351 <  }
4801 >    strlcpy(block_state.rpass.buf, yylval.string, sizeof(block_state.rpass.buf));
4802   }
4803      break;
4804  
4805 <  case 297:
4806 <
4807 < /* Line 1806 of yacc.c  */
5358 < #line 1883 "ircd_parser.y"
4805 >  case 293:
4806 > /* Line 1792 of yacc.c  */
4807 > #line 1612 "conf_parser.y"
4808      {
4809 <  if (conf_parser_ctx.pass == 2)
5361 <  {
5362 <    yy_conf = make_conf_item(ULINE_TYPE);
5363 <    yy_match_item = map_to_conf(yy_conf);
5364 <    yy_match_item->action = SHARED_ALL;
5365 <  }
5366 < }
4809 >  if (conf_parser_ctx.pass != 2)
4810      break;
4811  
4812 <  case 298:
4812 >  if (IsChanPrefix(*yylval.string))
4813 >    create_channel_resv(yylval.string, block_state.rpass.buf, 1);
4814 > }
4815 >    break;
4816  
4817 < /* Line 1806 of yacc.c  */
4818 < #line 1891 "ircd_parser.y"
4817 >  case 294:
4818 > /* Line 1792 of yacc.c  */
4819 > #line 1621 "conf_parser.y"
4820      {
4821    if (conf_parser_ctx.pass == 2)
4822 <  {
5376 <    yy_conf = NULL;
5377 <  }
4822 >    create_nick_resv(yylval.string, block_state.rpass.buf, 1);
4823   }
4824      break;
4825  
4826 <  case 305:
4827 <
4828 < /* Line 1806 of yacc.c  */
5384 < #line 1902 "ircd_parser.y"
4826 >  case 300:
4827 > /* Line 1792 of yacc.c  */
4828 > #line 1635 "conf_parser.y"
4829      {
4830    if (conf_parser_ctx.pass == 2)
4831    {
4832 <    MyFree(yy_conf->name);
4833 <    DupString(yy_conf->name, yylval.string);
4832 >    if (valid_servname(yylval.string))
4833 >    {
4834 >      struct MaskItem *conf = conf_make(CONF_SERVICE);
4835 >      conf->name = xstrdup(yylval.string);
4836 >    }
4837    }
4838   }
4839      break;
4840  
4841 <  case 306:
4842 <
4843 < /* Line 1806 of yacc.c  */
5397 < #line 1911 "ircd_parser.y"
4841 >  case 301:
4842 > /* Line 1792 of yacc.c  */
4843 > #line 1650 "conf_parser.y"
4844      {
4845 <  if (conf_parser_ctx.pass == 2)
4846 <  {
5401 <    struct split_nuh_item nuh;
5402 <
5403 <    nuh.nuhmask  = yylval.string;
5404 <    nuh.nickptr  = NULL;
5405 <    nuh.userptr  = userbuf;
5406 <    nuh.hostptr  = hostbuf;
5407 <
5408 <    nuh.nicksize = 0;
5409 <    nuh.usersize = sizeof(userbuf);
5410 <    nuh.hostsize = sizeof(hostbuf);
4845 >  if (conf_parser_ctx.pass != 2)
4846 >    break;
4847  
4848 <    split_nuh(&nuh);
4848 >  reset_block_state();
4849  
4850 <    DupString(yy_match_item->user, userbuf);
4851 <    DupString(yy_match_item->host, hostbuf);
4852 <  }
4850 >  strlcpy(block_state.name.buf, "*", sizeof(block_state.name.buf));
4851 >  strlcpy(block_state.user.buf, "*", sizeof(block_state.user.buf));
4852 >  strlcpy(block_state.host.buf, "*", sizeof(block_state.host.buf));
4853 >  block_state.flags.value = SHARED_ALL;
4854   }
4855      break;
4856  
4857 <  case 307:
4858 <
4859 < /* Line 1806 of yacc.c  */
5423 < #line 1933 "ircd_parser.y"
4857 >  case 302:
4858 > /* Line 1792 of yacc.c  */
4859 > #line 1661 "conf_parser.y"
4860      {
4861 <  if (conf_parser_ctx.pass == 2)
5426 <    yy_match_item->action = 0;
5427 < }
5428 <    break;
4861 >  struct MaskItem *conf = NULL;
4862  
4863 <  case 311:
4863 >  if (conf_parser_ctx.pass != 2)
4864 >    break;
4865  
4866 < /* Line 1806 of yacc.c  */
4867 < #line 1940 "ircd_parser.y"
4868 <    {
4869 <  if (conf_parser_ctx.pass == 2)
4870 <    yy_match_item->action |= SHARED_KLINE;
4866 >  conf = conf_make(CONF_ULINE);
4867 >  conf->flags = block_state.flags.value;
4868 >  conf->name = xstrdup(block_state.name.buf);
4869 >  conf->user = xstrdup(block_state.user.buf);
4870 >  conf->user = xstrdup(block_state.host.buf);
4871   }
4872      break;
4873  
4874 <  case 312:
4875 <
4876 < /* Line 1806 of yacc.c  */
5443 < #line 1944 "ircd_parser.y"
4874 >  case 309:
4875 > /* Line 1792 of yacc.c  */
4876 > #line 1678 "conf_parser.y"
4877      {
4878    if (conf_parser_ctx.pass == 2)
4879 <    yy_match_item->action |= SHARED_UNKLINE;
4879 >    strlcpy(block_state.name.buf, yylval.string, sizeof(block_state.name.buf));
4880   }
4881      break;
4882  
4883 <  case 313:
4884 <
4885 < /* Line 1806 of yacc.c  */
5453 < #line 1948 "ircd_parser.y"
4883 >  case 310:
4884 > /* Line 1792 of yacc.c  */
4885 > #line 1684 "conf_parser.y"
4886      {
4887    if (conf_parser_ctx.pass == 2)
4888 <    yy_match_item->action |= SHARED_DLINE;
4888 >  {
4889 >    struct split_nuh_item nuh;
4890 >
4891 >    nuh.nuhmask  = yylval.string;
4892 >    nuh.nickptr  = NULL;
4893 >    nuh.userptr  = block_state.user.buf;
4894 >    nuh.hostptr  = block_state.host.buf;
4895 >
4896 >    nuh.nicksize = 0;
4897 >    nuh.usersize = sizeof(block_state.user.buf);
4898 >    nuh.hostsize = sizeof(block_state.host.buf);
4899 >
4900 >    split_nuh(&nuh);
4901 >  }
4902   }
4903      break;
4904  
4905 <  case 314:
4906 <
4907 < /* Line 1806 of yacc.c  */
5463 < #line 1952 "ircd_parser.y"
4905 >  case 311:
4906 > /* Line 1792 of yacc.c  */
4907 > #line 1703 "conf_parser.y"
4908      {
4909    if (conf_parser_ctx.pass == 2)
4910 <    yy_match_item->action |= SHARED_UNDLINE;
4910 >    block_state.flags.value = 0;
4911   }
4912      break;
4913  
4914    case 315:
4915 <
4916 < /* Line 1806 of yacc.c  */
5473 < #line 1956 "ircd_parser.y"
4915 > /* Line 1792 of yacc.c  */
4916 > #line 1710 "conf_parser.y"
4917      {
4918    if (conf_parser_ctx.pass == 2)
4919 <    yy_match_item->action |= SHARED_XLINE;
4919 >    block_state.flags.value |= SHARED_KLINE;
4920   }
4921      break;
4922  
4923    case 316:
4924 <
4925 < /* Line 1806 of yacc.c  */
5483 < #line 1960 "ircd_parser.y"
4924 > /* Line 1792 of yacc.c  */
4925 > #line 1714 "conf_parser.y"
4926      {
4927    if (conf_parser_ctx.pass == 2)
4928 <    yy_match_item->action |= SHARED_UNXLINE;
4928 >    block_state.flags.value |= SHARED_UNKLINE;
4929   }
4930      break;
4931  
4932    case 317:
4933 <
4934 < /* Line 1806 of yacc.c  */
5493 < #line 1964 "ircd_parser.y"
4933 > /* Line 1792 of yacc.c  */
4934 > #line 1718 "conf_parser.y"
4935      {
4936    if (conf_parser_ctx.pass == 2)
4937 <    yy_match_item->action |= SHARED_RESV;
4937 >    block_state.flags.value |= SHARED_DLINE;
4938   }
4939      break;
4940  
4941    case 318:
4942 <
4943 < /* Line 1806 of yacc.c  */
5503 < #line 1968 "ircd_parser.y"
4942 > /* Line 1792 of yacc.c  */
4943 > #line 1722 "conf_parser.y"
4944      {
4945    if (conf_parser_ctx.pass == 2)
4946 <    yy_match_item->action |= SHARED_UNRESV;
4946 >    block_state.flags.value |= SHARED_UNDLINE;
4947   }
4948      break;
4949  
4950    case 319:
4951 <
4952 < /* Line 1806 of yacc.c  */
5513 < #line 1972 "ircd_parser.y"
4951 > /* Line 1792 of yacc.c  */
4952 > #line 1726 "conf_parser.y"
4953      {
4954    if (conf_parser_ctx.pass == 2)
4955 <    yy_match_item->action |= SHARED_LOCOPS;
4955 >    block_state.flags.value |= SHARED_XLINE;
4956   }
4957      break;
4958  
4959    case 320:
4960 <
4961 < /* Line 1806 of yacc.c  */
5523 < #line 1976 "ircd_parser.y"
4960 > /* Line 1792 of yacc.c  */
4961 > #line 1730 "conf_parser.y"
4962      {
4963    if (conf_parser_ctx.pass == 2)
4964 <    yy_match_item->action = SHARED_ALL;
4964 >    block_state.flags.value |= SHARED_UNXLINE;
4965   }
4966      break;
4967  
4968    case 321:
4969 <
4970 < /* Line 1806 of yacc.c  */
5533 < #line 1985 "ircd_parser.y"
4969 > /* Line 1792 of yacc.c  */
4970 > #line 1734 "conf_parser.y"
4971      {
4972    if (conf_parser_ctx.pass == 2)
4973 <  {
5537 <    yy_conf = make_conf_item(CLUSTER_TYPE);
5538 <    yy_conf->flags = SHARED_ALL;
5539 <  }
4973 >    block_state.flags.value |= SHARED_RESV;
4974   }
4975      break;
4976  
4977    case 322:
4978 <
4979 < /* Line 1806 of yacc.c  */
5546 < #line 1992 "ircd_parser.y"
4978 > /* Line 1792 of yacc.c  */
4979 > #line 1738 "conf_parser.y"
4980      {
4981    if (conf_parser_ctx.pass == 2)
4982 <  {
5550 <    if (yy_conf->name == NULL)
5551 <      DupString(yy_conf->name, "*");
5552 <    yy_conf = NULL;
5553 <  }
4982 >    block_state.flags.value |= SHARED_UNRESV;
4983   }
4984      break;
4985  
4986 <  case 328:
4987 <
4988 < /* Line 1806 of yacc.c  */
5560 < #line 2005 "ircd_parser.y"
4986 >  case 323:
4987 > /* Line 1792 of yacc.c  */
4988 > #line 1742 "conf_parser.y"
4989      {
4990    if (conf_parser_ctx.pass == 2)
4991 <    DupString(yy_conf->name, yylval.string);
4991 >    block_state.flags.value |= SHARED_LOCOPS;
4992   }
4993      break;
4994  
4995 <  case 329:
4996 <
4997 < /* Line 1806 of yacc.c  */
5570 < #line 2011 "ircd_parser.y"
4995 >  case 324:
4996 > /* Line 1792 of yacc.c  */
4997 > #line 1746 "conf_parser.y"
4998      {
4999    if (conf_parser_ctx.pass == 2)
5000 <    yy_conf->flags = 0;
5000 >    block_state.flags.value = SHARED_ALL;
5001   }
5002      break;
5003  
5004 <  case 333:
5005 <
5006 < /* Line 1806 of yacc.c  */
5580 < #line 2018 "ircd_parser.y"
5004 >  case 325:
5005 > /* Line 1792 of yacc.c  */
5006 > #line 1755 "conf_parser.y"
5007      {
5008 <  if (conf_parser_ctx.pass == 2)
5583 <    yy_conf->flags |= SHARED_KLINE;
5584 < }
5008 >  if (conf_parser_ctx.pass != 2)
5009      break;
5010  
5011 <  case 334:
5011 >  reset_block_state();
5012  
5013 < /* Line 1806 of yacc.c  */
5014 < #line 2022 "ircd_parser.y"
5591 <    {
5592 <  if (conf_parser_ctx.pass == 2)
5593 <    yy_conf->flags |= SHARED_UNKLINE;
5013 >  strlcpy(block_state.name.buf, "*", sizeof(block_state.name.buf));
5014 >  block_state.flags.value = SHARED_ALL;
5015   }
5016      break;
5017  
5018 <  case 335:
5018 >  case 326:
5019 > /* Line 1792 of yacc.c  */
5020 > #line 1764 "conf_parser.y"
5021 >    {
5022 >  struct MaskItem *conf = NULL;
5023 >
5024 >  if (conf_parser_ctx.pass != 2)
5025 >    break;
5026  
5027 < /* Line 1806 of yacc.c  */
5028 < #line 2026 "ircd_parser.y"
5027 >  conf = conf_make(CONF_CLUSTER);
5028 >  conf->flags = block_state.flags.value;
5029 >  conf->name = xstrdup(block_state.name.buf);
5030 > }
5031 >    break;
5032 >
5033 >  case 332:
5034 > /* Line 1792 of yacc.c  */
5035 > #line 1779 "conf_parser.y"
5036      {
5037    if (conf_parser_ctx.pass == 2)
5038 <    yy_conf->flags |= SHARED_DLINE;
5038 >    strlcpy(block_state.name.buf, yylval.string, sizeof(block_state.name.buf));
5039   }
5040      break;
5041  
5042 <  case 336:
5043 <
5044 < /* Line 1806 of yacc.c  */
5610 < #line 2030 "ircd_parser.y"
5042 >  case 333:
5043 > /* Line 1792 of yacc.c  */
5044 > #line 1785 "conf_parser.y"
5045      {
5046    if (conf_parser_ctx.pass == 2)
5047 <    yy_conf->flags |= SHARED_UNDLINE;
5047 >    block_state.flags.value = 0;
5048   }
5049      break;
5050  
5051    case 337:
5052 <
5053 < /* Line 1806 of yacc.c  */
5620 < #line 2034 "ircd_parser.y"
5052 > /* Line 1792 of yacc.c  */
5053 > #line 1792 "conf_parser.y"
5054      {
5055    if (conf_parser_ctx.pass == 2)
5056 <    yy_conf->flags |= SHARED_XLINE;
5056 >    block_state.flags.value |= SHARED_KLINE;
5057   }
5058      break;
5059  
5060    case 338:
5061 <
5062 < /* Line 1806 of yacc.c  */
5630 < #line 2038 "ircd_parser.y"
5061 > /* Line 1792 of yacc.c  */
5062 > #line 1796 "conf_parser.y"
5063      {
5064    if (conf_parser_ctx.pass == 2)
5065 <    yy_conf->flags |= SHARED_UNXLINE;
5065 >    block_state.flags.value |= SHARED_UNKLINE;
5066   }
5067      break;
5068  
5069    case 339:
5070 <
5071 < /* Line 1806 of yacc.c  */
5640 < #line 2042 "ircd_parser.y"
5070 > /* Line 1792 of yacc.c  */
5071 > #line 1800 "conf_parser.y"
5072      {
5073    if (conf_parser_ctx.pass == 2)
5074 <    yy_conf->flags |= SHARED_RESV;
5074 >    block_state.flags.value |= SHARED_DLINE;
5075   }
5076      break;
5077  
5078    case 340:
5079 <
5080 < /* Line 1806 of yacc.c  */
5650 < #line 2046 "ircd_parser.y"
5079 > /* Line 1792 of yacc.c  */
5080 > #line 1804 "conf_parser.y"
5081      {
5082    if (conf_parser_ctx.pass == 2)
5083 <    yy_conf->flags |= SHARED_UNRESV;
5083 >    block_state.flags.value |= SHARED_UNDLINE;
5084   }
5085      break;
5086  
5087    case 341:
5088 <
5089 < /* Line 1806 of yacc.c  */
5660 < #line 2050 "ircd_parser.y"
5088 > /* Line 1792 of yacc.c  */
5089 > #line 1808 "conf_parser.y"
5090      {
5091    if (conf_parser_ctx.pass == 2)
5092 <    yy_conf->flags |= SHARED_LOCOPS;
5092 >    block_state.flags.value |= SHARED_XLINE;
5093   }
5094      break;
5095  
5096    case 342:
5097 <
5098 < /* Line 1806 of yacc.c  */
5670 < #line 2054 "ircd_parser.y"
5097 > /* Line 1792 of yacc.c  */
5098 > #line 1812 "conf_parser.y"
5099      {
5100    if (conf_parser_ctx.pass == 2)
5101 <    yy_conf->flags = SHARED_ALL;
5101 >    block_state.flags.value |= SHARED_UNXLINE;
5102   }
5103      break;
5104  
5105    case 343:
5106 <
5107 < /* Line 1806 of yacc.c  */
5680 < #line 2063 "ircd_parser.y"
5106 > /* Line 1792 of yacc.c  */
5107 > #line 1816 "conf_parser.y"
5108      {
5109    if (conf_parser_ctx.pass == 2)
5110 <  {
5684 <    yy_conf = make_conf_item(SERVER_TYPE);
5685 <    yy_aconf = map_to_conf(yy_conf);
5686 <
5687 <    /* defaults */
5688 <    yy_aconf->port = PORTNUM;
5689 <  }
5690 <  else
5691 <  {
5692 <    MyFree(class_name);
5693 <    class_name = NULL;
5694 <  }
5110 >    block_state.flags.value |= SHARED_RESV;
5111   }
5112      break;
5113  
5114    case 344:
5115 <
5116 < /* Line 1806 of yacc.c  */
5701 < #line 2078 "ircd_parser.y"
5115 > /* Line 1792 of yacc.c  */
5116 > #line 1820 "conf_parser.y"
5117      {
5118    if (conf_parser_ctx.pass == 2)
5119 <  {
5120 <    struct CollectItem *yy_hconf=NULL;
5121 <    struct CollectItem *yy_lconf=NULL;
5707 <    dlink_node *ptr = NULL, *next_ptr = NULL;
5119 >    block_state.flags.value |= SHARED_UNRESV;
5120 > }
5121 >    break;
5122  
5123 <    if (yy_aconf->host &&
5124 <        yy_aconf->passwd && yy_aconf->spasswd)
5123 >  case 345:
5124 > /* Line 1792 of yacc.c  */
5125 > #line 1824 "conf_parser.y"
5126      {
5127 <      if (conf_add_server(yy_conf, class_name) == -1)
5128 <      {
5129 <        delete_conf_item(yy_conf);
5130 <        yy_conf = NULL;
5716 <        yy_aconf = NULL;
5717 <      }
5718 <    }
5719 <    else
5720 <    {
5721 <      /* Even if yy_conf ->name is NULL
5722 <       * should still unhook any hub/leaf confs still pending
5723 <       */
5724 <      unhook_hub_leaf_confs();
5725 <
5726 <      if (yy_conf->name != NULL)
5727 <      {
5728 <        if (yy_aconf->host == NULL)
5729 <          yyerror("Ignoring connect block -- missing host");
5730 <        else if (!yy_aconf->passwd || !yy_aconf->spasswd)
5731 <          yyerror("Ignoring connect block -- missing password");
5732 <      }
5733 <
5734 <
5735 <      /* XXX
5736 <       * This fixes a try_connections() core (caused by invalid class_ptr
5737 <       * pointers) reported by metalrock. That's an ugly fix, but there
5738 <       * is currently no better way. The entire config subsystem needs an
5739 <       * rewrite ASAP. make_conf_item() shouldn't really add things onto
5740 <       * a doubly linked list immediately without any sanity checks!  -Michael
5741 <       */
5742 <      delete_conf_item(yy_conf);
5743 <
5744 <      yy_aconf = NULL;
5745 <      yy_conf = NULL;
5746 <    }
5747 <
5748 <      /*
5749 <       * yy_conf is still pointing at the server that is having
5750 <       * a connect block built for it. This means, y_aconf->name
5751 <       * points to the actual irc name this server will be known as.
5752 <       * Now this new server has a set or even just one hub_mask (or leaf_mask)
5753 <       * given in the link list at yy_hconf. Fill in the HUB confs
5754 <       * from this link list now.
5755 <       */        
5756 <      DLINK_FOREACH_SAFE(ptr, next_ptr, hub_conf_list.head)
5757 <      {
5758 <        struct ConfItem *new_hub_conf;
5759 <        struct MatchItem *match_item;
5760 <
5761 <        yy_hconf = ptr->data;
5762 <
5763 <        /* yy_conf == NULL is a fatal error for this connect block! */
5764 <        if ((yy_conf != NULL) && (yy_conf->name != NULL))
5765 <        {
5766 <          new_hub_conf = make_conf_item(HUB_TYPE);
5767 <          match_item = (struct MatchItem *)map_to_conf(new_hub_conf);
5768 <          DupString(new_hub_conf->name, yy_conf->name);
5769 <          if (yy_hconf->user != NULL)
5770 <            DupString(match_item->user, yy_hconf->user);
5771 <          else
5772 <            DupString(match_item->user, "*");
5773 <          if (yy_hconf->host != NULL)
5774 <            DupString(match_item->host, yy_hconf->host);
5775 <          else
5776 <            DupString(match_item->host, "*");
5777 <        }
5778 <        dlinkDelete(&yy_hconf->node, &hub_conf_list);
5779 <        free_collect_item(yy_hconf);
5780 <      }
5127 >  if (conf_parser_ctx.pass == 2)
5128 >    block_state.flags.value |= SHARED_LOCOPS;
5129 > }
5130 >    break;
5131  
5132 <      /* Ditto for the LEAF confs */
5132 >  case 346:
5133 > /* Line 1792 of yacc.c  */
5134 > #line 1828 "conf_parser.y"
5135 >    {
5136 >  if (conf_parser_ctx.pass == 2)
5137 >    block_state.flags.value = SHARED_ALL;
5138 > }
5139 >    break;
5140  
5141 <      DLINK_FOREACH_SAFE(ptr, next_ptr, leaf_conf_list.head)
5142 <      {
5143 <        struct ConfItem *new_leaf_conf;
5144 <        struct MatchItem *match_item;
5141 >  case 347:
5142 > /* Line 1792 of yacc.c  */
5143 > #line 1837 "conf_parser.y"
5144 >    {
5145  
5146 <        yy_lconf = ptr->data;
5146 >  if (conf_parser_ctx.pass != 2)
5147 >    break;
5148  
5149 <        if ((yy_conf != NULL) && (yy_conf->name != NULL))
5150 <        {
5793 <          new_leaf_conf = make_conf_item(LEAF_TYPE);
5794 <          match_item = (struct MatchItem *)map_to_conf(new_leaf_conf);
5795 <          DupString(new_leaf_conf->name, yy_conf->name);
5796 <          if (yy_lconf->user != NULL)
5797 <            DupString(match_item->user, yy_lconf->user);
5798 <          else
5799 <            DupString(match_item->user, "*");
5800 <          if (yy_lconf->host != NULL)
5801 <            DupString(match_item->host, yy_lconf->host);
5802 <          else
5803 <            DupString(match_item->host, "*");
5804 <        }
5805 <        dlinkDelete(&yy_lconf->node, &leaf_conf_list);
5806 <        free_collect_item(yy_lconf);
5807 <      }
5808 <      MyFree(class_name);
5809 <      class_name = NULL;
5810 <      yy_conf = NULL;
5811 <      yy_aconf = NULL;
5812 <  }
5149 >  reset_block_state();
5150 >  block_state.port.value = PORTNUM;
5151   }
5152      break;
5153  
5154 <  case 361:
5155 <
5156 < /* Line 1806 of yacc.c  */
5819 < #line 2200 "ircd_parser.y"
5154 >  case 348:
5155 > /* Line 1792 of yacc.c  */
5156 > #line 1845 "conf_parser.y"
5157      {
5158 <  if (conf_parser_ctx.pass == 2)
5159 <  {
5823 <    if (yy_conf->name != NULL)
5824 <      yyerror("Multiple connect name entry");
5158 >  struct MaskItem *conf = NULL;
5159 >  struct addrinfo hints, *res;
5160  
5161 <    MyFree(yy_conf->name);
5827 <    DupString(yy_conf->name, yylval.string);
5828 <  }
5829 < }
5161 >  if (conf_parser_ctx.pass != 2)
5162      break;
5163  
5164 <  case 362:
5164 >  if (!block_state.name.buf[0] ||
5165 >      !block_state.host.buf[0])
5166 >    break;
5167  
5168 < /* Line 1806 of yacc.c  */
5169 < #line 2212 "ircd_parser.y"
5836 <    {
5837 <  if (conf_parser_ctx.pass == 2)
5838 <  {
5839 <    MyFree(yy_aconf->host);
5840 <    DupString(yy_aconf->host, yylval.string);
5841 <  }
5842 < }
5168 >  if (!(block_state.rpass.buf[0] ||
5169 >        block_state.spass.buf[0]))
5170      break;
5171  
5172 <  case 363:
5172 >  if (has_wildcards(block_state.name.buf) ||
5173 >      has_wildcards(block_state.host.buf))
5174 >    break;
5175  
5176 < /* Line 1806 of yacc.c  */
5177 < #line 2221 "ircd_parser.y"
5178 <    {
5179 <  if (conf_parser_ctx.pass == 2)
5180 <  {
5181 <    struct addrinfo hints, *res;
5176 >  conf = conf_make(CONF_SERVER);
5177 >  conf->port = block_state.port.value;
5178 >  conf->flags = block_state.flags.value;
5179 >  conf->aftype = block_state.aftype.value;
5180 >  conf->host = xstrdup(block_state.host.buf);
5181 >  conf->name = xstrdup(block_state.name.buf);
5182 >  conf->passwd = xstrdup(block_state.rpass.buf);
5183 >  conf->spasswd = xstrdup(block_state.spass.buf);
5184 >  conf->cipher_list = xstrdup(block_state.ciph.buf);
5185 >
5186 >  dlinkMoveList(&block_state.leaf.list, &conf->leaf_list);
5187 >  dlinkMoveList(&block_state.hub.list, &conf->hub_list);
5188  
5189 +  if (block_state.bind.buf[0])
5190 +  {
5191      memset(&hints, 0, sizeof(hints));
5192  
5193      hints.ai_family   = AF_UNSPEC;
5194      hints.ai_socktype = SOCK_STREAM;
5195      hints.ai_flags    = AI_PASSIVE | AI_NUMERICHOST;
5196  
5197 <    if (getaddrinfo(yylval.string, NULL, &hints, &res))
5198 <      ilog(LOG_TYPE_IRCD, "Invalid netmask for server vhost(%s)", yylval.string);
5197 >    if (getaddrinfo(block_state.bind.buf, NULL, &hints, &res))
5198 >      ilog(LOG_TYPE_IRCD, "Invalid netmask for server vhost(%s)", block_state.bind.buf);
5199      else
5200      {
5201        assert(res != NULL);
5202  
5203 <      memcpy(&yy_aconf->my_ipnum, res->ai_addr, res->ai_addrlen);
5204 <      yy_aconf->my_ipnum.ss.ss_family = res->ai_family;
5205 <      yy_aconf->my_ipnum.ss_len = res->ai_addrlen;
5203 >      memcpy(&conf->bind, res->ai_addr, res->ai_addrlen);
5204 >      conf->bind.ss.ss_family = res->ai_family;
5205 >      conf->bind.ss_len = res->ai_addrlen;
5206        freeaddrinfo(res);
5207      }
5208    }
5872 }
5873    break;
5209  
5210 <  case 364:
5211 <
5877 < /* Line 1806 of yacc.c  */
5878 < #line 2247 "ircd_parser.y"
5879 <    {
5880 <  if (conf_parser_ctx.pass == 2)
5881 <  {
5882 <    if ((yyvsp[(3) - (4)].string)[0] == ':')
5883 <      yyerror("Server passwords cannot begin with a colon");
5884 <    else if (strchr((yyvsp[(3) - (4)].string), ' ') != NULL)
5885 <      yyerror("Server passwords cannot contain spaces");
5886 <    else {
5887 <      if (yy_aconf->spasswd != NULL)
5888 <        memset(yy_aconf->spasswd, 0, strlen(yy_aconf->spasswd));
5889 <
5890 <      MyFree(yy_aconf->spasswd);
5891 <      DupString(yy_aconf->spasswd, yylval.string);
5892 <    }
5893 <  }
5210 >  conf_add_class_to_conf(conf, block_state.class.buf);
5211 >  lookup_confhost(conf);
5212   }
5213      break;
5214  
5215    case 365:
5216 <
5217 < /* Line 1806 of yacc.c  */
5900 < #line 2265 "ircd_parser.y"
5216 > /* Line 1792 of yacc.c  */
5217 > #line 1911 "conf_parser.y"
5218      {
5219    if (conf_parser_ctx.pass == 2)
5220 <  {
5904 <    if ((yyvsp[(3) - (4)].string)[0] == ':')
5905 <      yyerror("Server passwords cannot begin with a colon");
5906 <    else if (strchr((yyvsp[(3) - (4)].string), ' ') != NULL)
5907 <      yyerror("Server passwords cannot contain spaces");
5908 <    else {
5909 <      if (yy_aconf->passwd != NULL)
5910 <        memset(yy_aconf->passwd, 0, strlen(yy_aconf->passwd));
5911 <
5912 <      MyFree(yy_aconf->passwd);
5913 <      DupString(yy_aconf->passwd, yylval.string);
5914 <    }
5915 <  }
5220 >    strlcpy(block_state.name.buf, yylval.string, sizeof(block_state.name.buf));
5221   }
5222      break;
5223  
5224    case 366:
5225 <
5226 < /* Line 1806 of yacc.c  */
5922 < #line 2283 "ircd_parser.y"
5225 > /* Line 1792 of yacc.c  */
5226 > #line 1917 "conf_parser.y"
5227      {
5228    if (conf_parser_ctx.pass == 2)
5229 <    yy_aconf->port = (yyvsp[(3) - (4)].number);
5229 >    strlcpy(block_state.host.buf, yylval.string, sizeof(block_state.host.buf));
5230   }
5231      break;
5232  
5233    case 367:
5234 <
5235 < /* Line 1806 of yacc.c  */
5932 < #line 2289 "ircd_parser.y"
5234 > /* Line 1792 of yacc.c  */
5235 > #line 1923 "conf_parser.y"
5236      {
5237    if (conf_parser_ctx.pass == 2)
5238 <    yy_aconf->aftype = AF_INET;
5238 >    strlcpy(block_state.bind.buf, yylval.string, sizeof(block_state.bind.buf));
5239   }
5240      break;
5241  
5242    case 368:
5243 <
5244 < /* Line 1806 of yacc.c  */
5942 < #line 2293 "ircd_parser.y"
5243 > /* Line 1792 of yacc.c  */
5244 > #line 1929 "conf_parser.y"
5245      {
5246 < #ifdef IPV6
5247 <  if (conf_parser_ctx.pass == 2)
5248 <    yy_aconf->aftype = AF_INET6;
5249 < #endif
5246 >  if (conf_parser_ctx.pass != 2)
5247 >    break;
5248 >
5249 >  if ((yyvsp[(3) - (4)].string)[0] == ':')
5250 >    yyerror("Server passwords cannot begin with a colon");
5251 >  else if (strchr((yyvsp[(3) - (4)].string), ' ') != NULL)
5252 >    yyerror("Server passwords cannot contain spaces");
5253 >  else
5254 >    strlcpy(block_state.spass.buf, yylval.string, sizeof(block_state.spass.buf));
5255   }
5256      break;
5257  
5258    case 369:
5259 <
5260 < /* Line 1806 of yacc.c  */
5954 < #line 2301 "ircd_parser.y"
5259 > /* Line 1792 of yacc.c  */
5260 > #line 1942 "conf_parser.y"
5261      {
5262 < }
5262 >  if (conf_parser_ctx.pass != 2)
5263      break;
5264  
5265 <  case 373:
5265 >  if ((yyvsp[(3) - (4)].string)[0] == ':')
5266 >    yyerror("Server passwords cannot begin with a colon");
5267 >  else if (strchr((yyvsp[(3) - (4)].string), ' ') != NULL)
5268 >    yyerror("Server passwords cannot contain spaces");
5269 >  else
5270 >    strlcpy(block_state.rpass.buf, yylval.string, sizeof(block_state.rpass.buf));
5271 > }
5272 >    break;
5273  
5274 < /* Line 1806 of yacc.c  */
5275 < #line 2306 "ircd_parser.y"
5274 >  case 370:
5275 > /* Line 1792 of yacc.c  */
5276 > #line 1955 "conf_parser.y"
5277      {
5278    if (conf_parser_ctx.pass == 2)
5279 <    SetConfAllowAutoConn(yy_aconf);
5279 >    block_state.port.value = (yyvsp[(3) - (4)].number);
5280   }
5281      break;
5282  
5283 <  case 374:
5284 <
5285 < /* Line 1806 of yacc.c  */
5972 < #line 2310 "ircd_parser.y"
5283 >  case 371:
5284 > /* Line 1792 of yacc.c  */
5285 > #line 1961 "conf_parser.y"
5286      {
5287    if (conf_parser_ctx.pass == 2)
5288 <    SetConfAwayBurst(yy_aconf);
5288 >    block_state.aftype.value = AF_INET;
5289   }
5290      break;
5291  
5292 <  case 375:
5293 <
5294 < /* Line 1806 of yacc.c  */
5982 < #line 2314 "ircd_parser.y"
5292 >  case 372:
5293 > /* Line 1792 of yacc.c  */
5294 > #line 1965 "conf_parser.y"
5295      {
5296 + #ifdef IPV6
5297    if (conf_parser_ctx.pass == 2)
5298 <    SetConfTopicBurst(yy_aconf);
5298 >    block_state.aftype.value = AF_INET6;
5299 > #endif
5300   }
5301      break;
5302  
5303 <  case 376:
5304 <
5305 < /* Line 1806 of yacc.c  */
5992 < #line 2318 "ircd_parser.y"
5303 >  case 373:
5304 > /* Line 1792 of yacc.c  */
5305 > #line 1973 "conf_parser.y"
5306      {
5307 <  if (conf_parser_ctx.pass == 2)
5995 <    SetConfSSL(yy_aconf);
5307 >  block_state.flags.value &= CONF_FLAGS_ENCRYPTED;
5308   }
5309      break;
5310  
5311    case 377:
5312 <
5313 < /* Line 1806 of yacc.c  */
6002 < #line 2324 "ircd_parser.y"
5312 > /* Line 1792 of yacc.c  */
5313 > #line 1979 "conf_parser.y"
5314      {
5315    if (conf_parser_ctx.pass == 2)
5316 <  {
6006 <    if (yylval.number)
6007 <      yy_aconf->flags |= CONF_FLAGS_ENCRYPTED;
6008 <    else
6009 <      yy_aconf->flags &= ~CONF_FLAGS_ENCRYPTED;
6010 <  }
5316 >    block_state.flags.value |= CONF_FLAGS_ALLOW_AUTO_CONN;
5317   }
5318      break;
5319  
5320    case 378:
5321 <
5322 < /* Line 1806 of yacc.c  */
6017 < #line 2335 "ircd_parser.y"
5321 > /* Line 1792 of yacc.c  */
5322 > #line 1983 "conf_parser.y"
5323      {
5324    if (conf_parser_ctx.pass == 2)
5325 <  {
6021 <    struct CollectItem *yy_tmp;
6022 <
6023 <    yy_tmp = (struct CollectItem *)MyMalloc(sizeof(struct CollectItem));
6024 <    DupString(yy_tmp->host, yylval.string);
6025 <    DupString(yy_tmp->user, "*");
6026 <    dlinkAdd(yy_tmp, &yy_tmp->node, &hub_conf_list);
6027 <  }
5325 >    block_state.flags.value |= CONF_FLAGS_SSL;
5326   }
5327      break;
5328  
5329    case 379:
5330 <
5331 < /* Line 1806 of yacc.c  */
6034 < #line 2348 "ircd_parser.y"
5330 > /* Line 1792 of yacc.c  */
5331 > #line 1989 "conf_parser.y"
5332      {
5333    if (conf_parser_ctx.pass == 2)
5334    {
5335 <    struct CollectItem *yy_tmp;
5336 <
5337 <    yy_tmp = (struct CollectItem *)MyMalloc(sizeof(struct CollectItem));
5338 <    DupString(yy_tmp->host, yylval.string);
6042 <    DupString(yy_tmp->user, "*");
6043 <    dlinkAdd(yy_tmp, &yy_tmp->node, &leaf_conf_list);
5335 >    if (yylval.number)
5336 >      block_state.flags.value |= CONF_FLAGS_ENCRYPTED;
5337 >    else
5338 >      block_state.flags.value &= ~CONF_FLAGS_ENCRYPTED;
5339    }
5340   }
5341      break;
5342  
5343    case 380:
5344 <
5345 < /* Line 1806 of yacc.c  */
6051 < #line 2361 "ircd_parser.y"
5344 > /* Line 1792 of yacc.c  */
5345 > #line 2000 "conf_parser.y"
5346      {
5347    if (conf_parser_ctx.pass == 2)
5348 <  {
6055 <    MyFree(class_name);
6056 <    DupString(class_name, yylval.string);
6057 <  }
5348 >    dlinkAdd(xstrdup(yylval.string), make_dlink_node(), &block_state.hub.list);
5349   }
5350      break;
5351  
5352    case 381:
5353 + /* Line 1792 of yacc.c  */
5354 + #line 2006 "conf_parser.y"
5355 +    {
5356 +  if (conf_parser_ctx.pass == 2)
5357 +    dlinkAdd(xstrdup(yylval.string), make_dlink_node(), &block_state.leaf.list);
5358 + }
5359 +    break;
5360 +
5361 +  case 382:
5362 + /* Line 1792 of yacc.c  */
5363 + #line 2012 "conf_parser.y"
5364 +    {
5365 +  if (conf_parser_ctx.pass == 2)
5366 +    strlcpy(block_state.class.buf, yylval.string, sizeof(block_state.class.buf));
5367 + }
5368 +    break;
5369  
5370 < /* Line 1806 of yacc.c  */
5371 < #line 2370 "ircd_parser.y"
5370 >  case 383:
5371 > /* Line 1792 of yacc.c  */
5372 > #line 2018 "conf_parser.y"
5373      {
5374   #ifdef HAVE_LIBCRYPTO
5375    if (conf_parser_ctx.pass == 2)
5376 <  {
6069 <    MyFree(yy_aconf->cipher_list);
6070 <    DupString(yy_aconf->cipher_list, yylval.string);
6071 <  }
5376 >    strlcpy(block_state.ciph.buf, yylval.string, sizeof(block_state.ciph.buf));
5377   #else
5378    if (conf_parser_ctx.pass == 2)
5379      yyerror("Ignoring connect::ciphers -- no OpenSSL support");
# Line 6076 | Line 5381 | yyreduce:
5381   }
5382      break;
5383  
5384 <  case 382:
5385 <
5386 < /* Line 1806 of yacc.c  */
6082 < #line 2388 "ircd_parser.y"
5384 >  case 384:
5385 > /* Line 1792 of yacc.c  */
5386 > #line 2033 "conf_parser.y"
5387      {
5388    if (conf_parser_ctx.pass == 2)
5389 <  {
6086 <    userbuf[0] = hostbuf[0] = reasonbuf[0] = '\0';
6087 <    regex_ban = 0;
6088 <  }
5389 >    reset_block_state();
5390   }
5391      break;
5392  
5393 <  case 383:
5394 <
5395 < /* Line 1806 of yacc.c  */
6095 < #line 2395 "ircd_parser.y"
5393 >  case 385:
5394 > /* Line 1792 of yacc.c  */
5395 > #line 2037 "conf_parser.y"
5396      {
5397 <  if (conf_parser_ctx.pass == 2)
5397 >  struct MaskItem *conf = NULL;
5398 >
5399 >  if (conf_parser_ctx.pass != 2)
5400 >    break;
5401 >
5402 >  if (!block_state.user.buf[0] ||
5403 >      !block_state.host.buf[0])
5404 >    break;
5405 >
5406 >
5407 >  if (block_state.port.value == 1)
5408    {
6099    if (userbuf[0] && hostbuf[0])
6100    {
6101      if (regex_ban)
6102      {
5409   #ifdef HAVE_LIBPCRE
5410 <        void *exp_user = NULL;
5411 <        void *exp_host = NULL;
5412 <        const char *errptr = NULL;
5413 <
5414 <        if (!(exp_user = ircd_pcre_compile(userbuf, &errptr)) ||
5415 <            !(exp_host = ircd_pcre_compile(hostbuf, &errptr)))
5416 <        {
5417 <          ilog(LOG_TYPE_IRCD, "Failed to add regular expression based K-Line: %s",
5418 <               errptr);
5419 <          break;
5420 <        }
5410 >    void *exp_user = NULL;
5411 >    void *exp_host = NULL;
5412 >    const char *errptr = NULL;
5413 >
5414 >    if (!(exp_user = ircd_pcre_compile(block_state.user.buf, &errptr)) ||
5415 >        !(exp_host = ircd_pcre_compile(block_state.host.buf, &errptr)))
5416 >    {
5417 >      ilog(LOG_TYPE_IRCD, "Failed to add regular expression based K-Line: %s",
5418 >           errptr);
5419 >      break;
5420 >    }
5421  
5422 <        yy_aconf = map_to_conf(make_conf_item(RKLINE_TYPE));
5423 <        yy_aconf->regexuser = exp_user;
5424 <        yy_aconf->regexhost = exp_host;
5422 >    conf = conf_make(CONF_RKLINE);
5423 >    conf->regexuser = exp_user;
5424 >    conf->regexhost = exp_host;
5425  
5426 <        DupString(yy_aconf->user, userbuf);
5427 <        DupString(yy_aconf->host, hostbuf);
5426 >    conf->user = xstrdup(block_state.user.buf);
5427 >    conf->host = xstrdup(block_state.host.buf);
5428  
5429 <        if (reasonbuf[0])
5430 <          DupString(yy_aconf->reason, reasonbuf);
5431 <        else
5432 <          DupString(yy_aconf->reason, "No reason");
5429 >    if (block_state.rpass.buf[0])
5430 >      conf->reason = xstrdup(block_state.rpass.buf);
5431 >    else
5432 >      conf->reason = xstrdup(CONF_NOREASON);
5433   #else
5434 <        ilog(LOG_TYPE_IRCD, "Failed to add regular expression based K-Line: no PCRE support");
5435 <        break;
5434 >    ilog(LOG_TYPE_IRCD, "Failed to add regular expression based K-Line: no PCRE support");
5435 >    break;
5436   #endif
5437 <      }
5438 <      else
5439 <      {
5440 <        yy_aconf = map_to_conf(make_conf_item(KLINE_TYPE));
6135 <
6136 <        DupString(yy_aconf->user, userbuf);
6137 <        DupString(yy_aconf->host, hostbuf);
5437 >  }
5438 >  else
5439 >  {
5440 >    conf = conf_make(CONF_KLINE);
5441  
5442 <        if (reasonbuf[0])
5443 <          DupString(yy_aconf->reason, reasonbuf);
6141 <        else
6142 <          DupString(yy_aconf->reason, "No reason");
6143 <        add_conf_by_address(CONF_KILL, yy_aconf);
6144 <      }
6145 <    }
5442 >    conf->user = xstrdup(block_state.user.buf);
5443 >    conf->host = xstrdup(block_state.host.buf);
5444  
5445 <    yy_aconf = NULL;
5445 >    if (block_state.rpass.buf[0])
5446 >      conf->reason = xstrdup(block_state.rpass.buf);
5447 >    else
5448 >      conf->reason = xstrdup(CONF_NOREASON);
5449 >    add_conf_by_address(CONF_KLINE, conf);
5450    }
5451   }
5452      break;
5453  
5454 <  case 384:
5455 <
5456 < /* Line 1806 of yacc.c  */
6155 < #line 2451 "ircd_parser.y"
5454 >  case 386:
5455 > /* Line 1792 of yacc.c  */
5456 > #line 2095 "conf_parser.y"
5457      {
5458 +  if (conf_parser_ctx.pass == 2)
5459 +    block_state.port.value = 0;
5460   }
5461      break;
5462  
5463 <  case 388:
5464 <
5465 < /* Line 1806 of yacc.c  */
6163 < #line 2456 "ircd_parser.y"
5463 >  case 390:
5464 > /* Line 1792 of yacc.c  */
5465 > #line 2102 "conf_parser.y"
5466      {
5467    if (conf_parser_ctx.pass == 2)
5468 <    regex_ban = 1;
5468 >    block_state.port.value = 1;
5469   }
5470      break;
5471  
5472 <  case 395:
5473 <
5474 < /* Line 1806 of yacc.c  */
6173 < #line 2465 "ircd_parser.y"
5472 >  case 397:
5473 > /* Line 1792 of yacc.c  */
5474 > #line 2111 "conf_parser.y"
5475      {
5476 +
5477    if (conf_parser_ctx.pass == 2)
5478    {
5479      struct split_nuh_item nuh;
5480  
5481      nuh.nuhmask  = yylval.string;
5482      nuh.nickptr  = NULL;
5483 <    nuh.userptr  = userbuf;
5484 <    nuh.hostptr  = hostbuf;
5483 >    nuh.userptr  = block_state.user.buf;
5484 >    nuh.hostptr  = block_state.host.buf;
5485  
5486      nuh.nicksize = 0;
5487 <    nuh.usersize = sizeof(userbuf);
5488 <    nuh.hostsize = sizeof(hostbuf);
5487 >    nuh.usersize = sizeof(block_state.user.buf);
5488 >    nuh.hostsize = sizeof(block_state.host.buf);
5489  
5490      split_nuh(&nuh);
5491    }
5492   }
5493      break;
5494  
5495 <  case 396:
5496 <
5497 < /* Line 1806 of yacc.c  */
6196 < #line 2484 "ircd_parser.y"
5495 >  case 398:
5496 > /* Line 1792 of yacc.c  */
5497 > #line 2131 "conf_parser.y"
5498      {
5499    if (conf_parser_ctx.pass == 2)
5500 <    strlcpy(reasonbuf, yylval.string, sizeof(reasonbuf));
5500 >    strlcpy(block_state.rpass.buf, yylval.string, sizeof(block_state.rpass.buf));
5501   }
5502      break;
5503  
5504 <  case 397:
5505 <
5506 < /* Line 1806 of yacc.c  */
6206 < #line 2493 "ircd_parser.y"
5504 >  case 399:
5505 > /* Line 1792 of yacc.c  */
5506 > #line 2140 "conf_parser.y"
5507      {
5508    if (conf_parser_ctx.pass == 2)
5509 <    hostbuf[0] = reasonbuf[0] = '\0';
5509 >    reset_block_state();
5510   }
5511      break;
5512  
5513 <  case 398:
5514 <
5515 < /* Line 1806 of yacc.c  */
6216 < #line 2497 "ircd_parser.y"
5513 >  case 400:
5514 > /* Line 1792 of yacc.c  */
5515 > #line 2144 "conf_parser.y"
5516      {
5517 <  if (conf_parser_ctx.pass == 2)
5517 >  struct MaskItem *conf = NULL;
5518 >
5519 >  if (conf_parser_ctx.pass != 2)
5520 >    break;
5521 >
5522 >  if (!block_state.addr.buf[0])
5523 >    break;
5524 >
5525 >  if (parse_netmask(block_state.addr.buf, NULL, NULL) != HM_HOST)
5526    {
5527 <    if (hostbuf[0] && parse_netmask(hostbuf, NULL, NULL) != HM_HOST)
5528 <    {
6222 <      yy_aconf = map_to_conf(make_conf_item(DLINE_TYPE));
6223 <      DupString(yy_aconf->host, hostbuf);
5527 >    conf = conf_make(CONF_DLINE);
5528 >    conf->host = xstrdup(block_state.addr.buf);
5529  
5530 <      if (reasonbuf[0])
5531 <        DupString(yy_aconf->reason, reasonbuf);
5532 <      else
5533 <        DupString(yy_aconf->reason, "No reason");
5534 <      add_conf_by_address(CONF_DLINE, yy_aconf);
6230 <      yy_aconf = NULL;
6231 <    }
5530 >    if (block_state.rpass.buf[0])
5531 >      conf->reason = xstrdup(block_state.rpass.buf);
5532 >    else
5533 >      conf->reason = xstrdup(CONF_NOREASON);
5534 >    add_conf_by_address(CONF_DLINE, conf);
5535    }
5536   }
5537      break;
5538  
5539 <  case 404:
5540 <
5541 < /* Line 1806 of yacc.c  */
6239 < #line 2519 "ircd_parser.y"
5539 >  case 406:
5540 > /* Line 1792 of yacc.c  */
5541 > #line 2170 "conf_parser.y"
5542      {
5543    if (conf_parser_ctx.pass == 2)
5544 <    strlcpy(hostbuf, yylval.string, sizeof(hostbuf));
5544 >    strlcpy(block_state.addr.buf, yylval.string, sizeof(block_state.addr.buf));
5545   }
5546      break;
5547  
5548 <  case 405:
5549 <
5550 < /* Line 1806 of yacc.c  */
6249 < #line 2525 "ircd_parser.y"
5548 >  case 407:
5549 > /* Line 1792 of yacc.c  */
5550 > #line 2176 "conf_parser.y"
5551      {
5552    if (conf_parser_ctx.pass == 2)
5553 <    strlcpy(reasonbuf, yylval.string, sizeof(reasonbuf));
5553 >    strlcpy(block_state.rpass.buf, yylval.string, sizeof(block_state.rpass.buf));
5554   }
5555      break;
5556  
5557 <  case 411:
5558 <
5559 < /* Line 1806 of yacc.c  */
6259 < #line 2539 "ircd_parser.y"
5557 >  case 413:
5558 > /* Line 1792 of yacc.c  */
5559 > #line 2190 "conf_parser.y"
5560      {
5561    if (conf_parser_ctx.pass == 2)
5562    {
5563      if (yylval.string[0] && parse_netmask(yylval.string, NULL, NULL) != HM_HOST)
5564      {
5565 <      yy_aconf = map_to_conf(make_conf_item(EXEMPTDLINE_TYPE));
5566 <      DupString(yy_aconf->host, yylval.string);
5565 >      struct MaskItem *conf = conf_make(CONF_EXEMPT);
5566 >      conf->host = xstrdup(yylval.string);
5567  
5568 <      add_conf_by_address(CONF_EXEMPTDLINE, yy_aconf);
6269 <      yy_aconf = NULL;
5568 >      add_conf_by_address(CONF_EXEMPT, conf);
5569      }
5570    }
5571   }
5572      break;
5573  
5574 <  case 412:
5575 <
5576 < /* Line 1806 of yacc.c  */
6278 < #line 2557 "ircd_parser.y"
5574 >  case 414:
5575 > /* Line 1792 of yacc.c  */
5576 > #line 2207 "conf_parser.y"
5577      {
5578    if (conf_parser_ctx.pass == 2)
5579 <  {
6282 <    regex_ban = 0;
6283 <    reasonbuf[0] = gecos_name[0] = '\0';
6284 <  }
5579 >    reset_block_state();
5580   }
5581      break;
5582  
5583 <  case 413:
5584 <
5585 < /* Line 1806 of yacc.c  */
6291 < #line 2564 "ircd_parser.y"
5583 >  case 415:
5584 > /* Line 1792 of yacc.c  */
5585 > #line 2211 "conf_parser.y"
5586      {
5587 <  if (conf_parser_ctx.pass == 2)
5587 >  struct MaskItem *conf = NULL;
5588 >
5589 >  if (conf_parser_ctx.pass != 2)
5590 >    break;
5591 >
5592 >  if (!block_state.name.buf[0])
5593 >    break;
5594 >
5595 >  if (block_state.port.value == 1)
5596    {
6295    if (gecos_name[0])
6296    {
6297      if (regex_ban)
6298      {
5597   #ifdef HAVE_LIBPCRE
5598 <        void *exp_p = NULL;
5599 <        const char *errptr = NULL;
5598 >    void *exp_p = NULL;
5599 >    const char *errptr = NULL;
5600  
5601 <        if (!(exp_p = ircd_pcre_compile(gecos_name, &errptr)))
5602 <        {
5603 <          ilog(LOG_TYPE_IRCD, "Failed to add regular expression based X-Line: %s",
5604 <               errptr);
5605 <          break;
5606 <        }
5601 >    if (!(exp_p = ircd_pcre_compile(block_state.name.buf, &errptr)))
5602 >    {
5603 >      ilog(LOG_TYPE_IRCD, "Failed to add regular expression based X-Line: %s",
5604 >           errptr);
5605 >      break;
5606 >    }
5607  
5608 <        yy_conf = make_conf_item(RXLINE_TYPE);
5609 <        yy_conf->regexpname = exp_p;
5608 >    conf = conf_make(CONF_RXLINE);
5609 >    conf->regexuser = exp_p;
5610   #else
5611 <        ilog(LOG_TYPE_IRCD, "Failed to add regular expression based X-Line: no PCRE support");
5612 <        break;
5611 >    ilog(LOG_TYPE_IRCD, "Failed to add regular expression based X-Line: no PCRE support");
5612 >    break;
5613   #endif
5614 <      }
5615 <      else
5616 <        yy_conf = make_conf_item(XLINE_TYPE);
5614 >  }
5615 >  else
5616 >    conf = conf_make(CONF_XLINE);
5617  
5618 <      yy_match_item = map_to_conf(yy_conf);
6321 <      DupString(yy_conf->name, gecos_name);
5618 >  conf->name = xstrdup(block_state.name.buf);
5619  
5620 <      if (reasonbuf[0])
5621 <        DupString(yy_match_item->reason, reasonbuf);
5622 <      else
5623 <        DupString(yy_match_item->reason, "No reason");
6327 <    }
6328 <  }
5620 >  if (block_state.rpass.buf[0])
5621 >    conf->reason = xstrdup(block_state.rpass.buf);
5622 >  else
5623 >    conf->reason = xstrdup(CONF_NOREASON);
5624   }
5625      break;
5626  
5627 <  case 414:
5628 <
5629 < /* Line 1806 of yacc.c  */
6335 < #line 2604 "ircd_parser.y"
5627 >  case 416:
5628 > /* Line 1792 of yacc.c  */
5629 > #line 2252 "conf_parser.y"
5630      {
5631 +  if (conf_parser_ctx.pass == 2)
5632 +    block_state.port.value = 0;
5633   }
5634      break;
5635  
5636 <  case 418:
5637 <
5638 < /* Line 1806 of yacc.c  */
6343 < #line 2609 "ircd_parser.y"
5636 >  case 420:
5637 > /* Line 1792 of yacc.c  */
5638 > #line 2259 "conf_parser.y"
5639      {
5640    if (conf_parser_ctx.pass == 2)
5641 <    regex_ban = 1;
5641 >    block_state.port.value = 1;
5642   }
5643      break;
5644  
5645 <  case 425:
5646 <
5647 < /* Line 1806 of yacc.c  */
6353 < #line 2618 "ircd_parser.y"
5645 >  case 427:
5646 > /* Line 1792 of yacc.c  */
5647 > #line 2268 "conf_parser.y"
5648      {
5649    if (conf_parser_ctx.pass == 2)
5650 <    strlcpy(gecos_name, yylval.string, sizeof(gecos_name));
5650 >    strlcpy(block_state.name.buf, yylval.string, sizeof(block_state.name.buf));
5651   }
5652      break;
5653  
5654 <  case 426:
5655 <
5656 < /* Line 1806 of yacc.c  */
6363 < #line 2624 "ircd_parser.y"
5654 >  case 428:
5655 > /* Line 1792 of yacc.c  */
5656 > #line 2274 "conf_parser.y"
5657      {
5658    if (conf_parser_ctx.pass == 2)
5659 <    strlcpy(reasonbuf, yylval.string, sizeof(reasonbuf));
5659 >    strlcpy(block_state.rpass.buf, yylval.string, sizeof(block_state.rpass.buf));
5660   }
5661      break;
5662  
5663    case 482:
5664 <
5665 < /* Line 1806 of yacc.c  */
6373 < #line 2668 "ircd_parser.y"
5664 > /* Line 1792 of yacc.c  */
5665 > #line 2319 "conf_parser.y"
5666      {
5667    ConfigFileEntry.max_watch = (yyvsp[(3) - (4)].number);
5668   }
5669      break;
5670  
5671    case 483:
5672 <
5673 < /* Line 1806 of yacc.c  */
6382 < #line 2673 "ircd_parser.y"
5672 > /* Line 1792 of yacc.c  */
5673 > #line 2324 "conf_parser.y"
5674      {
5675 <  ConfigFileEntry.gline_min_cidr = (yyvsp[(3) - (4)].number);
5675 >  if (conf_parser_ctx.pass == 2)
5676 >    ConfigFileEntry.glines = yylval.number;
5677   }
5678      break;
5679  
5680    case 484:
5681 <
5682 < /* Line 1806 of yacc.c  */
6391 < #line 2678 "ircd_parser.y"
5681 > /* Line 1792 of yacc.c  */
5682 > #line 2330 "conf_parser.y"
5683      {
5684 <  ConfigFileEntry.gline_min_cidr6 = (yyvsp[(3) - (4)].number);
5684 >  if (conf_parser_ctx.pass == 2)
5685 >    ConfigFileEntry.gline_time = (yyvsp[(3) - (4)].number);
5686   }
5687      break;
5688  
5689    case 485:
5690 <
5691 < /* Line 1806 of yacc.c  */
6400 < #line 2683 "ircd_parser.y"
5690 > /* Line 1792 of yacc.c  */
5691 > #line 2336 "conf_parser.y"
5692      {
5693 <  ConfigFileEntry.use_whois_actually = yylval.number;
5693 >  if (conf_parser_ctx.pass == 2)
5694 >    ConfigFileEntry.gline_request_time = (yyvsp[(3) - (4)].number);
5695   }
5696      break;
5697  
5698    case 486:
5699 <
5700 < /* Line 1806 of yacc.c  */
6409 < #line 2688 "ircd_parser.y"
5699 > /* Line 1792 of yacc.c  */
5700 > #line 2342 "conf_parser.y"
5701      {
5702 <  GlobalSetOptions.rejecttime = yylval.number;
5702 >  ConfigFileEntry.gline_min_cidr = (yyvsp[(3) - (4)].number);
5703   }
5704      break;
5705  
5706    case 487:
5707 <
5708 < /* Line 1806 of yacc.c  */
6418 < #line 2693 "ircd_parser.y"
5707 > /* Line 1792 of yacc.c  */
5708 > #line 2347 "conf_parser.y"
5709      {
5710 <  ConfigFileEntry.tkline_expire_notices = yylval.number;
5710 >  ConfigFileEntry.gline_min_cidr6 = (yyvsp[(3) - (4)].number);
5711   }
5712      break;
5713  
5714    case 488:
5715 <
5716 < /* Line 1806 of yacc.c  */
6427 < #line 2698 "ircd_parser.y"
5715 > /* Line 1792 of yacc.c  */
5716 > #line 2352 "conf_parser.y"
5717      {
5718 <  ConfigFileEntry.kill_chase_time_limit = (yyvsp[(3) - (4)].number);
5718 >  ConfigFileEntry.tkline_expire_notices = yylval.number;
5719   }
5720      break;
5721  
5722    case 489:
5723 <
5724 < /* Line 1806 of yacc.c  */
6436 < #line 2703 "ircd_parser.y"
5723 > /* Line 1792 of yacc.c  */
5724 > #line 2357 "conf_parser.y"
5725      {
5726 <  ConfigFileEntry.hide_spoof_ips = yylval.number;
5726 >  ConfigFileEntry.kill_chase_time_limit = (yyvsp[(3) - (4)].number);
5727   }
5728      break;
5729  
5730    case 490:
5731 <
5732 < /* Line 1806 of yacc.c  */
6445 < #line 2708 "ircd_parser.y"
5731 > /* Line 1792 of yacc.c  */
5732 > #line 2362 "conf_parser.y"
5733      {
5734 <  ConfigFileEntry.ignore_bogus_ts = yylval.number;
5734 >  ConfigFileEntry.hide_spoof_ips = yylval.number;
5735   }
5736      break;
5737  
5738    case 491:
5739 <
5740 < /* Line 1806 of yacc.c  */
6454 < #line 2713 "ircd_parser.y"
5739 > /* Line 1792 of yacc.c  */
5740 > #line 2367 "conf_parser.y"
5741      {
5742 <  ConfigFileEntry.disable_remote = yylval.number;
5742 >  ConfigFileEntry.ignore_bogus_ts = yylval.number;
5743   }
5744      break;
5745  
5746    case 492:
5747 <
5748 < /* Line 1806 of yacc.c  */
6463 < #line 2718 "ircd_parser.y"
5747 > /* Line 1792 of yacc.c  */
5748 > #line 2372 "conf_parser.y"
5749      {
5750 <  ConfigFileEntry.failed_oper_notice = yylval.number;
5750 >  ConfigFileEntry.disable_remote = yylval.number;
5751   }
5752      break;
5753  
5754    case 493:
5755 <
5756 < /* Line 1806 of yacc.c  */
6472 < #line 2723 "ircd_parser.y"
5755 > /* Line 1792 of yacc.c  */
5756 > #line 2377 "conf_parser.y"
5757      {
5758 <  ConfigFileEntry.anti_nick_flood = yylval.number;
5758 >  ConfigFileEntry.failed_oper_notice = yylval.number;
5759   }
5760      break;
5761  
5762    case 494:
5763 <
5764 < /* Line 1806 of yacc.c  */
6481 < #line 2728 "ircd_parser.y"
5763 > /* Line 1792 of yacc.c  */
5764 > #line 2382 "conf_parser.y"
5765      {
5766 <  ConfigFileEntry.max_nick_time = (yyvsp[(3) - (4)].number);
5766 >  ConfigFileEntry.anti_nick_flood = yylval.number;
5767   }
5768      break;
5769  
5770    case 495:
5771 <
5772 < /* Line 1806 of yacc.c  */
6490 < #line 2733 "ircd_parser.y"
5771 > /* Line 1792 of yacc.c  */
5772 > #line 2387 "conf_parser.y"
5773      {
5774 <  ConfigFileEntry.max_nick_changes = (yyvsp[(3) - (4)].number);
5774 >  ConfigFileEntry.max_nick_time = (yyvsp[(3) - (4)].number);
5775   }
5776      break;
5777  
5778    case 496:
5779 <
5780 < /* Line 1806 of yacc.c  */
6499 < #line 2738 "ircd_parser.y"
5779 > /* Line 1792 of yacc.c  */
5780 > #line 2392 "conf_parser.y"
5781      {
5782 <  ConfigFileEntry.max_accept = (yyvsp[(3) - (4)].number);
5782 >  ConfigFileEntry.max_nick_changes = (yyvsp[(3) - (4)].number);
5783   }
5784      break;
5785  
5786    case 497:
5787 <
5788 < /* Line 1806 of yacc.c  */
6508 < #line 2743 "ircd_parser.y"
5787 > /* Line 1792 of yacc.c  */
5788 > #line 2397 "conf_parser.y"
5789      {
5790 <  ConfigFileEntry.anti_spam_exit_message_time = (yyvsp[(3) - (4)].number);
5790 >  ConfigFileEntry.max_accept = (yyvsp[(3) - (4)].number);
5791   }
5792      break;
5793  
5794    case 498:
5795 <
5796 < /* Line 1806 of yacc.c  */
6517 < #line 2748 "ircd_parser.y"
5795 > /* Line 1792 of yacc.c  */
5796 > #line 2402 "conf_parser.y"
5797      {
5798 <  ConfigFileEntry.ts_warn_delta = (yyvsp[(3) - (4)].number);
5798 >  ConfigFileEntry.anti_spam_exit_message_time = (yyvsp[(3) - (4)].number);
5799   }
5800      break;
5801  
5802    case 499:
5803 + /* Line 1792 of yacc.c  */
5804 + #line 2407 "conf_parser.y"
5805 +    {
5806 +  ConfigFileEntry.ts_warn_delta = (yyvsp[(3) - (4)].number);
5807 + }
5808 +    break;
5809  
5810 < /* Line 1806 of yacc.c  */
5811 < #line 2753 "ircd_parser.y"
5810 >  case 500:
5811 > /* Line 1792 of yacc.c  */
5812 > #line 2412 "conf_parser.y"
5813      {
5814    if (conf_parser_ctx.pass == 2)
5815      ConfigFileEntry.ts_max_delta = (yyvsp[(3) - (4)].number);
5816   }
5817      break;
5818  
5819 <  case 500:
5820 <
5821 < /* Line 1806 of yacc.c  */
6536 < #line 2759 "ircd_parser.y"
5819 >  case 501:
5820 > /* Line 1792 of yacc.c  */
5821 > #line 2418 "conf_parser.y"
5822      {
5823    if (((yyvsp[(3) - (4)].number) > 0) && conf_parser_ctx.pass == 1)
5824    {
# Line 6545 | Line 5830 | yyreduce:
5830   }
5831      break;
5832  
6548  case 501:
6549
6550 /* Line 1806 of yacc.c  */
6551 #line 2770 "ircd_parser.y"
6552    {
6553  ConfigFileEntry.kline_with_reason = yylval.number;
6554 }
6555    break;
6556
5833    case 502:
5834 <
5835 < /* Line 1806 of yacc.c  */
6560 < #line 2775 "ircd_parser.y"
6561 <    {
6562 <  if (conf_parser_ctx.pass == 2)
6563 <  {
6564 <    MyFree(ConfigFileEntry.kline_reason);
6565 <    DupString(ConfigFileEntry.kline_reason, yylval.string);
6566 <  }
6567 < }
6568 <    break;
6569 <
6570 <  case 503:
6571 <
6572 < /* Line 1806 of yacc.c  */
6573 < #line 2784 "ircd_parser.y"
5834 > /* Line 1792 of yacc.c  */
5835 > #line 2429 "conf_parser.y"
5836      {
5837    ConfigFileEntry.invisible_on_connect = yylval.number;
5838   }
5839      break;
5840  
5841 <  case 504:
5842 <
5843 < /* Line 1806 of yacc.c  */
6582 < #line 2789 "ircd_parser.y"
5841 >  case 503:
5842 > /* Line 1792 of yacc.c  */
5843 > #line 2434 "conf_parser.y"
5844      {
5845    ConfigFileEntry.warn_no_nline = yylval.number;
5846   }
5847      break;
5848  
5849 <  case 505:
5850 <
5851 < /* Line 1806 of yacc.c  */
6591 < #line 2794 "ircd_parser.y"
5849 >  case 504:
5850 > /* Line 1792 of yacc.c  */
5851 > #line 2439 "conf_parser.y"
5852      {
5853    ConfigFileEntry.stats_e_disabled = yylval.number;
5854   }
5855      break;
5856  
5857 <  case 506:
5858 <
5859 < /* Line 1806 of yacc.c  */
6600 < #line 2799 "ircd_parser.y"
5857 >  case 505:
5858 > /* Line 1792 of yacc.c  */
5859 > #line 2444 "conf_parser.y"
5860      {
5861    ConfigFileEntry.stats_o_oper_only = yylval.number;
5862   }
5863      break;
5864  
5865 <  case 507:
5866 <
5867 < /* Line 1806 of yacc.c  */
6609 < #line 2804 "ircd_parser.y"
5865 >  case 506:
5866 > /* Line 1792 of yacc.c  */
5867 > #line 2449 "conf_parser.y"
5868      {
5869    ConfigFileEntry.stats_P_oper_only = yylval.number;
5870   }
5871      break;
5872  
5873 <  case 508:
5874 <
5875 < /* Line 1806 of yacc.c  */
6618 < #line 2809 "ircd_parser.y"
5873 >  case 507:
5874 > /* Line 1792 of yacc.c  */
5875 > #line 2454 "conf_parser.y"
5876      {
5877    ConfigFileEntry.stats_k_oper_only = 2 * yylval.number;
5878   }
5879      break;
5880  
5881 <  case 509:
5882 <
5883 < /* Line 1806 of yacc.c  */
6627 < #line 2812 "ircd_parser.y"
5881 >  case 508:
5882 > /* Line 1792 of yacc.c  */
5883 > #line 2457 "conf_parser.y"
5884      {
5885    ConfigFileEntry.stats_k_oper_only = 1;
5886   }
5887      break;
5888  
5889 <  case 510:
5890 <
5891 < /* Line 1806 of yacc.c  */
6636 < #line 2817 "ircd_parser.y"
5889 >  case 509:
5890 > /* Line 1792 of yacc.c  */
5891 > #line 2462 "conf_parser.y"
5892      {
5893    ConfigFileEntry.stats_i_oper_only = 2 * yylval.number;
5894   }
5895      break;
5896  
5897 <  case 511:
5898 <
5899 < /* Line 1806 of yacc.c  */
6645 < #line 2820 "ircd_parser.y"
5897 >  case 510:
5898 > /* Line 1792 of yacc.c  */
5899 > #line 2465 "conf_parser.y"
5900      {
5901    ConfigFileEntry.stats_i_oper_only = 1;
5902   }
5903      break;
5904  
5905 <  case 512:
5906 <
5907 < /* Line 1806 of yacc.c  */
6654 < #line 2825 "ircd_parser.y"
5905 >  case 511:
5906 > /* Line 1792 of yacc.c  */
5907 > #line 2470 "conf_parser.y"
5908      {
5909    ConfigFileEntry.pace_wait = (yyvsp[(3) - (4)].number);
5910   }
5911      break;
5912  
5913 <  case 513:
5914 <
5915 < /* Line 1806 of yacc.c  */
6663 < #line 2830 "ircd_parser.y"
5913 >  case 512:
5914 > /* Line 1792 of yacc.c  */
5915 > #line 2475 "conf_parser.y"
5916      {
5917    ConfigFileEntry.caller_id_wait = (yyvsp[(3) - (4)].number);
5918   }
5919      break;
5920  
5921 <  case 514:
5922 <
5923 < /* Line 1806 of yacc.c  */
6672 < #line 2835 "ircd_parser.y"
5921 >  case 513:
5922 > /* Line 1792 of yacc.c  */
5923 > #line 2480 "conf_parser.y"
5924      {
5925    ConfigFileEntry.opers_bypass_callerid = yylval.number;
5926   }
5927      break;
5928  
5929 <  case 515:
5930 <
5931 < /* Line 1806 of yacc.c  */
6681 < #line 2840 "ircd_parser.y"
5929 >  case 514:
5930 > /* Line 1792 of yacc.c  */
5931 > #line 2485 "conf_parser.y"
5932      {
5933    ConfigFileEntry.pace_wait_simple = (yyvsp[(3) - (4)].number);
5934   }
5935      break;
5936  
5937 <  case 516:
5938 <
5939 < /* Line 1806 of yacc.c  */
6690 < #line 2845 "ircd_parser.y"
5937 >  case 515:
5938 > /* Line 1792 of yacc.c  */
5939 > #line 2490 "conf_parser.y"
5940      {
5941    ConfigFileEntry.short_motd = yylval.number;
5942   }
5943      break;
5944  
5945 <  case 517:
5946 <
5947 < /* Line 1806 of yacc.c  */
6699 < #line 2850 "ircd_parser.y"
5945 >  case 516:
5946 > /* Line 1792 of yacc.c  */
5947 > #line 2495 "conf_parser.y"
5948      {
5949    ConfigFileEntry.no_oper_flood = yylval.number;
5950   }
5951      break;
5952  
5953 <  case 518:
5954 <
5955 < /* Line 1806 of yacc.c  */
6708 < #line 2855 "ircd_parser.y"
5953 >  case 517:
5954 > /* Line 1792 of yacc.c  */
5955 > #line 2500 "conf_parser.y"
5956      {
5957    ConfigFileEntry.true_no_oper_flood = yylval.number;
5958   }
5959      break;
5960  
5961 <  case 519:
5962 <
5963 < /* Line 1806 of yacc.c  */
6717 < #line 2860 "ircd_parser.y"
5961 >  case 518:
5962 > /* Line 1792 of yacc.c  */
5963 > #line 2505 "conf_parser.y"
5964      {
5965    ConfigFileEntry.oper_pass_resv = yylval.number;
5966   }
5967      break;
5968  
5969 <  case 520:
5970 <
5971 < /* Line 1806 of yacc.c  */
6726 < #line 2865 "ircd_parser.y"
5969 >  case 519:
5970 > /* Line 1792 of yacc.c  */
5971 > #line 2510 "conf_parser.y"
5972      {
5973    if (conf_parser_ctx.pass == 2)
5974    {
# Line 6735 | Line 5980 | yyreduce:
5980   }
5981      break;
5982  
5983 <  case 521:
5984 <
5985 < /* Line 1806 of yacc.c  */
6741 < #line 2876 "ircd_parser.y"
5983 >  case 520:
5984 > /* Line 1792 of yacc.c  */
5985 > #line 2521 "conf_parser.y"
5986      {
5987    ConfigFileEntry.dots_in_ident = (yyvsp[(3) - (4)].number);
5988   }
5989      break;
5990  
5991 <  case 522:
5992 <
5993 < /* Line 1806 of yacc.c  */
6750 < #line 2881 "ircd_parser.y"
5991 >  case 521:
5992 > /* Line 1792 of yacc.c  */
5993 > #line 2526 "conf_parser.y"
5994      {
5995    ConfigFileEntry.max_targets = (yyvsp[(3) - (4)].number);
5996   }
5997      break;
5998  
5999 <  case 523:
6000 <
6001 < /* Line 1806 of yacc.c  */
6759 < #line 2886 "ircd_parser.y"
5999 >  case 522:
6000 > /* Line 1792 of yacc.c  */
6001 > #line 2531 "conf_parser.y"
6002      {
6003    ConfigFileEntry.use_egd = yylval.number;
6004   }
6005      break;
6006  
6007 <  case 524:
6008 <
6009 < /* Line 1806 of yacc.c  */
6768 < #line 2891 "ircd_parser.y"
6007 >  case 523:
6008 > /* Line 1792 of yacc.c  */
6009 > #line 2536 "conf_parser.y"
6010      {
6011    if (conf_parser_ctx.pass == 2)
6012    {
6013      MyFree(ConfigFileEntry.egdpool_path);
6014 <    DupString(ConfigFileEntry.egdpool_path, yylval.string);
6014 >    ConfigFileEntry.egdpool_path = xstrdup(yylval.string);
6015    }
6016   }
6017      break;
6018  
6019 <  case 525:
6020 <
6021 < /* Line 1806 of yacc.c  */
6781 < #line 2900 "ircd_parser.y"
6019 >  case 524:
6020 > /* Line 1792 of yacc.c  */
6021 > #line 2545 "conf_parser.y"
6022      {
6023    if (conf_parser_ctx.pass == 2 && valid_servname(yylval.string))
6024    {
6025      MyFree(ConfigFileEntry.service_name);
6026 <    DupString(ConfigFileEntry.service_name, yylval.string);
6026 >    ConfigFileEntry.service_name = xstrdup(yylval.string);
6027    }
6028   }
6029      break;
6030  
6031 <  case 526:
6032 <
6033 < /* Line 1806 of yacc.c  */
6794 < #line 2909 "ircd_parser.y"
6031 >  case 525:
6032 > /* Line 1792 of yacc.c  */
6033 > #line 2554 "conf_parser.y"
6034      {
6035    ConfigFileEntry.ping_cookie = yylval.number;
6036   }
6037      break;
6038  
6039 <  case 527:
6040 <
6041 < /* Line 1806 of yacc.c  */
6803 < #line 2914 "ircd_parser.y"
6039 >  case 526:
6040 > /* Line 1792 of yacc.c  */
6041 > #line 2559 "conf_parser.y"
6042      {
6043    ConfigFileEntry.disable_auth = yylval.number;
6044   }
6045      break;
6046  
6047 <  case 528:
6048 <
6049 < /* Line 1806 of yacc.c  */
6812 < #line 2919 "ircd_parser.y"
6047 >  case 527:
6048 > /* Line 1792 of yacc.c  */
6049 > #line 2564 "conf_parser.y"
6050      {
6051    ConfigFileEntry.throttle_time = yylval.number;
6052   }
6053      break;
6054  
6055 <  case 529:
6056 <
6057 < /* Line 1806 of yacc.c  */
6821 < #line 2924 "ircd_parser.y"
6055 >  case 528:
6056 > /* Line 1792 of yacc.c  */
6057 > #line 2569 "conf_parser.y"
6058      {
6059    ConfigFileEntry.oper_umodes = 0;
6060   }
6061      break;
6062  
6063 <  case 533:
6064 <
6065 < /* Line 1806 of yacc.c  */
6830 < #line 2930 "ircd_parser.y"
6063 >  case 532:
6064 > /* Line 1792 of yacc.c  */
6065 > #line 2575 "conf_parser.y"
6066      {
6067    ConfigFileEntry.oper_umodes |= UMODE_BOTS;
6068   }
6069      break;
6070  
6071 <  case 534:
6072 <
6073 < /* Line 1806 of yacc.c  */
6839 < #line 2933 "ircd_parser.y"
6071 >  case 533:
6072 > /* Line 1792 of yacc.c  */
6073 > #line 2578 "conf_parser.y"
6074      {
6075    ConfigFileEntry.oper_umodes |= UMODE_CCONN;
6076   }
6077      break;
6078  
6079 <  case 535:
6080 <
6081 < /* Line 1806 of yacc.c  */
6848 < #line 2936 "ircd_parser.y"
6079 >  case 534:
6080 > /* Line 1792 of yacc.c  */
6081 > #line 2581 "conf_parser.y"
6082      {
6083    ConfigFileEntry.oper_umodes |= UMODE_CCONN_FULL;
6084   }
6085      break;
6086  
6087 <  case 536:
6088 <
6089 < /* Line 1806 of yacc.c  */
6857 < #line 2939 "ircd_parser.y"
6087 >  case 535:
6088 > /* Line 1792 of yacc.c  */
6089 > #line 2584 "conf_parser.y"
6090      {
6091    ConfigFileEntry.oper_umodes |= UMODE_DEAF;
6092   }
6093      break;
6094  
6095 <  case 537:
6096 <
6097 < /* Line 1806 of yacc.c  */
6866 < #line 2942 "ircd_parser.y"
6095 >  case 536:
6096 > /* Line 1792 of yacc.c  */
6097 > #line 2587 "conf_parser.y"
6098      {
6099    ConfigFileEntry.oper_umodes |= UMODE_DEBUG;
6100   }
6101      break;
6102  
6103 <  case 538:
6104 <
6105 < /* Line 1806 of yacc.c  */
6875 < #line 2945 "ircd_parser.y"
6103 >  case 537:
6104 > /* Line 1792 of yacc.c  */
6105 > #line 2590 "conf_parser.y"
6106      {
6107    ConfigFileEntry.oper_umodes |= UMODE_FULL;
6108   }
6109      break;
6110  
6111 <  case 539:
6112 <
6113 < /* Line 1806 of yacc.c  */
6884 < #line 2948 "ircd_parser.y"
6111 >  case 538:
6112 > /* Line 1792 of yacc.c  */
6113 > #line 2593 "conf_parser.y"
6114      {
6115    ConfigFileEntry.oper_umodes |= UMODE_HIDDEN;
6116   }
6117      break;
6118  
6119 <  case 540:
6120 <
6121 < /* Line 1806 of yacc.c  */
6893 < #line 2951 "ircd_parser.y"
6119 >  case 539:
6120 > /* Line 1792 of yacc.c  */
6121 > #line 2596 "conf_parser.y"
6122      {
6123    ConfigFileEntry.oper_umodes |= UMODE_SKILL;
6124   }
6125      break;
6126  
6127 <  case 541:
6128 <
6129 < /* Line 1806 of yacc.c  */
6902 < #line 2954 "ircd_parser.y"
6127 >  case 540:
6128 > /* Line 1792 of yacc.c  */
6129 > #line 2599 "conf_parser.y"
6130      {
6131    ConfigFileEntry.oper_umodes |= UMODE_NCHANGE;
6132   }
6133      break;
6134  
6135 <  case 542:
6136 <
6137 < /* Line 1806 of yacc.c  */
6911 < #line 2957 "ircd_parser.y"
6135 >  case 541:
6136 > /* Line 1792 of yacc.c  */
6137 > #line 2602 "conf_parser.y"
6138      {
6139    ConfigFileEntry.oper_umodes |= UMODE_REJ;
6140   }
6141      break;
6142  
6143 <  case 543:
6144 <
6145 < /* Line 1806 of yacc.c  */
6920 < #line 2960 "ircd_parser.y"
6143 >  case 542:
6144 > /* Line 1792 of yacc.c  */
6145 > #line 2605 "conf_parser.y"
6146      {
6147    ConfigFileEntry.oper_umodes |= UMODE_UNAUTH;
6148   }
6149      break;
6150  
6151 <  case 544:
6152 <
6153 < /* Line 1806 of yacc.c  */
6929 < #line 2963 "ircd_parser.y"
6151 >  case 543:
6152 > /* Line 1792 of yacc.c  */
6153 > #line 2608 "conf_parser.y"
6154      {
6155    ConfigFileEntry.oper_umodes |= UMODE_SPY;
6156   }
6157      break;
6158  
6159 <  case 545:
6160 <
6161 < /* Line 1806 of yacc.c  */
6938 < #line 2966 "ircd_parser.y"
6159 >  case 544:
6160 > /* Line 1792 of yacc.c  */
6161 > #line 2611 "conf_parser.y"
6162      {
6163    ConfigFileEntry.oper_umodes |= UMODE_EXTERNAL;
6164   }
6165      break;
6166  
6167 <  case 546:
6168 <
6169 < /* Line 1806 of yacc.c  */
6947 < #line 2969 "ircd_parser.y"
6167 >  case 545:
6168 > /* Line 1792 of yacc.c  */
6169 > #line 2614 "conf_parser.y"
6170      {
6171    ConfigFileEntry.oper_umodes |= UMODE_OPERWALL;
6172   }
6173      break;
6174  
6175 <  case 547:
6176 <
6177 < /* Line 1806 of yacc.c  */
6956 < #line 2972 "ircd_parser.y"
6175 >  case 546:
6176 > /* Line 1792 of yacc.c  */
6177 > #line 2617 "conf_parser.y"
6178      {
6179    ConfigFileEntry.oper_umodes |= UMODE_SERVNOTICE;
6180   }
6181      break;
6182  
6183 <  case 548:
6184 <
6185 < /* Line 1806 of yacc.c  */
6965 < #line 2975 "ircd_parser.y"
6183 >  case 547:
6184 > /* Line 1792 of yacc.c  */
6185 > #line 2620 "conf_parser.y"
6186      {
6187    ConfigFileEntry.oper_umodes |= UMODE_INVISIBLE;
6188   }
6189      break;
6190  
6191 <  case 549:
6192 <
6193 < /* Line 1806 of yacc.c  */
6974 < #line 2978 "ircd_parser.y"
6191 >  case 548:
6192 > /* Line 1792 of yacc.c  */
6193 > #line 2623 "conf_parser.y"
6194      {
6195    ConfigFileEntry.oper_umodes |= UMODE_WALLOP;
6196   }
6197      break;
6198  
6199 <  case 550:
6200 <
6201 < /* Line 1806 of yacc.c  */
6983 < #line 2981 "ircd_parser.y"
6199 >  case 549:
6200 > /* Line 1792 of yacc.c  */
6201 > #line 2626 "conf_parser.y"
6202      {
6203    ConfigFileEntry.oper_umodes |= UMODE_SOFTCALLERID;
6204   }
6205      break;
6206  
6207 <  case 551:
6208 <
6209 < /* Line 1806 of yacc.c  */
6992 < #line 2984 "ircd_parser.y"
6207 >  case 550:
6208 > /* Line 1792 of yacc.c  */
6209 > #line 2629 "conf_parser.y"
6210      {
6211    ConfigFileEntry.oper_umodes |= UMODE_CALLERID;
6212   }
6213      break;
6214  
6215 <  case 552:
6216 <
6217 < /* Line 1806 of yacc.c  */
7001 < #line 2987 "ircd_parser.y"
6215 >  case 551:
6216 > /* Line 1792 of yacc.c  */
6217 > #line 2632 "conf_parser.y"
6218      {
6219    ConfigFileEntry.oper_umodes |= UMODE_LOCOPS;
6220   }
6221      break;
6222  
6223 <  case 553:
6224 <
6225 < /* Line 1806 of yacc.c  */
7010 < #line 2992 "ircd_parser.y"
6223 >  case 552:
6224 > /* Line 1792 of yacc.c  */
6225 > #line 2637 "conf_parser.y"
6226      {
6227    ConfigFileEntry.oper_only_umodes = 0;
6228   }
6229      break;
6230  
6231 <  case 557:
6232 <
6233 < /* Line 1806 of yacc.c  */
7019 < #line 2998 "ircd_parser.y"
6231 >  case 556:
6232 > /* Line 1792 of yacc.c  */
6233 > #line 2643 "conf_parser.y"
6234      {
6235    ConfigFileEntry.oper_only_umodes |= UMODE_BOTS;
6236   }
6237      break;
6238  
6239 <  case 558:
6240 <
6241 < /* Line 1806 of yacc.c  */
7028 < #line 3001 "ircd_parser.y"
6239 >  case 557:
6240 > /* Line 1792 of yacc.c  */
6241 > #line 2646 "conf_parser.y"
6242      {
6243    ConfigFileEntry.oper_only_umodes |= UMODE_CCONN;
6244   }
6245      break;
6246  
6247 <  case 559:
6248 <
6249 < /* Line 1806 of yacc.c  */
7037 < #line 3004 "ircd_parser.y"
6247 >  case 558:
6248 > /* Line 1792 of yacc.c  */
6249 > #line 2649 "conf_parser.y"
6250      {
6251    ConfigFileEntry.oper_only_umodes |= UMODE_CCONN_FULL;
6252   }
6253      break;
6254  
6255 <  case 560:
6256 <
6257 < /* Line 1806 of yacc.c  */
7046 < #line 3007 "ircd_parser.y"
6255 >  case 559:
6256 > /* Line 1792 of yacc.c  */
6257 > #line 2652 "conf_parser.y"
6258      {
6259    ConfigFileEntry.oper_only_umodes |= UMODE_DEAF;
6260   }
6261      break;
6262  
6263 <  case 561:
6264 <
6265 < /* Line 1806 of yacc.c  */
7055 < #line 3010 "ircd_parser.y"
6263 >  case 560:
6264 > /* Line 1792 of yacc.c  */
6265 > #line 2655 "conf_parser.y"
6266      {
6267    ConfigFileEntry.oper_only_umodes |= UMODE_DEBUG;
6268   }
6269      break;
6270  
6271 <  case 562:
6272 <
6273 < /* Line 1806 of yacc.c  */
7064 < #line 3013 "ircd_parser.y"
6271 >  case 561:
6272 > /* Line 1792 of yacc.c  */
6273 > #line 2658 "conf_parser.y"
6274      {
6275    ConfigFileEntry.oper_only_umodes |= UMODE_FULL;
6276   }
6277      break;
6278  
6279 <  case 563:
6280 <
6281 < /* Line 1806 of yacc.c  */
7073 < #line 3016 "ircd_parser.y"
6279 >  case 562:
6280 > /* Line 1792 of yacc.c  */
6281 > #line 2661 "conf_parser.y"
6282      {
6283    ConfigFileEntry.oper_only_umodes |= UMODE_SKILL;
6284   }
6285      break;
6286  
6287 <  case 564:
6288 <
6289 < /* Line 1806 of yacc.c  */
7082 < #line 3019 "ircd_parser.y"
6287 >  case 563:
6288 > /* Line 1792 of yacc.c  */
6289 > #line 2664 "conf_parser.y"
6290      {
6291    ConfigFileEntry.oper_only_umodes |= UMODE_HIDDEN;
6292   }
6293      break;
6294  
6295 <  case 565:
6296 <
6297 < /* Line 1806 of yacc.c  */
7091 < #line 3022 "ircd_parser.y"
6295 >  case 564:
6296 > /* Line 1792 of yacc.c  */
6297 > #line 2667 "conf_parser.y"
6298      {
6299    ConfigFileEntry.oper_only_umodes |= UMODE_NCHANGE;
6300   }
6301      break;
6302  
6303 <  case 566:
6304 <
6305 < /* Line 1806 of yacc.c  */
7100 < #line 3025 "ircd_parser.y"
6303 >  case 565:
6304 > /* Line 1792 of yacc.c  */
6305 > #line 2670 "conf_parser.y"
6306      {
6307    ConfigFileEntry.oper_only_umodes |= UMODE_REJ;
6308   }
6309      break;
6310  
6311 <  case 567:
6312 <
6313 < /* Line 1806 of yacc.c  */
7109 < #line 3028 "ircd_parser.y"
6311 >  case 566:
6312 > /* Line 1792 of yacc.c  */
6313 > #line 2673 "conf_parser.y"
6314      {
6315    ConfigFileEntry.oper_only_umodes |= UMODE_UNAUTH;
6316   }
6317      break;
6318  
6319 <  case 568:
6320 <
6321 < /* Line 1806 of yacc.c  */
7118 < #line 3031 "ircd_parser.y"
6319 >  case 567:
6320 > /* Line 1792 of yacc.c  */
6321 > #line 2676 "conf_parser.y"
6322      {
6323    ConfigFileEntry.oper_only_umodes |= UMODE_SPY;
6324   }
6325      break;
6326  
6327 <  case 569:
6328 <
6329 < /* Line 1806 of yacc.c  */
7127 < #line 3034 "ircd_parser.y"
6327 >  case 568:
6328 > /* Line 1792 of yacc.c  */
6329 > #line 2679 "conf_parser.y"
6330      {
6331    ConfigFileEntry.oper_only_umodes |= UMODE_EXTERNAL;
6332   }
6333      break;
6334  
6335 <  case 570:
6336 <
6337 < /* Line 1806 of yacc.c  */
7136 < #line 3037 "ircd_parser.y"
6335 >  case 569:
6336 > /* Line 1792 of yacc.c  */
6337 > #line 2682 "conf_parser.y"
6338      {
6339    ConfigFileEntry.oper_only_umodes |= UMODE_OPERWALL;
6340   }
6341      break;
6342  
6343 <  case 571:
6344 <
6345 < /* Line 1806 of yacc.c  */
7145 < #line 3040 "ircd_parser.y"
6343 >  case 570:
6344 > /* Line 1792 of yacc.c  */
6345 > #line 2685 "conf_parser.y"
6346      {
6347    ConfigFileEntry.oper_only_umodes |= UMODE_SERVNOTICE;
6348   }
6349      break;
6350  
6351 <  case 572:
6352 <
6353 < /* Line 1806 of yacc.c  */
7154 < #line 3043 "ircd_parser.y"
6351 >  case 571:
6352 > /* Line 1792 of yacc.c  */
6353 > #line 2688 "conf_parser.y"
6354      {
6355    ConfigFileEntry.oper_only_umodes |= UMODE_INVISIBLE;
6356   }
6357      break;
6358  
6359 <  case 573:
6360 <
6361 < /* Line 1806 of yacc.c  */
7163 < #line 3046 "ircd_parser.y"
6359 >  case 572:
6360 > /* Line 1792 of yacc.c  */
6361 > #line 2691 "conf_parser.y"
6362      {
6363    ConfigFileEntry.oper_only_umodes |= UMODE_WALLOP;
6364   }
6365      break;
6366  
6367 <  case 574:
6368 <
6369 < /* Line 1806 of yacc.c  */
7172 < #line 3049 "ircd_parser.y"
6367 >  case 573:
6368 > /* Line 1792 of yacc.c  */
6369 > #line 2694 "conf_parser.y"
6370      {
6371    ConfigFileEntry.oper_only_umodes |= UMODE_SOFTCALLERID;
6372   }
6373      break;
6374  
6375 <  case 575:
6376 <
6377 < /* Line 1806 of yacc.c  */
7181 < #line 3052 "ircd_parser.y"
6375 >  case 574:
6376 > /* Line 1792 of yacc.c  */
6377 > #line 2697 "conf_parser.y"
6378      {
6379    ConfigFileEntry.oper_only_umodes |= UMODE_CALLERID;
6380   }
6381      break;
6382  
6383 <  case 576:
6384 <
6385 < /* Line 1806 of yacc.c  */
7190 < #line 3055 "ircd_parser.y"
6383 >  case 575:
6384 > /* Line 1792 of yacc.c  */
6385 > #line 2700 "conf_parser.y"
6386      {
6387    ConfigFileEntry.oper_only_umodes |= UMODE_LOCOPS;
6388   }
6389      break;
6390  
6391 <  case 577:
6392 <
6393 < /* Line 1806 of yacc.c  */
7199 < #line 3060 "ircd_parser.y"
6391 >  case 576:
6392 > /* Line 1792 of yacc.c  */
6393 > #line 2705 "conf_parser.y"
6394      {
6395    ConfigFileEntry.min_nonwildcard = (yyvsp[(3) - (4)].number);
6396   }
6397      break;
6398  
6399 <  case 578:
6400 <
6401 < /* Line 1806 of yacc.c  */
7208 < #line 3065 "ircd_parser.y"
6399 >  case 577:
6400 > /* Line 1792 of yacc.c  */
6401 > #line 2710 "conf_parser.y"
6402      {
6403    ConfigFileEntry.min_nonwildcard_simple = (yyvsp[(3) - (4)].number);
6404   }
6405      break;
6406  
6407 <  case 579:
6408 <
6409 < /* Line 1806 of yacc.c  */
7217 < #line 3070 "ircd_parser.y"
6407 >  case 578:
6408 > /* Line 1792 of yacc.c  */
6409 > #line 2715 "conf_parser.y"
6410      {
6411    ConfigFileEntry.default_floodcount = (yyvsp[(3) - (4)].number);
6412   }
6413      break;
6414  
6415 <  case 580:
6416 <
6417 < /* Line 1806 of yacc.c  */
7226 < #line 3075 "ircd_parser.y"
7227 <    {
7228 <  ConfigFileEntry.client_flood = (yyvsp[(3) - (4)].number);
7229 < }
7230 <    break;
7231 <
7232 <  case 581:
7233 <
7234 < /* Line 1806 of yacc.c  */
7235 < #line 3084 "ircd_parser.y"
7236 <    {
7237 <  if (conf_parser_ctx.pass == 2)
7238 <  {
7239 <    yy_conf = make_conf_item(GDENY_TYPE);
7240 <    yy_aconf = map_to_conf(yy_conf);
7241 <  }
7242 < }
7243 <    break;
7244 <
7245 <  case 582:
7246 <
7247 < /* Line 1806 of yacc.c  */
7248 < #line 3091 "ircd_parser.y"
6415 >  case 597:
6416 > /* Line 1792 of yacc.c  */
6417 > #line 2738 "conf_parser.y"
6418      {
6419 <  if (conf_parser_ctx.pass == 2)
7251 <  {
7252 <    /*
7253 <     * since we re-allocate yy_conf/yy_aconf after the end of action=, at the
7254 <     * end we will have one extra, so we should free it.
7255 <     */
7256 <    if (yy_conf->name == NULL || yy_aconf->user == NULL)
7257 <    {
7258 <      delete_conf_item(yy_conf);
7259 <      yy_conf = NULL;
7260 <      yy_aconf = NULL;
7261 <    }
7262 <  }
7263 < }
7264 <    break;
7265 <
7266 <  case 592:
7267 <
7268 < /* Line 1806 of yacc.c  */
7269 < #line 3117 "ircd_parser.y"
7270 <    {
7271 <  if (conf_parser_ctx.pass == 2)
7272 <    ConfigFileEntry.glines = yylval.number;
7273 < }
7274 <    break;
7275 <
7276 <  case 593:
7277 <
7278 < /* Line 1806 of yacc.c  */
7279 < #line 3123 "ircd_parser.y"
7280 <    {
7281 <  if (conf_parser_ctx.pass == 2)
7282 <    ConfigFileEntry.gline_time = (yyvsp[(3) - (4)].number);
7283 < }
7284 <    break;
7285 <
7286 <  case 594:
7287 <
7288 < /* Line 1806 of yacc.c  */
7289 < #line 3129 "ircd_parser.y"
7290 <    {
7291 <  if (conf_parser_ctx.pass == 2)
7292 <    ConfigFileEntry.gline_logging = 0;
6419 >  ConfigChannel.disable_fake_channels = yylval.number;
6420   }
6421      break;
6422  
6423    case 598:
6424 <
6425 < /* Line 1806 of yacc.c  */
7299 < #line 3135 "ircd_parser.y"
6424 > /* Line 1792 of yacc.c  */
6425 > #line 2743 "conf_parser.y"
6426      {
6427 <  if (conf_parser_ctx.pass == 2)
7302 <    ConfigFileEntry.gline_logging |= GDENY_REJECT;
6427 >  ConfigChannel.restrict_channels = yylval.number;
6428   }
6429      break;
6430  
6431    case 599:
6432 <
6433 < /* Line 1806 of yacc.c  */
7309 < #line 3139 "ircd_parser.y"
6432 > /* Line 1792 of yacc.c  */
6433 > #line 2748 "conf_parser.y"
6434      {
6435 <  if (conf_parser_ctx.pass == 2)
7312 <    ConfigFileEntry.gline_logging |= GDENY_BLOCK;
6435 >  ConfigChannel.knock_delay = (yyvsp[(3) - (4)].number);
6436   }
6437      break;
6438  
6439    case 600:
6440 <
6441 < /* Line 1806 of yacc.c  */
7319 < #line 3145 "ircd_parser.y"
6440 > /* Line 1792 of yacc.c  */
6441 > #line 2753 "conf_parser.y"
6442      {
6443 <  if (conf_parser_ctx.pass == 2)
7322 <  {
7323 <    struct split_nuh_item nuh;
7324 <
7325 <    nuh.nuhmask  = yylval.string;
7326 <    nuh.nickptr  = NULL;
7327 <    nuh.userptr  = userbuf;
7328 <    nuh.hostptr  = hostbuf;
7329 <
7330 <    nuh.nicksize = 0;
7331 <    nuh.usersize = sizeof(userbuf);
7332 <    nuh.hostsize = sizeof(hostbuf);
7333 <
7334 <    split_nuh(&nuh);
7335 <
7336 <    if (yy_aconf->user == NULL)
7337 <    {
7338 <      DupString(yy_aconf->user, userbuf);
7339 <      DupString(yy_aconf->host, hostbuf);
7340 <    }
7341 <    else
7342 <    {
7343 <      struct CollectItem *yy_tmp = MyMalloc(sizeof(struct CollectItem));
7344 <
7345 <      DupString(yy_tmp->user, userbuf);
7346 <      DupString(yy_tmp->host, hostbuf);
7347 <
7348 <      dlinkAdd(yy_tmp, &yy_tmp->node, &col_conf_list);
7349 <    }
7350 <  }
6443 >  ConfigChannel.knock_delay_channel = (yyvsp[(3) - (4)].number);
6444   }
6445      break;
6446  
6447    case 601:
6448 <
6449 < /* Line 1806 of yacc.c  */
7357 < #line 3179 "ircd_parser.y"
6448 > /* Line 1792 of yacc.c  */
6449 > #line 2758 "conf_parser.y"
6450      {
6451 <  if (conf_parser_ctx.pass == 2)  
7360 <  {
7361 <    MyFree(yy_conf->name);
7362 <    DupString(yy_conf->name, yylval.string);
7363 <  }
6451 >  ConfigChannel.max_chans_per_user = (yyvsp[(3) - (4)].number);
6452   }
6453      break;
6454  
6455    case 602:
6456 <
6457 < /* Line 1806 of yacc.c  */
7370 < #line 3188 "ircd_parser.y"
6456 > /* Line 1792 of yacc.c  */
6457 > #line 2763 "conf_parser.y"
6458      {
6459 <  if (conf_parser_ctx.pass == 2)
7373 <    yy_aconf->flags = 0;
6459 >  ConfigChannel.max_chans_per_oper = (yyvsp[(3) - (4)].number);
6460   }
6461      break;
6462  
6463    case 603:
6464 <
6465 < /* Line 1806 of yacc.c  */
7380 < #line 3192 "ircd_parser.y"
7381 <    {
7382 <  if (conf_parser_ctx.pass == 2)
7383 <  {
7384 <    struct CollectItem *yy_tmp = NULL;
7385 <    dlink_node *ptr, *next_ptr;
7386 <
7387 <    DLINK_FOREACH_SAFE(ptr, next_ptr, col_conf_list.head)
7388 <    {
7389 <      struct AccessItem *new_aconf;
7390 <      struct ConfItem *new_conf;
7391 <
7392 <      yy_tmp = ptr->data;
7393 <      new_conf = make_conf_item(GDENY_TYPE);
7394 <      new_aconf = map_to_conf(new_conf);
7395 <
7396 <      new_aconf->flags = yy_aconf->flags;
7397 <
7398 <      if (yy_conf->name != NULL)
7399 <        DupString(new_conf->name, yy_conf->name);
7400 <      else
7401 <        DupString(new_conf->name, "*");
7402 <      if (yy_aconf->user != NULL)
7403 <         DupString(new_aconf->user, yy_tmp->user);
7404 <      else  
7405 <        DupString(new_aconf->user, "*");
7406 <      if (yy_aconf->host != NULL)
7407 <        DupString(new_aconf->host, yy_tmp->host);
7408 <      else
7409 <        DupString(new_aconf->host, "*");
7410 <
7411 <      dlinkDelete(&yy_tmp->node, &col_conf_list);
7412 <    }
7413 <
7414 <    /*
7415 <     * In case someone has fed us with more than one action= after user/name
7416 <     * which would leak memory  -Michael
7417 <     */
7418 <    if (yy_conf->name == NULL || yy_aconf->user == NULL)
7419 <      delete_conf_item(yy_conf);
7420 <
7421 <    yy_conf = make_conf_item(GDENY_TYPE);
7422 <    yy_aconf = map_to_conf(yy_conf);
7423 <  }
7424 < }
7425 <    break;
7426 <
7427 <  case 606:
7428 <
7429 < /* Line 1806 of yacc.c  */
7430 < #line 3239 "ircd_parser.y"
7431 <    {
7432 <  if (conf_parser_ctx.pass == 2)
7433 <    yy_aconf->flags |= GDENY_REJECT;
7434 < }
7435 <    break;
7436 <
7437 <  case 607:
7438 <
7439 < /* Line 1806 of yacc.c  */
7440 < #line 3243 "ircd_parser.y"
7441 <    {
7442 <  if (conf_parser_ctx.pass == 2)
7443 <    yy_aconf->flags |= GDENY_BLOCK;
7444 < }
7445 <    break;
7446 <
7447 <  case 630:
7448 <
7449 < /* Line 1806 of yacc.c  */
7450 < #line 3267 "ircd_parser.y"
7451 <    {
7452 <  ConfigChannel.disable_fake_channels = yylval.number;
7453 < }
7454 <    break;
7455 <
7456 <  case 631:
7457 <
7458 < /* Line 1806 of yacc.c  */
7459 < #line 3272 "ircd_parser.y"
7460 <    {
7461 <  ConfigChannel.restrict_channels = yylval.number;
7462 < }
7463 <    break;
7464 <
7465 <  case 632:
7466 <
7467 < /* Line 1806 of yacc.c  */
7468 < #line 3277 "ircd_parser.y"
7469 <    {
7470 <  ConfigChannel.disable_local_channels = yylval.number;
7471 < }
7472 <    break;
7473 <
7474 <  case 633:
7475 <
7476 < /* Line 1806 of yacc.c  */
7477 < #line 3282 "ircd_parser.y"
7478 <    {
7479 <  ConfigChannel.use_except = yylval.number;
7480 < }
7481 <    break;
7482 <
7483 <  case 634:
7484 <
7485 < /* Line 1806 of yacc.c  */
7486 < #line 3287 "ircd_parser.y"
7487 <    {
7488 <  ConfigChannel.use_invex = yylval.number;
7489 < }
7490 <    break;
7491 <
7492 <  case 635:
7493 <
7494 < /* Line 1806 of yacc.c  */
7495 < #line 3292 "ircd_parser.y"
7496 <    {
7497 <  ConfigChannel.use_knock = yylval.number;
7498 < }
7499 <    break;
7500 <
7501 <  case 636:
7502 <
7503 < /* Line 1806 of yacc.c  */
7504 < #line 3297 "ircd_parser.y"
7505 <    {
7506 <  ConfigChannel.knock_delay = (yyvsp[(3) - (4)].number);
7507 < }
7508 <    break;
7509 <
7510 <  case 637:
7511 <
7512 < /* Line 1806 of yacc.c  */
7513 < #line 3302 "ircd_parser.y"
7514 <    {
7515 <  ConfigChannel.knock_delay_channel = (yyvsp[(3) - (4)].number);
7516 < }
7517 <    break;
7518 <
7519 <  case 638:
7520 <
7521 < /* Line 1806 of yacc.c  */
7522 < #line 3307 "ircd_parser.y"
7523 <    {
7524 <  ConfigChannel.max_chans_per_user = (yyvsp[(3) - (4)].number);
7525 < }
7526 <    break;
7527 <
7528 <  case 639:
7529 <
7530 < /* Line 1806 of yacc.c  */
7531 < #line 3312 "ircd_parser.y"
6464 > /* Line 1792 of yacc.c  */
6465 > #line 2768 "conf_parser.y"
6466      {
6467    ConfigChannel.quiet_on_ban = yylval.number;
6468   }
6469      break;
6470  
6471 <  case 640:
6472 <
6473 < /* Line 1806 of yacc.c  */
7540 < #line 3317 "ircd_parser.y"
6471 >  case 604:
6472 > /* Line 1792 of yacc.c  */
6473 > #line 2773 "conf_parser.y"
6474      {
6475    ConfigChannel.max_bans = (yyvsp[(3) - (4)].number);
6476   }
6477      break;
6478  
6479 <  case 641:
6480 <
6481 < /* Line 1806 of yacc.c  */
7549 < #line 3322 "ircd_parser.y"
6479 >  case 605:
6480 > /* Line 1792 of yacc.c  */
6481 > #line 2778 "conf_parser.y"
6482      {
6483    ConfigChannel.default_split_user_count = (yyvsp[(3) - (4)].number);
6484   }
6485      break;
6486  
6487 <  case 642:
6488 <
6489 < /* Line 1806 of yacc.c  */
7558 < #line 3327 "ircd_parser.y"
6487 >  case 606:
6488 > /* Line 1792 of yacc.c  */
6489 > #line 2783 "conf_parser.y"
6490      {
6491    ConfigChannel.default_split_server_count = (yyvsp[(3) - (4)].number);
6492   }
6493      break;
6494  
6495 <  case 643:
6496 <
6497 < /* Line 1806 of yacc.c  */
7567 < #line 3332 "ircd_parser.y"
6495 >  case 607:
6496 > /* Line 1792 of yacc.c  */
6497 > #line 2788 "conf_parser.y"
6498      {
6499    ConfigChannel.no_create_on_split = yylval.number;
6500   }
6501      break;
6502  
6503 <  case 644:
6504 <
6505 < /* Line 1806 of yacc.c  */
7576 < #line 3337 "ircd_parser.y"
6503 >  case 608:
6504 > /* Line 1792 of yacc.c  */
6505 > #line 2793 "conf_parser.y"
6506      {
6507    ConfigChannel.no_join_on_split = yylval.number;
6508   }
6509      break;
6510  
6511 <  case 645:
6512 <
6513 < /* Line 1806 of yacc.c  */
7585 < #line 3342 "ircd_parser.y"
7586 <    {
7587 <  ConfigChannel.burst_topicwho = yylval.number;
7588 < }
7589 <    break;
7590 <
7591 <  case 646:
7592 <
7593 < /* Line 1806 of yacc.c  */
7594 < #line 3347 "ircd_parser.y"
6511 >  case 609:
6512 > /* Line 1792 of yacc.c  */
6513 > #line 2798 "conf_parser.y"
6514      {
6515    GlobalSetOptions.joinfloodcount = yylval.number;
6516   }
6517      break;
6518  
6519 <  case 647:
6520 <
6521 < /* Line 1806 of yacc.c  */
7603 < #line 3352 "ircd_parser.y"
6519 >  case 610:
6520 > /* Line 1792 of yacc.c  */
6521 > #line 2803 "conf_parser.y"
6522      {
6523    GlobalSetOptions.joinfloodtime = yylval.number;
6524   }
6525      break;
6526  
6527 <  case 659:
6528 <
6529 < /* Line 1806 of yacc.c  */
7612 < #line 3371 "ircd_parser.y"
6527 >  case 621:
6528 > /* Line 1792 of yacc.c  */
6529 > #line 2821 "conf_parser.y"
6530      {
6531    if (conf_parser_ctx.pass == 2)
6532      ConfigServerHide.flatten_links = yylval.number;
6533   }
6534      break;
6535  
6536 <  case 660:
6537 <
6538 < /* Line 1806 of yacc.c  */
7622 < #line 3377 "ircd_parser.y"
6536 >  case 622:
6537 > /* Line 1792 of yacc.c  */
6538 > #line 2827 "conf_parser.y"
6539      {
6540    if (conf_parser_ctx.pass == 2)
6541      ConfigServerHide.hide_servers = yylval.number;
6542   }
6543      break;
6544  
6545 <  case 661:
6546 <
6547 < /* Line 1806 of yacc.c  */
7632 < #line 3383 "ircd_parser.y"
6545 >  case 623:
6546 > /* Line 1792 of yacc.c  */
6547 > #line 2833 "conf_parser.y"
6548      {
6549    if (conf_parser_ctx.pass == 2)
6550    {
6551      MyFree(ConfigServerHide.hidden_name);
6552 <    DupString(ConfigServerHide.hidden_name, yylval.string);
6552 >    ConfigServerHide.hidden_name = xstrdup(yylval.string);
6553    }
6554   }
6555      break;
6556  
6557 <  case 662:
6558 <
6559 < /* Line 1806 of yacc.c  */
7645 < #line 3392 "ircd_parser.y"
6557 >  case 624:
6558 > /* Line 1792 of yacc.c  */
6559 > #line 2842 "conf_parser.y"
6560      {
6561    if (conf_parser_ctx.pass == 2)
6562    {
# Line 7657 | Line 6571 | yyreduce:
6571   }
6572      break;
6573  
6574 <  case 663:
6575 <
6576 < /* Line 1806 of yacc.c  */
7663 < #line 3406 "ircd_parser.y"
6574 >  case 625:
6575 > /* Line 1792 of yacc.c  */
6576 > #line 2856 "conf_parser.y"
6577      {
6578    if (conf_parser_ctx.pass == 2)
6579      ConfigServerHide.hidden = yylval.number;
6580   }
6581      break;
6582  
6583 <  case 664:
6584 <
6585 < /* Line 1806 of yacc.c  */
7673 < #line 3412 "ircd_parser.y"
7674 <    {
7675 <  if (conf_parser_ctx.pass == 2)
7676 <    ConfigServerHide.disable_hidden = yylval.number;
7677 < }
7678 <    break;
7679 <
7680 <  case 665:
7681 <
7682 < /* Line 1806 of yacc.c  */
7683 < #line 3418 "ircd_parser.y"
6583 >  case 626:
6584 > /* Line 1792 of yacc.c  */
6585 > #line 2862 "conf_parser.y"
6586      {
6587    if (conf_parser_ctx.pass == 2)
6588      ConfigServerHide.hide_server_ips = yylval.number;
# Line 7688 | Line 6590 | yyreduce:
6590      break;
6591  
6592  
6593 <
6594 < /* Line 1806 of yacc.c  */
7693 < #line 7694 "ircd_parser.c"
6593 > /* Line 1792 of yacc.c  */
6594 > #line 6595 "conf_parser.c"
6595        default: break;
6596      }
6597    /* User semantic actions sometimes alter yychar, and that requires
# Line 7853 | Line 6754 | yyerrlab1:
6754        YY_STACK_PRINT (yyss, yyssp);
6755      }
6756  
6757 +  YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
6758    *++yyvsp = yylval;
6759 +  YY_IGNORE_MAYBE_UNINITIALIZED_END
6760  
6761  
6762    /* Shift the error token.  */
# Line 7877 | Line 6780 | yyabortlab:
6780    yyresult = 1;
6781    goto yyreturn;
6782  
6783 < #if !defined(yyoverflow) || YYERROR_VERBOSE
6783 > #if !defined yyoverflow || YYERROR_VERBOSE
6784   /*-------------------------------------------------.
6785   | yyexhaustedlab -- memory exhaustion comes here.  |
6786   `-------------------------------------------------*/
# Line 7919 | Line 6822 | yyreturn:
6822   }
6823  
6824  
7922

Comparing:
ircd-hybrid-8/src/conf_parser.c (property svn:keywords), Revision 1309 by michael, Sun Mar 25 11:24:18 2012 UTC vs.
ircd-hybrid/trunk/src/conf_parser.c (property svn:keywords), Revision 1715 by michael, Mon Dec 24 15:19:32 2012 UTC

# Line 0 | Line 1
1 + Id Revision

Diff Legend

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