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

Comparing:
ircd-hybrid-8/src/ircd_parser.c (file contents), Revision 1302 by michael, Wed Mar 21 17:48:54 2012 UTC vs.
ircd-hybrid/trunk/src/conf_parser.c (file contents), Revision 1904 by michael, Sat Apr 27 21:16:22 2013 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.12-4996.  */
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-2013 Free Software Foundation, Inc.
6    
7     This program is free software: you can redistribute it and/or modify
8     it under the terms of the GNU General Public License as published by
# Line 44 | Line 44
44   #define YYBISON 1
45  
46   /* Bison version.  */
47 < #define YYBISON_VERSION "2.5"
47 > #define YYBISON_VERSION "2.7.12-4996"
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 77 | Line 74
74   #include "stdinc.h"
75   #include "ircd.h"
76   #include "list.h"
77 < #include "s_conf.h"
77 > #include "conf.h"
78 > #include "conf_class.h"
79   #include "event.h"
80 < #include "s_log.h"
80 > #include "log.h"
81   #include "client.h"     /* for UMODE_ALL only */
82   #include "irc_string.h"
85 #include "sprintf_irc.h"
83   #include "memory.h"
84   #include "modules.h"
85   #include "s_serv.h"
# Line 97 | Line 94
94   #include <openssl/rsa.h>
95   #include <openssl/bio.h>
96   #include <openssl/pem.h>
97 + #include <openssl/dh.h>
98   #endif
99  
100 < static char *class_name = NULL;
103 < static struct ConfItem *yy_conf = NULL;
104 < static struct AccessItem *yy_aconf = NULL;
105 < static struct MatchItem *yy_match_item = NULL;
106 < static struct ClassItem *yy_class = NULL;
107 < static char *yy_class_name = NULL;
108 <
109 < static dlink_list col_conf_list  = { NULL, NULL, 0 };
110 < static dlink_list hub_conf_list  = { NULL, NULL, 0 };
111 < static dlink_list leaf_conf_list = { NULL, NULL, 0 };
112 < static unsigned int listener_flags = 0;
113 < static unsigned int regex_ban = 0;
114 < static char userbuf[IRCD_BUFSIZE];
115 < static char hostbuf[IRCD_BUFSIZE];
116 < static char reasonbuf[REASONLEN + 1];
117 < static char gecos_name[REALLEN * 4];
118 < static char lfile[IRCD_BUFSIZE];
119 < static unsigned int ltype = 0;
120 < static unsigned int lsize = 0;
121 < static char *resv_reason = NULL;
122 < static char *listener_address = NULL;
100 > #include "rsa.h"
101  
102 < struct CollectItem
125 < {
126 <  dlink_node node;
127 <  char *name;
128 <  char *user;
129 <  char *host;
130 <  char *passwd;
131 <  int  port;
132 <  int  flags;
133 < #ifdef HAVE_LIBCRYPTO
134 <  char *rsa_public_key_file;
135 <  RSA *rsa_public_key;
136 < #endif
137 < };
102 > int yylex(void);
103  
104 < static void
140 < free_collect_item(struct CollectItem *item)
104 > static struct
105   {
106 <  MyFree(item->name);
107 <  MyFree(item->user);
108 <  MyFree(item->host);
109 <  MyFree(item->passwd);
110 < #ifdef HAVE_LIBCRYPTO
111 <  MyFree(item->rsa_public_key_file);
112 < #endif
113 <  MyFree(item);
114 < }
106 >  struct {
107 >    dlink_list list;
108 >  } mask,
109 >    leaf,
110 >    hub;
111 >
112 >  struct {
113 >    char buf[IRCD_BUFSIZE];
114 >  } name,
115 >    user,
116 >    host,
117 >    addr,
118 >    bind,
119 >    file,
120 >    ciph,
121 >    rpass,
122 >    spass,
123 >    class;
124 >
125 >  struct {
126 >    unsigned int value;
127 >  } flags,
128 >    modes,
129 >    size,
130 >    type,
131 >    port,
132 >    aftype,
133 >    ping_freq,
134 >    max_perip,
135 >    con_freq,
136 >    min_idle,
137 >    max_idle,
138 >    max_total,
139 >    max_global,
140 >    max_local,
141 >    max_ident,
142 >    max_sendq,
143 >    max_recvq,
144 >    cidr_bitlen_ipv4,
145 >    cidr_bitlen_ipv6,
146 >    number_per_cidr;
147 > } block_state;
148  
149   static void
150 < unhook_hub_leaf_confs(void)
150 > reset_block_state(void)
151   {
152 <  dlink_node *ptr;
156 <  dlink_node *next_ptr;
157 <  struct CollectItem *yy_hconf;
158 <  struct CollectItem *yy_lconf;
152 >  dlink_node *ptr = NULL, *ptr_next = NULL;
153  
154 <  DLINK_FOREACH_SAFE(ptr, next_ptr, hub_conf_list.head)
154 >  DLINK_FOREACH_SAFE(ptr, ptr_next, block_state.mask.list.head)
155    {
156 <    yy_hconf = ptr->data;
157 <    dlinkDelete(&yy_hconf->node, &hub_conf_list);
158 <    free_collect_item(yy_hconf);
156 >    MyFree(ptr->data);
157 >    dlinkDelete(ptr, &block_state.mask.list);
158 >    free_dlink_node(ptr);
159    }
160  
161 <  DLINK_FOREACH_SAFE(ptr, next_ptr, leaf_conf_list.head)
161 >  DLINK_FOREACH_SAFE(ptr, ptr_next, block_state.leaf.list.head)
162    {
163 <    yy_lconf = ptr->data;
164 <    dlinkDelete(&yy_lconf->node, &leaf_conf_list);
165 <    free_collect_item(yy_lconf);
163 >    MyFree(ptr->data);
164 >    dlinkDelete(ptr, &block_state.leaf.list);
165 >    free_dlink_node(ptr);
166 >  }
167 >
168 >  DLINK_FOREACH_SAFE(ptr, ptr_next, block_state.hub.list.head)
169 >  {
170 >    MyFree(ptr->data);
171 >    dlinkDelete(ptr, &block_state.hub.list);
172 >    free_dlink_node(ptr);
173    }
173 }
174  
175 +  memset(&block_state, 0, sizeof(block_state));
176 + }
177  
178  
179 < /* Line 268 of yacc.c  */
180 < #line 179 "ircd_parser.c"
179 > /* Line 371 of yacc.c  */
180 > #line 181 "conf_parser.c"
181  
182 < /* Enabling traces.  */
183 < #ifndef YYDEBUG
184 < # define YYDEBUG 0
185 < #endif
182 > # ifndef YY_NULL
183 > #  if defined __cplusplus && 201103L <= __cplusplus
184 > #   define YY_NULL nullptr
185 > #  else
186 > #   define YY_NULL 0
187 > #  endif
188 > # endif
189  
190   /* Enabling verbose error messages.  */
191   #ifdef YYERROR_VERBOSE
# Line 190 | Line 195 | unhook_hub_leaf_confs(void)
195   # define YYERROR_VERBOSE 0
196   #endif
197  
198 < /* Enabling the token table.  */
199 < #ifndef YYTOKEN_TABLE
200 < # define YYTOKEN_TABLE 0
198 > /* In a future release of Bison, this section will be replaced
199 >   by #include "y.tab.h".  */
200 > #ifndef YY_YY_CONF_PARSER_H_INCLUDED
201 > # define YY_YY_CONF_PARSER_H_INCLUDED
202 > /* Enabling traces.  */
203 > #ifndef YYDEBUG
204 > # define YYDEBUG 0
205 > #endif
206 > #if YYDEBUG
207 > extern int yydebug;
208   #endif
197
209  
210   /* Tokens.  */
211   #ifndef YYTOKENTYPE
# Line 203 | Line 214 | unhook_hub_leaf_confs(void)
214        know about them.  */
215     enum yytokentype {
216       ACCEPT_PASSWORD = 258,
217 <     ACTION = 259,
218 <     ADMIN = 260,
219 <     AFTYPE = 261,
220 <     T_ALLOW = 262,
221 <     ANTI_NICK_FLOOD = 263,
222 <     ANTI_SPAM_EXIT_MESSAGE_TIME = 264,
223 <     AUTOCONN = 265,
224 <     T_BLOCK = 266,
225 <     BURST_AWAY = 267,
226 <     BURST_TOPICWHO = 268,
227 <     BYTES = 269,
228 <     KBYTES = 270,
229 <     MBYTES = 271,
230 <     GBYTES = 272,
231 <     TBYTES = 273,
232 <     CALLER_ID_WAIT = 274,
233 <     CAN_FLOOD = 275,
234 <     CHANNEL = 276,
235 <     CIDR_BITLEN_IPV4 = 277,
236 <     CIDR_BITLEN_IPV6 = 278,
237 <     CLASS = 279,
238 <     CONNECT = 280,
239 <     CONNECTFREQ = 281,
240 <     DEFAULT_FLOODCOUNT = 282,
241 <     DEFAULT_SPLIT_SERVER_COUNT = 283,
242 <     DEFAULT_SPLIT_USER_COUNT = 284,
243 <     DENY = 285,
244 <     DESCRIPTION = 286,
245 <     DIE = 287,
246 <     DISABLE_AUTH = 288,
247 <     DISABLE_FAKE_CHANNELS = 289,
248 <     DISABLE_HIDDEN = 290,
249 <     DISABLE_LOCAL_CHANNELS = 291,
250 <     DISABLE_REMOTE_COMMANDS = 292,
251 <     DOTS_IN_IDENT = 293,
252 <     DURATION = 294,
253 <     EGDPOOL_PATH = 295,
254 <     EMAIL = 296,
255 <     ENABLE = 297,
256 <     ENCRYPTED = 298,
257 <     EXCEED_LIMIT = 299,
258 <     EXEMPT = 300,
259 <     FAILED_OPER_NOTICE = 301,
260 <     IRCD_FLAGS = 302,
261 <     FLATTEN_LINKS = 303,
262 <     GECOS = 304,
263 <     GENERAL = 305,
264 <     GLINE = 306,
265 <     GLINES = 307,
266 <     GLINE_EXEMPT = 308,
267 <     GLINE_TIME = 309,
268 <     GLINE_MIN_CIDR = 310,
269 <     GLINE_MIN_CIDR6 = 311,
270 <     GLOBAL_KILL = 312,
271 <     IRCD_AUTH = 313,
272 <     NEED_IDENT = 314,
273 <     HAVENT_READ_CONF = 315,
274 <     HIDDEN = 316,
275 <     HIDDEN_NAME = 317,
276 <     HIDE_SERVER_IPS = 318,
277 <     HIDE_SERVERS = 319,
278 <     HIDE_SPOOF_IPS = 320,
279 <     HOST = 321,
280 <     HUB = 322,
281 <     HUB_MASK = 323,
282 <     IGNORE_BOGUS_TS = 324,
283 <     INVISIBLE_ON_CONNECT = 325,
284 <     IP = 326,
285 <     KILL = 327,
286 <     KILL_CHASE_TIME_LIMIT = 328,
287 <     KLINE = 329,
288 <     KLINE_EXEMPT = 330,
289 <     KLINE_REASON = 331,
290 <     KLINE_WITH_REASON = 332,
291 <     KNOCK_DELAY = 333,
292 <     KNOCK_DELAY_CHANNEL = 334,
293 <     LEAF_MASK = 335,
294 <     LINKS_DELAY = 336,
295 <     LISTEN = 337,
296 <     T_LOG = 338,
297 <     MAX_ACCEPT = 339,
298 <     MAX_BANS = 340,
299 <     MAX_CHANS_PER_USER = 341,
300 <     MAX_GLOBAL = 342,
301 <     MAX_IDENT = 343,
302 <     MAX_LOCAL = 344,
303 <     MAX_NICK_CHANGES = 345,
304 <     MAX_NICK_TIME = 346,
305 <     MAX_NUMBER = 347,
306 <     MAX_TARGETS = 348,
307 <     MAX_WATCH = 349,
308 <     MESSAGE_LOCALE = 350,
309 <     MIN_NONWILDCARD = 351,
310 <     MIN_NONWILDCARD_SIMPLE = 352,
311 <     MODULE = 353,
312 <     MODULES = 354,
313 <     NAME = 355,
314 <     NEED_PASSWORD = 356,
315 <     NETWORK_DESC = 357,
316 <     NETWORK_NAME = 358,
317 <     NICK = 359,
318 <     NICK_CHANGES = 360,
319 <     NO_CREATE_ON_SPLIT = 361,
320 <     NO_JOIN_ON_SPLIT = 362,
321 <     NO_OPER_FLOOD = 363,
322 <     NO_TILDE = 364,
323 <     NUMBER = 365,
324 <     NUMBER_PER_IDENT = 366,
325 <     NUMBER_PER_CIDR = 367,
326 <     NUMBER_PER_IP = 368,
327 <     NUMBER_PER_IP_GLOBAL = 369,
328 <     OPERATOR = 370,
329 <     OPERS_BYPASS_CALLERID = 371,
330 <     OPER_ONLY_UMODES = 372,
331 <     OPER_PASS_RESV = 373,
332 <     OPER_SPY_T = 374,
333 <     OPER_UMODES = 375,
334 <     JOIN_FLOOD_COUNT = 376,
335 <     JOIN_FLOOD_TIME = 377,
336 <     PACE_WAIT = 378,
337 <     PACE_WAIT_SIMPLE = 379,
338 <     PASSWORD = 380,
339 <     PATH = 381,
340 <     PING_COOKIE = 382,
341 <     PING_TIME = 383,
342 <     PING_WARNING = 384,
343 <     PORT = 385,
344 <     QSTRING = 386,
345 <     QUIET_ON_BAN = 387,
346 <     REASON = 388,
347 <     REDIRPORT = 389,
348 <     REDIRSERV = 390,
349 <     REGEX_T = 391,
350 <     REHASH = 392,
351 <     TREJECT_HOLD_TIME = 393,
352 <     REMOTE = 394,
353 <     REMOTEBAN = 395,
354 <     RESTRICT_CHANNELS = 396,
355 <     RESTRICTED = 397,
356 <     RSA_PRIVATE_KEY_FILE = 398,
357 <     RSA_PUBLIC_KEY_FILE = 399,
358 <     SSL_CERTIFICATE_FILE = 400,
359 <     T_SSL_CONNECTION_METHOD = 401,
360 <     T_SSLV3 = 402,
361 <     T_TLSV1 = 403,
362 <     RESV = 404,
363 <     RESV_EXEMPT = 405,
364 <     SECONDS = 406,
365 <     MINUTES = 407,
366 <     HOURS = 408,
367 <     DAYS = 409,
368 <     WEEKS = 410,
369 <     SENDQ = 411,
370 <     SEND_PASSWORD = 412,
371 <     SERVERHIDE = 413,
372 <     SERVERINFO = 414,
373 <     IRCD_SID = 415,
374 <     TKLINE_EXPIRE_NOTICES = 416,
375 <     T_SHARED = 417,
376 <     T_CLUSTER = 418,
377 <     TYPE = 419,
378 <     SHORT_MOTD = 420,
379 <     SILENT = 421,
380 <     SPOOF = 422,
381 <     SPOOF_NOTICE = 423,
382 <     STATS_E_DISABLED = 424,
383 <     STATS_I_OPER_ONLY = 425,
384 <     STATS_K_OPER_ONLY = 426,
385 <     STATS_O_OPER_ONLY = 427,
386 <     STATS_P_OPER_ONLY = 428,
387 <     TBOOL = 429,
388 <     TMASKED = 430,
389 <     T_REJECT = 431,
390 <     TS_MAX_DELTA = 432,
391 <     TS_WARN_DELTA = 433,
392 <     TWODOTS = 434,
393 <     T_ALL = 435,
394 <     T_BOTS = 436,
395 <     T_SOFTCALLERID = 437,
396 <     T_CALLERID = 438,
397 <     T_CCONN = 439,
398 <     T_CCONN_FULL = 440,
399 <     T_CLIENT_FLOOD = 441,
400 <     T_DEAF = 442,
401 <     T_DEBUG = 443,
402 <     T_DLINE = 444,
403 <     T_DRONE = 445,
404 <     T_EXTERNAL = 446,
405 <     T_FULL = 447,
406 <     T_INVISIBLE = 448,
407 <     T_IPV4 = 449,
408 <     T_IPV6 = 450,
409 <     T_LOCOPS = 451,
410 <     T_MAX_CLIENTS = 452,
411 <     T_NCHANGE = 453,
412 <     T_OPERWALL = 454,
413 <     T_REJ = 455,
414 <     T_SERVER = 456,
415 <     T_SERVNOTICE = 457,
416 <     T_SKILL = 458,
417 <     T_SPY = 459,
418 <     T_SSL = 460,
419 <     T_UMODES = 461,
420 <     T_UNAUTH = 462,
421 <     T_UNDLINE = 463,
422 <     T_UNLIMITED = 464,
423 <     T_UNRESV = 465,
424 <     T_UNXLINE = 466,
425 <     T_GLOBOPS = 467,
426 <     T_WALLOP = 468,
427 <     T_RESTART = 469,
428 <     T_SERVICE = 470,
429 <     T_SERVICES_NAME = 471,
430 <     T_TIMESTAMP = 472,
431 <     THROTTLE_TIME = 473,
432 <     TOPICBURST = 474,
433 <     TRUE_NO_OPER_FLOOD = 475,
434 <     TKLINE = 476,
435 <     TXLINE = 477,
425 <     TRESV = 478,
426 <     UNKLINE = 479,
427 <     USER = 480,
428 <     USE_EGD = 481,
429 <     USE_EXCEPT = 482,
430 <     USE_INVEX = 483,
431 <     USE_KNOCK = 484,
432 <     USE_LOGGING = 485,
433 <     USE_WHOIS_ACTUALLY = 486,
434 <     VHOST = 487,
435 <     VHOST6 = 488,
436 <     XLINE = 489,
437 <     WARN = 490,
438 <     WARN_NO_NLINE = 491,
439 <     T_SIZE = 492,
440 <     T_FILE = 493
217 >     ADMIN = 259,
218 >     AFTYPE = 260,
219 >     ANTI_NICK_FLOOD = 261,
220 >     ANTI_SPAM_EXIT_MESSAGE_TIME = 262,
221 >     AUTOCONN = 263,
222 >     BYTES = 264,
223 >     KBYTES = 265,
224 >     MBYTES = 266,
225 >     CALLER_ID_WAIT = 267,
226 >     CAN_FLOOD = 268,
227 >     CHANNEL = 269,
228 >     CIDR_BITLEN_IPV4 = 270,
229 >     CIDR_BITLEN_IPV6 = 271,
230 >     CLASS = 272,
231 >     CONNECT = 273,
232 >     CONNECTFREQ = 274,
233 >     DEFAULT_FLOODCOUNT = 275,
234 >     DEFAULT_SPLIT_SERVER_COUNT = 276,
235 >     DEFAULT_SPLIT_USER_COUNT = 277,
236 >     DENY = 278,
237 >     DESCRIPTION = 279,
238 >     DIE = 280,
239 >     DISABLE_AUTH = 281,
240 >     DISABLE_FAKE_CHANNELS = 282,
241 >     DISABLE_REMOTE_COMMANDS = 283,
242 >     DOTS_IN_IDENT = 284,
243 >     EGDPOOL_PATH = 285,
244 >     EMAIL = 286,
245 >     ENCRYPTED = 287,
246 >     EXCEED_LIMIT = 288,
247 >     EXEMPT = 289,
248 >     FAILED_OPER_NOTICE = 290,
249 >     IRCD_FLAGS = 291,
250 >     FLATTEN_LINKS = 292,
251 >     GECOS = 293,
252 >     GENERAL = 294,
253 >     GLINE = 295,
254 >     GLINE_DURATION = 296,
255 >     GLINE_ENABLE = 297,
256 >     GLINE_EXEMPT = 298,
257 >     GLINE_REQUEST_DURATION = 299,
258 >     GLINE_MIN_CIDR = 300,
259 >     GLINE_MIN_CIDR6 = 301,
260 >     GLOBAL_KILL = 302,
261 >     IRCD_AUTH = 303,
262 >     NEED_IDENT = 304,
263 >     HAVENT_READ_CONF = 305,
264 >     HIDDEN = 306,
265 >     HIDDEN_NAME = 307,
266 >     HIDE_SERVER_IPS = 308,
267 >     HIDE_SERVERS = 309,
268 >     HIDE_SERVICES = 310,
269 >     HIDE_SPOOF_IPS = 311,
270 >     HOST = 312,
271 >     HUB = 313,
272 >     HUB_MASK = 314,
273 >     IGNORE_BOGUS_TS = 315,
274 >     INVISIBLE_ON_CONNECT = 316,
275 >     IP = 317,
276 >     KILL = 318,
277 >     KILL_CHASE_TIME_LIMIT = 319,
278 >     KLINE = 320,
279 >     KLINE_EXEMPT = 321,
280 >     KNOCK_DELAY = 322,
281 >     KNOCK_DELAY_CHANNEL = 323,
282 >     LEAF_MASK = 324,
283 >     LINKS_DELAY = 325,
284 >     LISTEN = 326,
285 >     T_LOG = 327,
286 >     MASK = 328,
287 >     MAX_ACCEPT = 329,
288 >     MAX_BANS = 330,
289 >     MAX_CHANS_PER_OPER = 331,
290 >     MAX_CHANS_PER_USER = 332,
291 >     MAX_GLOBAL = 333,
292 >     MAX_IDENT = 334,
293 >     MAX_LOCAL = 335,
294 >     MAX_NICK_CHANGES = 336,
295 >     MAX_NICK_LENGTH = 337,
296 >     MAX_NICK_TIME = 338,
297 >     MAX_NUMBER = 339,
298 >     MAX_TARGETS = 340,
299 >     MAX_TOPIC_LENGTH = 341,
300 >     MAX_WATCH = 342,
301 >     MIN_NONWILDCARD = 343,
302 >     MIN_NONWILDCARD_SIMPLE = 344,
303 >     MIN_IDLE = 345,
304 >     MAX_IDLE = 346,
305 >     RANDOM_IDLE = 347,
306 >     HIDE_IDLE_FROM_OPERS = 348,
307 >     MODULE = 349,
308 >     MODULES = 350,
309 >     NAME = 351,
310 >     NEED_PASSWORD = 352,
311 >     NETWORK_DESC = 353,
312 >     NETWORK_NAME = 354,
313 >     NICK = 355,
314 >     NO_CREATE_ON_SPLIT = 356,
315 >     NO_JOIN_ON_SPLIT = 357,
316 >     NO_OPER_FLOOD = 358,
317 >     NO_TILDE = 359,
318 >     NUMBER = 360,
319 >     NUMBER_PER_CIDR = 361,
320 >     NUMBER_PER_IP = 362,
321 >     OPERATOR = 363,
322 >     OPERS_BYPASS_CALLERID = 364,
323 >     OPER_ONLY_UMODES = 365,
324 >     OPER_PASS_RESV = 366,
325 >     OPER_SPY_T = 367,
326 >     OPER_UMODES = 368,
327 >     JOIN_FLOOD_COUNT = 369,
328 >     JOIN_FLOOD_TIME = 370,
329 >     PACE_WAIT = 371,
330 >     PACE_WAIT_SIMPLE = 372,
331 >     PASSWORD = 373,
332 >     PATH = 374,
333 >     PING_COOKIE = 375,
334 >     PING_TIME = 376,
335 >     PORT = 377,
336 >     QSTRING = 378,
337 >     QUIET_ON_BAN = 379,
338 >     REASON = 380,
339 >     REDIRPORT = 381,
340 >     REDIRSERV = 382,
341 >     REGEX_T = 383,
342 >     REHASH = 384,
343 >     REMOTE = 385,
344 >     REMOTEBAN = 386,
345 >     RSA_PRIVATE_KEY_FILE = 387,
346 >     RSA_PUBLIC_KEY_FILE = 388,
347 >     SSL_CERTIFICATE_FILE = 389,
348 >     SSL_DH_PARAM_FILE = 390,
349 >     T_SSL_CLIENT_METHOD = 391,
350 >     T_SSL_SERVER_METHOD = 392,
351 >     T_SSLV3 = 393,
352 >     T_TLSV1 = 394,
353 >     RESV = 395,
354 >     RESV_EXEMPT = 396,
355 >     SECONDS = 397,
356 >     MINUTES = 398,
357 >     HOURS = 399,
358 >     DAYS = 400,
359 >     WEEKS = 401,
360 >     MONTHS = 402,
361 >     YEARS = 403,
362 >     SENDQ = 404,
363 >     SEND_PASSWORD = 405,
364 >     SERVERHIDE = 406,
365 >     SERVERINFO = 407,
366 >     IRCD_SID = 408,
367 >     TKLINE_EXPIRE_NOTICES = 409,
368 >     T_SHARED = 410,
369 >     T_CLUSTER = 411,
370 >     TYPE = 412,
371 >     SHORT_MOTD = 413,
372 >     SPOOF = 414,
373 >     SPOOF_NOTICE = 415,
374 >     STATS_E_DISABLED = 416,
375 >     STATS_I_OPER_ONLY = 417,
376 >     STATS_K_OPER_ONLY = 418,
377 >     STATS_O_OPER_ONLY = 419,
378 >     STATS_P_OPER_ONLY = 420,
379 >     TBOOL = 421,
380 >     TMASKED = 422,
381 >     TS_MAX_DELTA = 423,
382 >     TS_WARN_DELTA = 424,
383 >     TWODOTS = 425,
384 >     T_ALL = 426,
385 >     T_BOTS = 427,
386 >     T_SOFTCALLERID = 428,
387 >     T_CALLERID = 429,
388 >     T_CCONN = 430,
389 >     T_CCONN_FULL = 431,
390 >     T_SSL_CIPHER_LIST = 432,
391 >     T_DEAF = 433,
392 >     T_DEBUG = 434,
393 >     T_DLINE = 435,
394 >     T_EXTERNAL = 436,
395 >     T_FULL = 437,
396 >     T_INVISIBLE = 438,
397 >     T_IPV4 = 439,
398 >     T_IPV6 = 440,
399 >     T_LOCOPS = 441,
400 >     T_MAX_CLIENTS = 442,
401 >     T_NCHANGE = 443,
402 >     T_NONONREG = 444,
403 >     T_OPERWALL = 445,
404 >     T_RECVQ = 446,
405 >     T_REJ = 447,
406 >     T_SERVER = 448,
407 >     T_SERVNOTICE = 449,
408 >     T_SET = 450,
409 >     T_SKILL = 451,
410 >     T_SPY = 452,
411 >     T_SSL = 453,
412 >     T_UMODES = 454,
413 >     T_UNAUTH = 455,
414 >     T_UNDLINE = 456,
415 >     T_UNLIMITED = 457,
416 >     T_UNRESV = 458,
417 >     T_UNXLINE = 459,
418 >     T_GLOBOPS = 460,
419 >     T_WALLOP = 461,
420 >     T_WEBIRC = 462,
421 >     T_RESTART = 463,
422 >     T_SERVICE = 464,
423 >     T_SERVICES_NAME = 465,
424 >     THROTTLE_TIME = 466,
425 >     TRUE_NO_OPER_FLOOD = 467,
426 >     UNKLINE = 468,
427 >     USER = 469,
428 >     USE_EGD = 470,
429 >     USE_LOGGING = 471,
430 >     VHOST = 472,
431 >     VHOST6 = 473,
432 >     XLINE = 474,
433 >     WARN_NO_NLINE = 475,
434 >     T_SIZE = 476,
435 >     T_FILE = 477
436     };
437   #endif
438   /* Tokens.  */
439   #define ACCEPT_PASSWORD 258
440 < #define ACTION 259
441 < #define ADMIN 260
442 < #define AFTYPE 261
443 < #define T_ALLOW 262
444 < #define ANTI_NICK_FLOOD 263
445 < #define ANTI_SPAM_EXIT_MESSAGE_TIME 264
446 < #define AUTOCONN 265
447 < #define T_BLOCK 266
448 < #define BURST_AWAY 267
449 < #define BURST_TOPICWHO 268
450 < #define BYTES 269
451 < #define KBYTES 270
452 < #define MBYTES 271
453 < #define GBYTES 272
454 < #define TBYTES 273
455 < #define CALLER_ID_WAIT 274
456 < #define CAN_FLOOD 275
457 < #define CHANNEL 276
458 < #define CIDR_BITLEN_IPV4 277
459 < #define CIDR_BITLEN_IPV6 278
460 < #define CLASS 279
461 < #define CONNECT 280
462 < #define CONNECTFREQ 281
463 < #define DEFAULT_FLOODCOUNT 282
464 < #define DEFAULT_SPLIT_SERVER_COUNT 283
465 < #define DEFAULT_SPLIT_USER_COUNT 284
466 < #define DENY 285
467 < #define DESCRIPTION 286
468 < #define DIE 287
469 < #define DISABLE_AUTH 288
470 < #define DISABLE_FAKE_CHANNELS 289
471 < #define DISABLE_HIDDEN 290
472 < #define DISABLE_LOCAL_CHANNELS 291
473 < #define DISABLE_REMOTE_COMMANDS 292
474 < #define DOTS_IN_IDENT 293
475 < #define DURATION 294
476 < #define EGDPOOL_PATH 295
477 < #define EMAIL 296
478 < #define ENABLE 297
479 < #define ENCRYPTED 298
480 < #define EXCEED_LIMIT 299
481 < #define EXEMPT 300
482 < #define FAILED_OPER_NOTICE 301
483 < #define IRCD_FLAGS 302
484 < #define FLATTEN_LINKS 303
485 < #define GECOS 304
486 < #define GENERAL 305
487 < #define GLINE 306
488 < #define GLINES 307
489 < #define GLINE_EXEMPT 308
490 < #define GLINE_TIME 309
491 < #define GLINE_MIN_CIDR 310
492 < #define GLINE_MIN_CIDR6 311
493 < #define GLOBAL_KILL 312
494 < #define IRCD_AUTH 313
495 < #define NEED_IDENT 314
496 < #define HAVENT_READ_CONF 315
497 < #define HIDDEN 316
498 < #define HIDDEN_NAME 317
499 < #define HIDE_SERVER_IPS 318
500 < #define HIDE_SERVERS 319
501 < #define HIDE_SPOOF_IPS 320
502 < #define HOST 321
503 < #define HUB 322
504 < #define HUB_MASK 323
505 < #define IGNORE_BOGUS_TS 324
506 < #define INVISIBLE_ON_CONNECT 325
507 < #define IP 326
508 < #define KILL 327
509 < #define KILL_CHASE_TIME_LIMIT 328
510 < #define KLINE 329
511 < #define KLINE_EXEMPT 330
512 < #define KLINE_REASON 331
513 < #define KLINE_WITH_REASON 332
514 < #define KNOCK_DELAY 333
515 < #define KNOCK_DELAY_CHANNEL 334
516 < #define LEAF_MASK 335
517 < #define LINKS_DELAY 336
518 < #define LISTEN 337
519 < #define T_LOG 338
520 < #define MAX_ACCEPT 339
521 < #define MAX_BANS 340
522 < #define MAX_CHANS_PER_USER 341
523 < #define MAX_GLOBAL 342
524 < #define MAX_IDENT 343
525 < #define MAX_LOCAL 344
526 < #define MAX_NICK_CHANGES 345
527 < #define MAX_NICK_TIME 346
528 < #define MAX_NUMBER 347
529 < #define MAX_TARGETS 348
530 < #define MAX_WATCH 349
531 < #define MESSAGE_LOCALE 350
532 < #define MIN_NONWILDCARD 351
533 < #define MIN_NONWILDCARD_SIMPLE 352
534 < #define MODULE 353
535 < #define MODULES 354
536 < #define NAME 355
537 < #define NEED_PASSWORD 356
538 < #define NETWORK_DESC 357
539 < #define NETWORK_NAME 358
540 < #define NICK 359
541 < #define NICK_CHANGES 360
542 < #define NO_CREATE_ON_SPLIT 361
543 < #define NO_JOIN_ON_SPLIT 362
544 < #define NO_OPER_FLOOD 363
545 < #define NO_TILDE 364
546 < #define NUMBER 365
547 < #define NUMBER_PER_IDENT 366
548 < #define NUMBER_PER_CIDR 367
549 < #define NUMBER_PER_IP 368
550 < #define NUMBER_PER_IP_GLOBAL 369
551 < #define OPERATOR 370
552 < #define OPERS_BYPASS_CALLERID 371
553 < #define OPER_ONLY_UMODES 372
554 < #define OPER_PASS_RESV 373
555 < #define OPER_SPY_T 374
556 < #define OPER_UMODES 375
557 < #define JOIN_FLOOD_COUNT 376
558 < #define JOIN_FLOOD_TIME 377
559 < #define PACE_WAIT 378
560 < #define PACE_WAIT_SIMPLE 379
561 < #define PASSWORD 380
562 < #define PATH 381
563 < #define PING_COOKIE 382
564 < #define PING_TIME 383
565 < #define PING_WARNING 384
566 < #define PORT 385
567 < #define QSTRING 386
568 < #define QUIET_ON_BAN 387
569 < #define REASON 388
570 < #define REDIRPORT 389
571 < #define REDIRSERV 390
572 < #define REGEX_T 391
573 < #define REHASH 392
574 < #define TREJECT_HOLD_TIME 393
575 < #define REMOTE 394
576 < #define REMOTEBAN 395
577 < #define RESTRICT_CHANNELS 396
578 < #define RESTRICTED 397
579 < #define RSA_PRIVATE_KEY_FILE 398
580 < #define RSA_PUBLIC_KEY_FILE 399
581 < #define SSL_CERTIFICATE_FILE 400
582 < #define T_SSL_CONNECTION_METHOD 401
583 < #define T_SSLV3 402
584 < #define T_TLSV1 403
585 < #define RESV 404
586 < #define RESV_EXEMPT 405
587 < #define SECONDS 406
588 < #define MINUTES 407
589 < #define HOURS 408
590 < #define DAYS 409
591 < #define WEEKS 410
592 < #define SENDQ 411
593 < #define SEND_PASSWORD 412
594 < #define SERVERHIDE 413
595 < #define SERVERINFO 414
596 < #define IRCD_SID 415
597 < #define TKLINE_EXPIRE_NOTICES 416
598 < #define T_SHARED 417
599 < #define T_CLUSTER 418
600 < #define TYPE 419
601 < #define SHORT_MOTD 420
602 < #define SILENT 421
603 < #define SPOOF 422
604 < #define SPOOF_NOTICE 423
605 < #define STATS_E_DISABLED 424
606 < #define STATS_I_OPER_ONLY 425
607 < #define STATS_K_OPER_ONLY 426
608 < #define STATS_O_OPER_ONLY 427
609 < #define STATS_P_OPER_ONLY 428
610 < #define TBOOL 429
611 < #define TMASKED 430
612 < #define T_REJECT 431
613 < #define TS_MAX_DELTA 432
614 < #define TS_WARN_DELTA 433
615 < #define TWODOTS 434
616 < #define T_ALL 435
617 < #define T_BOTS 436
618 < #define T_SOFTCALLERID 437
619 < #define T_CALLERID 438
620 < #define T_CCONN 439
621 < #define T_CCONN_FULL 440
622 < #define T_CLIENT_FLOOD 441
623 < #define T_DEAF 442
624 < #define T_DEBUG 443
625 < #define T_DLINE 444
626 < #define T_DRONE 445
627 < #define T_EXTERNAL 446
628 < #define T_FULL 447
629 < #define T_INVISIBLE 448
630 < #define T_IPV4 449
631 < #define T_IPV6 450
632 < #define T_LOCOPS 451
633 < #define T_MAX_CLIENTS 452
634 < #define T_NCHANGE 453
635 < #define T_OPERWALL 454
636 < #define T_REJ 455
637 < #define T_SERVER 456
638 < #define T_SERVNOTICE 457
639 < #define T_SKILL 458
640 < #define T_SPY 459
641 < #define T_SSL 460
642 < #define T_UMODES 461
643 < #define T_UNAUTH 462
644 < #define T_UNDLINE 463
645 < #define T_UNLIMITED 464
646 < #define T_UNRESV 465
647 < #define T_UNXLINE 466
648 < #define T_GLOBOPS 467
649 < #define T_WALLOP 468
650 < #define T_RESTART 469
651 < #define T_SERVICE 470
652 < #define T_SERVICES_NAME 471
653 < #define T_TIMESTAMP 472
654 < #define THROTTLE_TIME 473
655 < #define TOPICBURST 474
656 < #define TRUE_NO_OPER_FLOOD 475
657 < #define TKLINE 476
658 < #define TXLINE 477
664 < #define TRESV 478
665 < #define UNKLINE 479
666 < #define USER 480
667 < #define USE_EGD 481
668 < #define USE_EXCEPT 482
669 < #define USE_INVEX 483
670 < #define USE_KNOCK 484
671 < #define USE_LOGGING 485
672 < #define USE_WHOIS_ACTUALLY 486
673 < #define VHOST 487
674 < #define VHOST6 488
675 < #define XLINE 489
676 < #define WARN 490
677 < #define WARN_NO_NLINE 491
678 < #define T_SIZE 492
679 < #define T_FILE 493
680 <
440 > #define ADMIN 259
441 > #define AFTYPE 260
442 > #define ANTI_NICK_FLOOD 261
443 > #define ANTI_SPAM_EXIT_MESSAGE_TIME 262
444 > #define AUTOCONN 263
445 > #define BYTES 264
446 > #define KBYTES 265
447 > #define MBYTES 266
448 > #define CALLER_ID_WAIT 267
449 > #define CAN_FLOOD 268
450 > #define CHANNEL 269
451 > #define CIDR_BITLEN_IPV4 270
452 > #define CIDR_BITLEN_IPV6 271
453 > #define CLASS 272
454 > #define CONNECT 273
455 > #define CONNECTFREQ 274
456 > #define DEFAULT_FLOODCOUNT 275
457 > #define DEFAULT_SPLIT_SERVER_COUNT 276
458 > #define DEFAULT_SPLIT_USER_COUNT 277
459 > #define DENY 278
460 > #define DESCRIPTION 279
461 > #define DIE 280
462 > #define DISABLE_AUTH 281
463 > #define DISABLE_FAKE_CHANNELS 282
464 > #define DISABLE_REMOTE_COMMANDS 283
465 > #define DOTS_IN_IDENT 284
466 > #define EGDPOOL_PATH 285
467 > #define EMAIL 286
468 > #define ENCRYPTED 287
469 > #define EXCEED_LIMIT 288
470 > #define EXEMPT 289
471 > #define FAILED_OPER_NOTICE 290
472 > #define IRCD_FLAGS 291
473 > #define FLATTEN_LINKS 292
474 > #define GECOS 293
475 > #define GENERAL 294
476 > #define GLINE 295
477 > #define GLINE_DURATION 296
478 > #define GLINE_ENABLE 297
479 > #define GLINE_EXEMPT 298
480 > #define GLINE_REQUEST_DURATION 299
481 > #define GLINE_MIN_CIDR 300
482 > #define GLINE_MIN_CIDR6 301
483 > #define GLOBAL_KILL 302
484 > #define IRCD_AUTH 303
485 > #define NEED_IDENT 304
486 > #define HAVENT_READ_CONF 305
487 > #define HIDDEN 306
488 > #define HIDDEN_NAME 307
489 > #define HIDE_SERVER_IPS 308
490 > #define HIDE_SERVERS 309
491 > #define HIDE_SERVICES 310
492 > #define HIDE_SPOOF_IPS 311
493 > #define HOST 312
494 > #define HUB 313
495 > #define HUB_MASK 314
496 > #define IGNORE_BOGUS_TS 315
497 > #define INVISIBLE_ON_CONNECT 316
498 > #define IP 317
499 > #define KILL 318
500 > #define KILL_CHASE_TIME_LIMIT 319
501 > #define KLINE 320
502 > #define KLINE_EXEMPT 321
503 > #define KNOCK_DELAY 322
504 > #define KNOCK_DELAY_CHANNEL 323
505 > #define LEAF_MASK 324
506 > #define LINKS_DELAY 325
507 > #define LISTEN 326
508 > #define T_LOG 327
509 > #define MASK 328
510 > #define MAX_ACCEPT 329
511 > #define MAX_BANS 330
512 > #define MAX_CHANS_PER_OPER 331
513 > #define MAX_CHANS_PER_USER 332
514 > #define MAX_GLOBAL 333
515 > #define MAX_IDENT 334
516 > #define MAX_LOCAL 335
517 > #define MAX_NICK_CHANGES 336
518 > #define MAX_NICK_LENGTH 337
519 > #define MAX_NICK_TIME 338
520 > #define MAX_NUMBER 339
521 > #define MAX_TARGETS 340
522 > #define MAX_TOPIC_LENGTH 341
523 > #define MAX_WATCH 342
524 > #define MIN_NONWILDCARD 343
525 > #define MIN_NONWILDCARD_SIMPLE 344
526 > #define MIN_IDLE 345
527 > #define MAX_IDLE 346
528 > #define RANDOM_IDLE 347
529 > #define HIDE_IDLE_FROM_OPERS 348
530 > #define MODULE 349
531 > #define MODULES 350
532 > #define NAME 351
533 > #define NEED_PASSWORD 352
534 > #define NETWORK_DESC 353
535 > #define NETWORK_NAME 354
536 > #define NICK 355
537 > #define NO_CREATE_ON_SPLIT 356
538 > #define NO_JOIN_ON_SPLIT 357
539 > #define NO_OPER_FLOOD 358
540 > #define NO_TILDE 359
541 > #define NUMBER 360
542 > #define NUMBER_PER_CIDR 361
543 > #define NUMBER_PER_IP 362
544 > #define OPERATOR 363
545 > #define OPERS_BYPASS_CALLERID 364
546 > #define OPER_ONLY_UMODES 365
547 > #define OPER_PASS_RESV 366
548 > #define OPER_SPY_T 367
549 > #define OPER_UMODES 368
550 > #define JOIN_FLOOD_COUNT 369
551 > #define JOIN_FLOOD_TIME 370
552 > #define PACE_WAIT 371
553 > #define PACE_WAIT_SIMPLE 372
554 > #define PASSWORD 373
555 > #define PATH 374
556 > #define PING_COOKIE 375
557 > #define PING_TIME 376
558 > #define PORT 377
559 > #define QSTRING 378
560 > #define QUIET_ON_BAN 379
561 > #define REASON 380
562 > #define REDIRPORT 381
563 > #define REDIRSERV 382
564 > #define REGEX_T 383
565 > #define REHASH 384
566 > #define REMOTE 385
567 > #define REMOTEBAN 386
568 > #define RSA_PRIVATE_KEY_FILE 387
569 > #define RSA_PUBLIC_KEY_FILE 388
570 > #define SSL_CERTIFICATE_FILE 389
571 > #define SSL_DH_PARAM_FILE 390
572 > #define T_SSL_CLIENT_METHOD 391
573 > #define T_SSL_SERVER_METHOD 392
574 > #define T_SSLV3 393
575 > #define T_TLSV1 394
576 > #define RESV 395
577 > #define RESV_EXEMPT 396
578 > #define SECONDS 397
579 > #define MINUTES 398
580 > #define HOURS 399
581 > #define DAYS 400
582 > #define WEEKS 401
583 > #define MONTHS 402
584 > #define YEARS 403
585 > #define SENDQ 404
586 > #define SEND_PASSWORD 405
587 > #define SERVERHIDE 406
588 > #define SERVERINFO 407
589 > #define IRCD_SID 408
590 > #define TKLINE_EXPIRE_NOTICES 409
591 > #define T_SHARED 410
592 > #define T_CLUSTER 411
593 > #define TYPE 412
594 > #define SHORT_MOTD 413
595 > #define SPOOF 414
596 > #define SPOOF_NOTICE 415
597 > #define STATS_E_DISABLED 416
598 > #define STATS_I_OPER_ONLY 417
599 > #define STATS_K_OPER_ONLY 418
600 > #define STATS_O_OPER_ONLY 419
601 > #define STATS_P_OPER_ONLY 420
602 > #define TBOOL 421
603 > #define TMASKED 422
604 > #define TS_MAX_DELTA 423
605 > #define TS_WARN_DELTA 424
606 > #define TWODOTS 425
607 > #define T_ALL 426
608 > #define T_BOTS 427
609 > #define T_SOFTCALLERID 428
610 > #define T_CALLERID 429
611 > #define T_CCONN 430
612 > #define T_CCONN_FULL 431
613 > #define T_SSL_CIPHER_LIST 432
614 > #define T_DEAF 433
615 > #define T_DEBUG 434
616 > #define T_DLINE 435
617 > #define T_EXTERNAL 436
618 > #define T_FULL 437
619 > #define T_INVISIBLE 438
620 > #define T_IPV4 439
621 > #define T_IPV6 440
622 > #define T_LOCOPS 441
623 > #define T_MAX_CLIENTS 442
624 > #define T_NCHANGE 443
625 > #define T_NONONREG 444
626 > #define T_OPERWALL 445
627 > #define T_RECVQ 446
628 > #define T_REJ 447
629 > #define T_SERVER 448
630 > #define T_SERVNOTICE 449
631 > #define T_SET 450
632 > #define T_SKILL 451
633 > #define T_SPY 452
634 > #define T_SSL 453
635 > #define T_UMODES 454
636 > #define T_UNAUTH 455
637 > #define T_UNDLINE 456
638 > #define T_UNLIMITED 457
639 > #define T_UNRESV 458
640 > #define T_UNXLINE 459
641 > #define T_GLOBOPS 460
642 > #define T_WALLOP 461
643 > #define T_WEBIRC 462
644 > #define T_RESTART 463
645 > #define T_SERVICE 464
646 > #define T_SERVICES_NAME 465
647 > #define THROTTLE_TIME 466
648 > #define TRUE_NO_OPER_FLOOD 467
649 > #define UNKLINE 468
650 > #define USER 469
651 > #define USE_EGD 470
652 > #define USE_LOGGING 471
653 > #define VHOST 472
654 > #define VHOST6 473
655 > #define XLINE 474
656 > #define WARN_NO_NLINE 475
657 > #define T_SIZE 476
658 > #define T_FILE 477
659  
660  
661  
662   #if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED
663   typedef union YYSTYPE
664   {
665 <
666 < /* Line 293 of yacc.c  */
689 < #line 132 "ircd_parser.y"
665 > /* Line 387 of yacc.c  */
666 > #line 138 "conf_parser.y"
667  
668    int number;
669    char *string;
670  
671  
672 <
673 < /* Line 293 of yacc.c  */
697 < #line 698 "ircd_parser.c"
672 > /* Line 387 of yacc.c  */
673 > #line 674 "conf_parser.c"
674   } YYSTYPE;
675   # define YYSTYPE_IS_TRIVIAL 1
676   # define yystype YYSTYPE /* obsolescent; will be withdrawn */
677   # define YYSTYPE_IS_DECLARED 1
678   #endif
679  
680 + extern YYSTYPE yylval;
681  
682 < /* Copy the second part of user declarations.  */
682 > #ifdef YYPARSE_PARAM
683 > #if defined __STDC__ || defined __cplusplus
684 > int yyparse (void *YYPARSE_PARAM);
685 > #else
686 > int yyparse ();
687 > #endif
688 > #else /* ! YYPARSE_PARAM */
689 > #if defined __STDC__ || defined __cplusplus
690 > int yyparse (void);
691 > #else
692 > int yyparse ();
693 > #endif
694 > #endif /* ! YYPARSE_PARAM */
695  
696 + #endif /* !YY_YY_CONF_PARSER_H_INCLUDED  */
697  
698 < /* Line 343 of yacc.c  */
699 < #line 710 "ircd_parser.c"
698 > /* Copy the second part of user declarations.  */
699 >
700 > /* Line 390 of yacc.c  */
701 > #line 702 "conf_parser.c"
702  
703   #ifdef short
704   # undef short
# Line 759 | Line 751 | typedef short int yytype_int16;
751   # if defined YYENABLE_NLS && YYENABLE_NLS
752   #  if ENABLE_NLS
753   #   include <libintl.h> /* INFRINGES ON USER NAME SPACE */
754 < #   define YY_(msgid) dgettext ("bison-runtime", msgid)
754 > #   define YY_(Msgid) dgettext ("bison-runtime", Msgid)
755   #  endif
756   # endif
757   # ifndef YY_
758 < #  define YY_(msgid) msgid
758 > #  define YY_(Msgid) Msgid
759 > # endif
760 > #endif
761 >
762 > #ifndef __attribute__
763 > /* This feature is available in gcc versions 2.5 and later.  */
764 > # if (! defined __GNUC__ || __GNUC__ < 2 \
765 >      || (__GNUC__ == 2 && __GNUC_MINOR__ < 5))
766 > #  define __attribute__(Spec) /* empty */
767   # endif
768   #endif
769  
770   /* Suppress unused-variable warnings by "using" E.  */
771   #if ! defined lint || defined __GNUC__
772 < # define YYUSE(e) ((void) (e))
772 > # define YYUSE(E) ((void) (E))
773   #else
774 < # define YYUSE(e) /* empty */
774 > # define YYUSE(E) /* empty */
775   #endif
776  
777 +
778   /* Identity function, used to suppress warnings about constant conditions.  */
779   #ifndef lint
780 < # define YYID(n) (n)
780 > # define YYID(N) (N)
781   #else
782   #if (defined __STDC__ || defined __C99__FUNC__ \
783       || defined __cplusplus || defined _MSC_VER)
# Line 812 | Line 813 | YYID (yyi)
813   #    if ! defined _ALLOCA_H && ! defined EXIT_SUCCESS && (defined __STDC__ || defined __C99__FUNC__ \
814       || defined __cplusplus || defined _MSC_VER)
815   #     include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
816 +      /* Use EXIT_SUCCESS as a witness for stdlib.h.  */
817   #     ifndef EXIT_SUCCESS
818   #      define EXIT_SUCCESS 0
819   #     endif
# Line 903 | Line 905 | union yyalloc
905   #endif
906  
907   #if defined YYCOPY_NEEDED && YYCOPY_NEEDED
908 < /* Copy COUNT objects from FROM to TO.  The source and destination do
908 > /* Copy COUNT objects from SRC to DST.  The source and destination do
909     not overlap.  */
910   # ifndef YYCOPY
911   #  if defined __GNUC__ && 1 < __GNUC__
912 < #   define YYCOPY(To, From, Count) \
913 <      __builtin_memcpy (To, From, (Count) * sizeof (*(From)))
912 > #   define YYCOPY(Dst, Src, Count) \
913 >      __builtin_memcpy (Dst, Src, (Count) * sizeof (*(Src)))
914   #  else
915 < #   define YYCOPY(To, From, Count)              \
916 <      do                                        \
917 <        {                                       \
918 <          YYSIZE_T yyi;                         \
919 <          for (yyi = 0; yyi < (Count); yyi++)   \
920 <            (To)[yyi] = (From)[yyi];            \
921 <        }                                       \
915 > #   define YYCOPY(Dst, Src, Count)              \
916 >      do                                        \
917 >        {                                       \
918 >          YYSIZE_T yyi;                         \
919 >          for (yyi = 0; yyi < (Count); yyi++)   \
920 >            (Dst)[yyi] = (Src)[yyi];            \
921 >        }                                       \
922        while (YYID (0))
923   #  endif
924   # endif
# Line 925 | Line 927 | union yyalloc
927   /* YYFINAL -- State number of the termination state.  */
928   #define YYFINAL  2
929   /* YYLAST -- Last index in YYTABLE.  */
930 < #define YYLAST   1207
930 > #define YYLAST   1213
931  
932   /* YYNTOKENS -- Number of terminals.  */
933 < #define YYNTOKENS  244
933 > #define YYNTOKENS  228
934   /* YYNNTS -- Number of nonterminals.  */
935 < #define YYNNTS  301
935 > #define YYNNTS  289
936   /* YYNRULES -- Number of rules.  */
937 < #define YYNRULES  658
937 > #define YYNRULES  642
938   /* YYNRULES -- Number of states.  */
939 < #define YYNSTATES  1291
939 > #define YYNSTATES  1255
940  
941   /* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX.  */
942   #define YYUNDEFTOK  2
943 < #define YYMAXUTOK   493
943 > #define YYMAXUTOK   477
944  
945   #define YYTRANSLATE(YYX)                                                \
946    ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK)
# Line 950 | Line 952 | static const yytype_uint8 yytranslate[]
952         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
953         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
954         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
955 <       2,     2,     2,     2,   243,     2,     2,     2,     2,     2,
956 <       2,     2,     2,     2,     2,     2,     2,     2,     2,   239,
957 <       2,   242,     2,     2,     2,     2,     2,     2,     2,     2,
955 >       2,     2,     2,     2,   227,     2,     2,     2,     2,     2,
956 >       2,     2,     2,     2,     2,     2,     2,     2,     2,   223,
957 >       2,   226,     2,     2,     2,     2,     2,     2,     2,     2,
958         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
959         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
960         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
961         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
962         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
963 <       2,     2,     2,   241,     2,   240,     2,     2,     2,     2,
963 >       2,     2,     2,   225,     2,   224,     2,     2,     2,     2,
964         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
965         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
966         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
# Line 993 | Line 995 | static const yytype_uint8 yytranslate[]
995       185,   186,   187,   188,   189,   190,   191,   192,   193,   194,
996       195,   196,   197,   198,   199,   200,   201,   202,   203,   204,
997       205,   206,   207,   208,   209,   210,   211,   212,   213,   214,
998 <     215,   216,   217,   218,   219,   220,   221,   222,   223,   224,
997 <     225,   226,   227,   228,   229,   230,   231,   232,   233,   234,
998 <     235,   236,   237,   238
998 >     215,   216,   217,   218,   219,   220,   221,   222
999   };
1000  
1001   #if YYDEBUG
# Line 1005 | Line 1005 | static const yytype_uint16 yyprhs[] =
1005   {
1006         0,     0,     3,     4,     7,     9,    11,    13,    15,    17,
1007        19,    21,    23,    25,    27,    29,    31,    33,    35,    37,
1008 <      39,    41,    43,    45,    47,    49,    52,    55,    56,    58,
1009 <      61,    65,    69,    73,    77,    81,    82,    84,    87,    91,
1010 <      95,    99,   105,   108,   110,   112,   114,   117,   122,   127,
1011 <     133,   136,   138,   140,   142,   144,   146,   148,   150,   152,
1012 <     154,   156,   158,   160,   162,   165,   166,   172,   176,   178,
1013 <     180,   182,   187,   192,   197,   202,   207,   212,   217,   222,
1014 <     227,   232,   237,   243,   246,   248,   250,   252,   254,   257,
1015 <     262,   267,   272,   278,   281,   283,   285,   287,   289,   292,
1016 <     297,   302,   303,   310,   313,   315,   317,   319,   321,   324,
1017 <     329,   334,   339,   340,   346,   350,   352,   354,   356,   358,
1018 <     360,   362,   364,   366,   367,   374,   377,   379,   381,   383,
1019 <     385,   387,   389,   391,   393,   395,   398,   403,   408,   413,
1020 <     418,   423,   428,   429,   435,   439,   441,   443,   445,   447,
1021 <     449,   451,   453,   455,   457,   459,   461,   463,   465,   467,
1022 <     469,   471,   473,   475,   477,   479,   481,   482,   488,   492,
1023 <     494,   496,   498,   500,   502,   504,   506,   508,   510,   512,
1024 <     514,   516,   518,   520,   522,   524,   526,   528,   530,   531,
1025 <     538,   541,   543,   545,   547,   549,   551,   553,   555,   557,
1026 <     559,   561,   563,   565,   567,   569,   572,   577,   582,   587,
1027 <     592,   597,   602,   607,   612,   617,   622,   627,   632,   637,
1028 <     638,   645,   646,   652,   656,   658,   660,   662,   664,   667,
1029 <     669,   671,   673,   675,   677,   680,   681,   687,   691,   693,
1030 <     695,   699,   704,   709,   710,   717,   720,   722,   724,   726,
1031 <     728,   730,   732,   734,   736,   738,   741,   746,   751,   756,
1032 <     761,   762,   768,   772,   774,   776,   778,   780,   782,   784,
1033 <     786,   788,   790,   792,   797,   802,   807,   808,   815,   818,
1034 <     820,   822,   824,   826,   829,   834,   839,   844,   850,   853,
1035 <     855,   857,   859,   864,   865,   872,   875,   877,   879,   881,
1036 <     883,   886,   891,   896,   897,   903,   907,   909,   911,   913,
1037 <     915,   917,   919,   921,   923,   925,   927,   929,   930,   937,
1038 <     940,   942,   944,   946,   949,   954,   955,   961,   965,   967,
1039 <     969,   971,   973,   975,   977,   979,   981,   983,   985,   987,
1040 <     988,   995,   998,  1000,  1002,  1004,  1006,  1008,  1010,  1012,
1041 <    1014,  1016,  1018,  1020,  1022,  1024,  1027,  1032,  1037,  1042,
1042 <    1047,  1052,  1057,  1062,  1067,  1068,  1074,  1078,  1080,  1082,
1043 <    1084,  1086,  1091,  1096,  1101,  1106,  1107,  1114,  1115,  1121,
1044 <    1125,  1127,  1129,  1132,  1134,  1136,  1138,  1140,  1142,  1147,
1045 <    1152,  1153,  1160,  1163,  1165,  1167,  1169,  1171,  1176,  1181,
1046 <    1187,  1190,  1192,  1194,  1196,  1201,  1202,  1209,  1210,  1216,
1047 <    1220,  1222,  1224,  1227,  1229,  1231,  1233,  1235,  1237,  1242,
1048 <    1247,  1253,  1256,  1258,  1260,  1262,  1264,  1266,  1268,  1270,
1049 <    1272,  1274,  1276,  1278,  1280,  1282,  1284,  1286,  1288,  1290,
1050 <    1292,  1294,  1296,  1298,  1300,  1302,  1304,  1306,  1308,  1310,
1051 <    1312,  1314,  1316,  1318,  1320,  1322,  1324,  1326,  1328,  1330,
1052 <    1332,  1334,  1336,  1338,  1340,  1342,  1344,  1346,  1348,  1350,
1053 <    1352,  1354,  1356,  1358,  1360,  1362,  1367,  1372,  1377,  1382,
1054 <    1387,  1392,  1397,  1402,  1407,  1412,  1417,  1422,  1427,  1432,
1055 <    1437,  1442,  1447,  1452,  1457,  1462,  1467,  1472,  1477,  1482,
1056 <    1487,  1492,  1497,  1502,  1507,  1512,  1517,  1522,  1527,  1532,
1057 <    1537,  1542,  1547,  1552,  1557,  1562,  1567,  1572,  1577,  1582,
1058 <    1587,  1592,  1597,  1598,  1604,  1608,  1610,  1612,  1614,  1616,
1059 <    1618,  1620,  1622,  1624,  1626,  1628,  1630,  1632,  1634,  1636,
1060 <    1638,  1640,  1642,  1644,  1646,  1648,  1650,  1651,  1657,  1661,
1061 <    1663,  1665,  1667,  1669,  1671,  1673,  1675,  1677,  1679,  1681,
1062 <    1683,  1685,  1687,  1689,  1691,  1693,  1695,  1697,  1699,  1701,
1063 <    1703,  1708,  1713,  1718,  1723,  1724,  1731,  1734,  1736,  1738,
1064 <    1740,  1742,  1744,  1746,  1748,  1750,  1755,  1760,  1761,  1767,
1065 <    1771,  1773,  1775,  1777,  1782,  1787,  1788,  1794,  1798,  1800,
1066 <    1802,  1804,  1810,  1813,  1815,  1817,  1819,  1821,  1823,  1825,
1067 <    1827,  1829,  1831,  1833,  1835,  1837,  1839,  1841,  1843,  1845,
1068 <    1847,  1849,  1851,  1853,  1858,  1863,  1868,  1873,  1878,  1883,
1069 <    1888,  1893,  1898,  1903,  1908,  1913,  1918,  1923,  1928,  1933,
1070 <    1938,  1943,  1949,  1952,  1954,  1956,  1958,  1960,  1962,  1964,
1071 <    1966,  1968,  1970,  1975,  1980,  1985,  1990,  1995,  2000
1008 >      39,    41,    43,    45,    47,    50,    53,    54,    56,    59,
1009 >      63,    67,    71,    75,    79,    83,    87,    88,    90,    93,
1010 >      97,   101,   105,   111,   114,   116,   118,   120,   123,   128,
1011 >     133,   139,   142,   144,   146,   148,   150,   152,   154,   156,
1012 >     158,   160,   162,   164,   166,   168,   170,   172,   174,   176,
1013 >     178,   181,   186,   191,   195,   197,   199,   201,   205,   207,
1014 >     209,   211,   216,   221,   226,   231,   236,   241,   246,   251,
1015 >     256,   261,   266,   271,   276,   281,   286,   292,   295,   297,
1016 >     299,   301,   303,   306,   311,   316,   321,   327,   330,   332,
1017 >     334,   336,   339,   344,   345,   352,   355,   357,   359,   361,
1018 >     363,   366,   371,   376,   381,   382,   388,   392,   394,   396,
1019 >     398,   400,   402,   404,   406,   408,   409,   416,   419,   421,
1020 >     423,   425,   427,   429,   431,   433,   435,   437,   440,   445,
1021 >     450,   455,   460,   465,   470,   471,   477,   481,   483,   485,
1022 >     487,   489,   491,   493,   495,   497,   499,   501,   503,   505,
1023 >     507,   509,   511,   513,   515,   517,   519,   521,   523,   525,
1024 >     526,   532,   536,   538,   540,   542,   544,   546,   548,   550,
1025 >     552,   554,   556,   558,   560,   562,   564,   566,   568,   570,
1026 >     572,   574,   575,   582,   585,   587,   589,   591,   593,   595,
1027 >     597,   599,   601,   603,   605,   607,   609,   611,   613,   615,
1028 >     617,   619,   622,   627,   632,   637,   642,   647,   652,   657,
1029 >     662,   667,   672,   677,   682,   687,   692,   697,   698,   704,
1030 >     708,   710,   712,   714,   715,   722,   723,   729,   733,   735,
1031 >     737,   739,   741,   744,   746,   748,   750,   752,   754,   757,
1032 >     758,   764,   768,   770,   772,   776,   781,   786,   787,   794,
1033 >     797,   799,   801,   803,   805,   807,   809,   811,   813,   815,
1034 >     818,   823,   828,   833,   838,   839,   845,   849,   851,   853,
1035 >     855,   857,   859,   861,   863,   865,   867,   869,   871,   876,
1036 >     881,   886,   887,   894,   897,   899,   901,   903,   905,   908,
1037 >     913,   918,   923,   929,   932,   934,   936,   938,   943,   944,
1038 >     951,   954,   956,   958,   960,   962,   965,   970,   975,   976,
1039 >     982,   986,   988,   990,   992,   994,   996,   998,  1000,  1002,
1040 >    1004,  1006,  1008,  1009,  1016,  1019,  1021,  1023,  1025,  1028,
1041 >    1033,  1034,  1040,  1044,  1046,  1048,  1050,  1052,  1054,  1056,
1042 >    1058,  1060,  1062,  1064,  1066,  1067,  1074,  1077,  1079,  1081,
1043 >    1083,  1085,  1087,  1089,  1091,  1093,  1095,  1097,  1099,  1101,
1044 >    1103,  1105,  1108,  1113,  1118,  1123,  1128,  1133,  1138,  1143,
1045 >    1148,  1149,  1155,  1159,  1161,  1163,  1165,  1170,  1175,  1180,
1046 >    1185,  1190,  1191,  1198,  1199,  1205,  1209,  1211,  1213,  1216,
1047 >    1218,  1220,  1222,  1224,  1226,  1231,  1236,  1237,  1244,  1247,
1048 >    1249,  1251,  1253,  1255,  1260,  1265,  1271,  1274,  1276,  1278,
1049 >    1280,  1285,  1286,  1293,  1294,  1300,  1304,  1306,  1308,  1311,
1050 >    1313,  1315,  1317,  1319,  1321,  1326,  1331,  1337,  1340,  1342,
1051 >    1344,  1346,  1348,  1350,  1352,  1354,  1356,  1358,  1360,  1362,
1052 >    1364,  1366,  1368,  1370,  1372,  1374,  1376,  1378,  1380,  1382,
1053 >    1384,  1386,  1388,  1390,  1392,  1394,  1396,  1398,  1400,  1402,
1054 >    1404,  1406,  1408,  1410,  1412,  1414,  1416,  1418,  1420,  1422,
1055 >    1424,  1426,  1428,  1430,  1432,  1434,  1436,  1438,  1440,  1445,
1056 >    1450,  1455,  1460,  1465,  1470,  1475,  1480,  1485,  1490,  1495,
1057 >    1500,  1505,  1510,  1515,  1520,  1525,  1530,  1535,  1540,  1545,
1058 >    1550,  1555,  1560,  1565,  1570,  1575,  1580,  1585,  1590,  1595,
1059 >    1600,  1605,  1610,  1615,  1620,  1625,  1630,  1635,  1640,  1645,
1060 >    1650,  1655,  1660,  1665,  1666,  1672,  1676,  1678,  1680,  1682,
1061 >    1684,  1686,  1688,  1690,  1692,  1694,  1696,  1698,  1700,  1702,
1062 >    1704,  1706,  1708,  1710,  1712,  1714,  1716,  1718,  1719,  1725,
1063 >    1729,  1731,  1733,  1735,  1737,  1739,  1741,  1743,  1745,  1747,
1064 >    1749,  1751,  1753,  1755,  1757,  1759,  1761,  1763,  1765,  1767,
1065 >    1769,  1771,  1773,  1778,  1783,  1788,  1794,  1797,  1799,  1801,
1066 >    1803,  1805,  1807,  1809,  1811,  1813,  1815,  1817,  1819,  1821,
1067 >    1823,  1825,  1827,  1832,  1837,  1842,  1847,  1852,  1857,  1862,
1068 >    1867,  1872,  1877,  1882,  1887,  1892,  1898,  1901,  1903,  1905,
1069 >    1907,  1909,  1911,  1913,  1915,  1917,  1919,  1924,  1929,  1934,
1070 >    1939,  1944,  1949
1071   };
1072  
1073   /* YYRHS -- A `-1'-separated list of the rules' RHS.  */
1074   static const yytype_int16 yyrhs[] =
1075   {
1076 <     245,     0,    -1,    -1,   245,   246,    -1,   274,    -1,   280,
1077 <      -1,   295,    -1,   514,    -1,   313,    -1,   330,    -1,   344,
1078 <      -1,   256,    -1,   535,    -1,   359,    -1,   366,    -1,   370,
1079 <      -1,   380,    -1,   389,    -1,   408,    -1,   418,    -1,   424,
1080 <      -1,   438,    -1,   498,    -1,   428,    -1,   251,    -1,     1,
1081 <     239,    -1,     1,   240,    -1,    -1,   248,    -1,   110,   247,
1082 <      -1,   110,   151,   247,    -1,   110,   152,   247,    -1,   110,
1083 <     153,   247,    -1,   110,   154,   247,    -1,   110,   155,   247,
1084 <      -1,    -1,   250,    -1,   110,   249,    -1,   110,    14,   249,
1085 <      -1,   110,    15,   249,    -1,   110,    16,   249,    -1,    99,
1086 <     241,   252,   240,   239,    -1,   252,   253,    -1,   253,    -1,
1087 <     254,    -1,   255,    -1,     1,   239,    -1,    98,   242,   131,
1088 <     239,    -1,   126,   242,   131,   239,    -1,   159,   241,   257,
1089 <     240,   239,    -1,   257,   258,    -1,   258,    -1,   265,    -1,
1090 <     270,    -1,   273,    -1,   267,    -1,   268,    -1,   269,    -1,
1091 <     272,    -1,   264,    -1,   271,    -1,   266,    -1,   263,    -1,
1092 <     259,    -1,     1,   239,    -1,    -1,   146,   260,   242,   261,
1093 <     239,    -1,   261,   243,   262,    -1,   262,    -1,   147,    -1,
1094 <     148,    -1,   145,   242,   131,   239,    -1,   143,   242,   131,
1095 <     239,    -1,   100,   242,   131,   239,    -1,   160,   242,   131,
1096 <     239,    -1,    31,   242,   131,   239,    -1,   103,   242,   131,
1097 <     239,    -1,   102,   242,   131,   239,    -1,   232,   242,   131,
1098 <     239,    -1,   233,   242,   131,   239,    -1,   197,   242,   110,
1099 <     239,    -1,    67,   242,   174,   239,    -1,     5,   241,   275,
1100 <     240,   239,    -1,   275,   276,    -1,   276,    -1,   277,    -1,
1101 <     279,    -1,   278,    -1,     1,   239,    -1,   100,   242,   131,
1102 <     239,    -1,    41,   242,   131,   239,    -1,    31,   242,   131,
1103 <     239,    -1,    83,   241,   281,   240,   239,    -1,   281,   282,
1104 <      -1,   282,    -1,   283,    -1,   284,    -1,   285,    -1,     1,
1105 <     239,    -1,   230,   242,   174,   239,    -1,   217,   242,   174,
1106 <     239,    -1,    -1,   286,   238,   241,   287,   240,   239,    -1,
1107 <     287,   288,    -1,   288,    -1,   289,    -1,   291,    -1,   290,
1108 <      -1,     1,   239,    -1,   100,   242,   131,   239,    -1,   237,
1109 <     242,   250,   239,    -1,   237,   242,   209,   239,    -1,    -1,
1110 <     164,   292,   242,   293,   239,    -1,   293,   243,   294,    -1,
1111 <     294,    -1,   225,    -1,   115,    -1,    51,    -1,   189,    -1,
1112 <      74,    -1,    72,    -1,   188,    -1,    -1,   115,   296,   241,
1113 <     297,   240,   239,    -1,   297,   298,    -1,   298,    -1,   299,
1114 <      -1,   300,    -1,   301,    -1,   305,    -1,   304,    -1,   302,
1115 <      -1,   303,    -1,   309,    -1,     1,   239,    -1,   100,   242,
1116 <     131,   239,    -1,   225,   242,   131,   239,    -1,   125,   242,
1117 <     131,   239,    -1,    43,   242,   174,   239,    -1,   144,   242,
1118 <     131,   239,    -1,    24,   242,   131,   239,    -1,    -1,   206,
1119 <     306,   242,   307,   239,    -1,   307,   243,   308,    -1,   308,
1120 <      -1,   181,    -1,   184,    -1,   185,    -1,   187,    -1,   188,
1121 <      -1,   192,    -1,    61,    -1,   203,    -1,   198,    -1,   200,
1122 <      -1,   207,    -1,   204,    -1,   191,    -1,   199,    -1,   202,
1123 <      -1,   193,    -1,   213,    -1,   182,    -1,   183,    -1,   196,
1124 <      -1,    -1,    47,   310,   242,   311,   239,    -1,   311,   243,
1125 <     312,    -1,   312,    -1,    57,    -1,   139,    -1,    74,    -1,
1126 <     224,    -1,   189,    -1,   208,    -1,   234,    -1,    51,    -1,
1127 <      32,    -1,   214,    -1,   137,    -1,     5,    -1,   105,    -1,
1128 <     199,    -1,   212,    -1,   119,    -1,   140,    -1,    98,    -1,
1129 <      -1,    24,   314,   241,   315,   240,   239,    -1,   315,   316,
1130 <      -1,   316,    -1,   317,    -1,   327,    -1,   328,    -1,   318,
1131 <      -1,   319,    -1,   329,    -1,   320,    -1,   321,    -1,   322,
1132 <      -1,   323,    -1,   324,    -1,   325,    -1,   326,    -1,     1,
1133 <     239,    -1,   100,   242,   131,   239,    -1,   128,   242,   248,
1134 <     239,    -1,   129,   242,   248,   239,    -1,   113,   242,   110,
1135 <     239,    -1,    26,   242,   248,   239,    -1,    92,   242,   110,
1136 <     239,    -1,    87,   242,   110,   239,    -1,    89,   242,   110,
1137 <     239,    -1,    88,   242,   110,   239,    -1,   156,   242,   250,
1138 <     239,    -1,    22,   242,   110,   239,    -1,    23,   242,   110,
1139 <     239,    -1,   112,   242,   110,   239,    -1,    -1,    82,   331,
1140 <     241,   336,   240,   239,    -1,    -1,    47,   333,   242,   334,
1141 <     239,    -1,   334,   243,   335,    -1,   335,    -1,   205,    -1,
1142 <      61,    -1,   201,    -1,   336,   337,    -1,   337,    -1,   338,
1143 <      -1,   332,    -1,   342,    -1,   343,    -1,     1,   239,    -1,
1144 <      -1,   130,   242,   340,   339,   239,    -1,   340,   243,   341,
1145 <      -1,   341,    -1,   110,    -1,   110,   179,   110,    -1,    71,
1146 <     242,   131,   239,    -1,    66,   242,   131,   239,    -1,    -1,
1147 <      58,   345,   241,   346,   240,   239,    -1,   346,   347,    -1,
1148 <     347,    -1,   348,    -1,   349,    -1,   350,    -1,   352,    -1,
1149 <     356,    -1,   357,    -1,   358,    -1,   351,    -1,     1,   239,
1150 <      -1,   225,   242,   131,   239,    -1,   125,   242,   131,   239,
1151 <      -1,    24,   242,   131,   239,    -1,    43,   242,   174,   239,
1152 <      -1,    -1,    47,   353,   242,   354,   239,    -1,   354,   243,
1153 <     355,    -1,   355,    -1,   168,    -1,    44,    -1,    75,    -1,
1154 <      59,    -1,    20,    -1,   109,    -1,    53,    -1,   150,    -1,
1155 <     101,    -1,   167,   242,   131,   239,    -1,   135,   242,   131,
1156 <     239,    -1,   134,   242,   110,   239,    -1,    -1,   149,   360,
1157 <     241,   361,   240,   239,    -1,   361,   362,    -1,   362,    -1,
1158 <     363,    -1,   364,    -1,   365,    -1,     1,   239,    -1,   133,
1159 <     242,   131,   239,    -1,    21,   242,   131,   239,    -1,   104,
1160 <     242,   131,   239,    -1,   215,   241,   367,   240,   239,    -1,
1161 <     367,   368,    -1,   368,    -1,   369,    -1,     1,    -1,   100,
1162 <     242,   131,   239,    -1,    -1,   162,   371,   241,   372,   240,
1163 <     239,    -1,   372,   373,    -1,   373,    -1,   374,    -1,   375,
1164 <      -1,   376,    -1,     1,   239,    -1,   100,   242,   131,   239,
1165 <      -1,   225,   242,   131,   239,    -1,    -1,   164,   377,   242,
1166 <     378,   239,    -1,   378,   243,   379,    -1,   379,    -1,    74,
1167 <      -1,   224,    -1,   189,    -1,   208,    -1,   234,    -1,   211,
1168 <      -1,   149,    -1,   210,    -1,   196,    -1,   180,    -1,    -1,
1169 <     163,   381,   241,   382,   240,   239,    -1,   382,   383,    -1,
1170 <     383,    -1,   384,    -1,   385,    -1,     1,   239,    -1,   100,
1171 <     242,   131,   239,    -1,    -1,   164,   386,   242,   387,   239,
1172 <      -1,   387,   243,   388,    -1,   388,    -1,    74,    -1,   224,
1173 <      -1,   189,    -1,   208,    -1,   234,    -1,   211,    -1,   149,
1174 <      -1,   210,    -1,   196,    -1,   180,    -1,    -1,    25,   390,
1175 <     241,   391,   240,   239,    -1,   391,   392,    -1,   392,    -1,
1176 <     393,    -1,   394,    -1,   395,    -1,   396,    -1,   397,    -1,
1177 <     399,    -1,   398,    -1,   400,    -1,   405,    -1,   406,    -1,
1178 <     407,    -1,   404,    -1,     1,   239,    -1,   100,   242,   131,
1179 <     239,    -1,    66,   242,   131,   239,    -1,   232,   242,   131,
1180 <     239,    -1,   157,   242,   131,   239,    -1,     3,   242,   131,
1181 <     239,    -1,   130,   242,   110,   239,    -1,     6,   242,   194,
1182 <     239,    -1,     6,   242,   195,   239,    -1,    -1,    47,   401,
1183 <     242,   402,   239,    -1,   402,   243,   403,    -1,   403,    -1,
1184 <      10,    -1,    12,    -1,   219,    -1,    43,   242,   174,   239,
1185 <      -1,    68,   242,   131,   239,    -1,    80,   242,   131,   239,
1186 <      -1,    24,   242,   131,   239,    -1,    -1,    72,   409,   241,
1187 <     414,   240,   239,    -1,    -1,   164,   411,   242,   412,   239,
1188 <      -1,   412,   243,   413,    -1,   413,    -1,   136,    -1,   414,
1189 <     415,    -1,   415,    -1,   416,    -1,   417,    -1,   410,    -1,
1190 <       1,    -1,   225,   242,   131,   239,    -1,   133,   242,   131,
1191 <     239,    -1,    -1,    30,   419,   241,   420,   240,   239,    -1,
1192 <     420,   421,    -1,   421,    -1,   422,    -1,   423,    -1,     1,
1193 <      -1,    71,   242,   131,   239,    -1,   133,   242,   131,   239,
1194 <      -1,    45,   241,   425,   240,   239,    -1,   425,   426,    -1,
1195 <     426,    -1,   427,    -1,     1,    -1,    71,   242,   131,   239,
1196 <      -1,    -1,    49,   429,   241,   434,   240,   239,    -1,    -1,
1197 <     164,   431,   242,   432,   239,    -1,   432,   243,   433,    -1,
1198 <     433,    -1,   136,    -1,   434,   435,    -1,   435,    -1,   436,
1199 <      -1,   437,    -1,   430,    -1,     1,    -1,   100,   242,   131,
1200 <     239,    -1,   133,   242,   131,   239,    -1,    50,   241,   439,
1201 <     240,   239,    -1,   439,   440,    -1,   440,    -1,   448,    -1,
1202 <     449,    -1,   451,    -1,   452,    -1,   453,    -1,   454,    -1,
1203 <     455,    -1,   456,    -1,   457,    -1,   458,    -1,   447,    -1,
1204 <     460,    -1,   461,    -1,   462,    -1,   463,    -1,   478,    -1,
1205 <     465,    -1,   467,    -1,   469,    -1,   468,    -1,   472,    -1,
1206 <     466,    -1,   473,    -1,   474,    -1,   475,    -1,   476,    -1,
1207 <     477,    -1,   490,    -1,   479,    -1,   480,    -1,   481,    -1,
1208 <     486,    -1,   470,    -1,   471,    -1,   496,    -1,   494,    -1,
1209 <     495,    -1,   450,    -1,   497,    -1,   485,    -1,   459,    -1,
1210 <     483,    -1,   484,    -1,   446,    -1,   442,    -1,   443,    -1,
1211 <     444,    -1,   445,    -1,   464,    -1,   441,    -1,   482,    -1,
1212 <       1,    -1,    94,   242,   110,   239,    -1,    55,   242,   110,
1213 <     239,    -1,    56,   242,   110,   239,    -1,   231,   242,   174,
1214 <     239,    -1,   138,   242,   248,   239,    -1,   161,   242,   174,
1215 <     239,    -1,    73,   242,   248,   239,    -1,    65,   242,   174,
1216 <     239,    -1,    69,   242,   174,   239,    -1,    37,   242,   174,
1217 <     239,    -1,    46,   242,   174,   239,    -1,     8,   242,   174,
1218 <     239,    -1,    91,   242,   248,   239,    -1,    90,   242,   110,
1219 <     239,    -1,    84,   242,   110,   239,    -1,     9,   242,   248,
1220 <     239,    -1,   178,   242,   248,   239,    -1,   177,   242,   248,
1221 <     239,    -1,    60,   242,   110,   239,    -1,    77,   242,   174,
1222 <     239,    -1,    76,   242,   131,   239,    -1,    70,   242,   174,
1223 <     239,    -1,   236,   242,   174,   239,    -1,   169,   242,   174,
1224 <     239,    -1,   172,   242,   174,   239,    -1,   173,   242,   174,
1225 <     239,    -1,   171,   242,   174,   239,    -1,   171,   242,   175,
1226 <     239,    -1,   170,   242,   174,   239,    -1,   170,   242,   175,
1227 <     239,    -1,   123,   242,   248,   239,    -1,    19,   242,   248,
1228 <     239,    -1,   116,   242,   174,   239,    -1,   124,   242,   248,
1229 <     239,    -1,   165,   242,   174,   239,    -1,   108,   242,   174,
1230 <     239,    -1,   220,   242,   174,   239,    -1,   118,   242,   174,
1231 <     239,    -1,    95,   242,   131,   239,    -1,    38,   242,   110,
1232 <     239,    -1,    93,   242,   110,   239,    -1,   226,   242,   174,
1233 <     239,    -1,    40,   242,   131,   239,    -1,   216,   242,   131,
1234 <     239,    -1,   127,   242,   174,   239,    -1,    33,   242,   174,
1235 <     239,    -1,   218,   242,   248,   239,    -1,    -1,   120,   487,
1236 <     242,   488,   239,    -1,   488,   243,   489,    -1,   489,    -1,
1237 <     181,    -1,   184,    -1,   185,    -1,   187,    -1,   188,    -1,
1238 <     192,    -1,    61,    -1,   203,    -1,   198,    -1,   200,    -1,
1239 <     207,    -1,   204,    -1,   191,    -1,   199,    -1,   202,    -1,
1240 <     193,    -1,   213,    -1,   182,    -1,   183,    -1,   196,    -1,
1241 <      -1,   117,   491,   242,   492,   239,    -1,   492,   243,   493,
1242 <      -1,   493,    -1,   181,    -1,   184,    -1,   185,    -1,   187,
1243 <      -1,   188,    -1,   192,    -1,   203,    -1,    61,    -1,   198,
1244 <      -1,   200,    -1,   207,    -1,   204,    -1,   191,    -1,   199,
1245 <      -1,   202,    -1,   193,    -1,   213,    -1,   182,    -1,   183,
1246 <      -1,   196,    -1,    96,   242,   110,   239,    -1,    97,   242,
1247 <     110,   239,    -1,    27,   242,   110,   239,    -1,   186,   242,
1248 <     250,   239,    -1,    -1,    52,   499,   241,   500,   240,   239,
1249 <      -1,   500,   501,    -1,   501,    -1,   502,    -1,   503,    -1,
1250 <     504,    -1,   508,    -1,   509,    -1,   510,    -1,     1,    -1,
1251 <      42,   242,   174,   239,    -1,    39,   242,   248,   239,    -1,
1252 <      -1,    83,   505,   242,   506,   239,    -1,   506,   243,   507,
1253 <      -1,   507,    -1,   176,    -1,    11,    -1,   225,   242,   131,
1254 <     239,    -1,   100,   242,   131,   239,    -1,    -1,     4,   511,
1255 <     242,   512,   239,    -1,   512,   243,   513,    -1,   513,    -1,
1256 <     176,    -1,    11,    -1,    21,   241,   515,   240,   239,    -1,
1257 <     515,   516,    -1,   516,    -1,   519,    -1,   520,    -1,   521,
1258 <      -1,   522,    -1,   527,    -1,   523,    -1,   524,    -1,   525,
1259 <      -1,   526,    -1,   528,    -1,   529,    -1,   530,    -1,   518,
1260 <      -1,   531,    -1,   532,    -1,   533,    -1,   534,    -1,   517,
1261 <      -1,     1,    -1,    34,   242,   174,   239,    -1,   141,   242,
1262 <     174,   239,    -1,    36,   242,   174,   239,    -1,   227,   242,
1263 <     174,   239,    -1,   228,   242,   174,   239,    -1,   229,   242,
1264 <     174,   239,    -1,    78,   242,   248,   239,    -1,    79,   242,
1265 <     248,   239,    -1,    86,   242,   110,   239,    -1,   132,   242,
1266 <     174,   239,    -1,    85,   242,   110,   239,    -1,    29,   242,
1267 <     110,   239,    -1,    28,   242,   110,   239,    -1,   106,   242,
1268 <     174,   239,    -1,   107,   242,   174,   239,    -1,    13,   242,
1269 <     174,   239,    -1,   121,   242,   110,   239,    -1,   122,   242,
1270 <     248,   239,    -1,   158,   241,   536,   240,   239,    -1,   536,
1271 <     537,    -1,   537,    -1,   538,    -1,   539,    -1,   541,    -1,
1273 <     543,    -1,   542,    -1,   540,    -1,   544,    -1,     1,    -1,
1274 <      48,   242,   174,   239,    -1,    64,   242,   174,   239,    -1,
1275 <      62,   242,   131,   239,    -1,    81,   242,   248,   239,    -1,
1276 <      61,   242,   174,   239,    -1,    35,   242,   174,   239,    -1,
1277 <      63,   242,   174,   239,    -1
1076 >     229,     0,    -1,    -1,   229,   230,    -1,   264,    -1,   270,
1077 >      -1,   284,    -1,   491,    -1,   302,    -1,   325,    -1,   339,
1078 >      -1,   240,    -1,   507,    -1,   354,    -1,   361,    -1,   365,
1079 >      -1,   375,    -1,   384,    -1,   404,    -1,   414,    -1,   420,
1080 >      -1,   434,    -1,   424,    -1,   235,    -1,     1,   223,    -1,
1081 >       1,   224,    -1,    -1,   232,    -1,   105,   231,    -1,   105,
1082 >     142,   231,    -1,   105,   143,   231,    -1,   105,   144,   231,
1083 >      -1,   105,   145,   231,    -1,   105,   146,   231,    -1,   105,
1084 >     147,   231,    -1,   105,   148,   231,    -1,    -1,   234,    -1,
1085 >     105,   233,    -1,   105,     9,   233,    -1,   105,    10,   233,
1086 >      -1,   105,    11,   233,    -1,    95,   225,   236,   224,   223,
1087 >      -1,   236,   237,    -1,   237,    -1,   238,    -1,   239,    -1,
1088 >       1,   223,    -1,    94,   226,   123,   223,    -1,   119,   226,
1089 >     123,   223,    -1,   152,   225,   241,   224,   223,    -1,   241,
1090 >     242,    -1,   242,    -1,   253,    -1,   258,    -1,   263,    -1,
1091 >     255,    -1,   256,    -1,   257,    -1,   260,    -1,   261,    -1,
1092 >     262,    -1,   251,    -1,   250,    -1,   259,    -1,   254,    -1,
1093 >     249,    -1,   243,    -1,   244,    -1,   252,    -1,     1,   223,
1094 >      -1,   136,   226,   245,   223,    -1,   137,   226,   247,   223,
1095 >      -1,   245,   227,   246,    -1,   246,    -1,   138,    -1,   139,
1096 >      -1,   247,   227,   248,    -1,   248,    -1,   138,    -1,   139,
1097 >      -1,   134,   226,   123,   223,    -1,   132,   226,   123,   223,
1098 >      -1,   135,   226,   123,   223,    -1,   177,   226,   123,   223,
1099 >      -1,    96,   226,   123,   223,    -1,   153,   226,   123,   223,
1100 >      -1,    24,   226,   123,   223,    -1,    99,   226,   123,   223,
1101 >      -1,    98,   226,   123,   223,    -1,   217,   226,   123,   223,
1102 >      -1,   218,   226,   123,   223,    -1,   187,   226,   105,   223,
1103 >      -1,    82,   226,   105,   223,    -1,    86,   226,   105,   223,
1104 >      -1,    58,   226,   166,   223,    -1,     4,   225,   265,   224,
1105 >     223,    -1,   265,   266,    -1,   266,    -1,   267,    -1,   269,
1106 >      -1,   268,    -1,     1,   223,    -1,    96,   226,   123,   223,
1107 >      -1,    31,   226,   123,   223,    -1,    24,   226,   123,   223,
1108 >      -1,    72,   225,   271,   224,   223,    -1,   271,   272,    -1,
1109 >     272,    -1,   273,    -1,   274,    -1,     1,   223,    -1,   216,
1110 >     226,   166,   223,    -1,    -1,   275,   222,   225,   276,   224,
1111 >     223,    -1,   276,   277,    -1,   277,    -1,   278,    -1,   280,
1112 >      -1,   279,    -1,     1,   223,    -1,    96,   226,   123,   223,
1113 >      -1,   221,   226,   234,   223,    -1,   221,   226,   202,   223,
1114 >      -1,    -1,   157,   281,   226,   282,   223,    -1,   282,   227,
1115 >     283,    -1,   283,    -1,   214,    -1,   108,    -1,    40,    -1,
1116 >     180,    -1,    65,    -1,    63,    -1,   179,    -1,    -1,   108,
1117 >     285,   225,   286,   224,   223,    -1,   286,   287,    -1,   287,
1118 >      -1,   288,    -1,   289,    -1,   290,    -1,   294,    -1,   293,
1119 >      -1,   291,    -1,   292,    -1,   298,    -1,     1,   223,    -1,
1120 >      96,   226,   123,   223,    -1,   214,   226,   123,   223,    -1,
1121 >     118,   226,   123,   223,    -1,    32,   226,   166,   223,    -1,
1122 >     133,   226,   123,   223,    -1,    17,   226,   123,   223,    -1,
1123 >      -1,   199,   295,   226,   296,   223,    -1,   296,   227,   297,
1124 >      -1,   297,    -1,   172,    -1,   175,    -1,   176,    -1,   178,
1125 >      -1,   179,    -1,   182,    -1,    51,    -1,   196,    -1,   188,
1126 >      -1,   192,    -1,   200,    -1,   197,    -1,   181,    -1,   190,
1127 >      -1,   194,    -1,   183,    -1,   206,    -1,   173,    -1,   174,
1128 >      -1,   186,    -1,   189,    -1,    -1,    36,   299,   226,   300,
1129 >     223,    -1,   300,   227,   301,    -1,   301,    -1,    47,    -1,
1130 >     130,    -1,    65,    -1,   213,    -1,   180,    -1,   201,    -1,
1131 >     219,    -1,    40,    -1,    25,    -1,   208,    -1,   129,    -1,
1132 >       4,    -1,   190,    -1,   205,    -1,   112,    -1,   131,    -1,
1133 >     195,    -1,    94,    -1,    -1,    17,   303,   225,   304,   224,
1134 >     223,    -1,   304,   305,    -1,   305,    -1,   306,    -1,   316,
1135 >      -1,   317,    -1,   307,    -1,   318,    -1,   308,    -1,   309,
1136 >      -1,   310,    -1,   311,    -1,   312,    -1,   313,    -1,   314,
1137 >      -1,   315,    -1,   319,    -1,   320,    -1,   321,    -1,     1,
1138 >     223,    -1,    96,   226,   123,   223,    -1,   121,   226,   232,
1139 >     223,    -1,   107,   226,   105,   223,    -1,    19,   226,   232,
1140 >     223,    -1,    84,   226,   105,   223,    -1,    78,   226,   105,
1141 >     223,    -1,    80,   226,   105,   223,    -1,    79,   226,   105,
1142 >     223,    -1,   149,   226,   234,   223,    -1,   191,   226,   234,
1143 >     223,    -1,    15,   226,   105,   223,    -1,    16,   226,   105,
1144 >     223,    -1,   106,   226,   105,   223,    -1,    90,   226,   232,
1145 >     223,    -1,    91,   226,   232,   223,    -1,    -1,    36,   322,
1146 >     226,   323,   223,    -1,   323,   227,   324,    -1,   324,    -1,
1147 >      92,    -1,    93,    -1,    -1,    71,   326,   225,   331,   224,
1148 >     223,    -1,    -1,    36,   328,   226,   329,   223,    -1,   329,
1149 >     227,   330,    -1,   330,    -1,   198,    -1,    51,    -1,   193,
1150 >      -1,   331,   332,    -1,   332,    -1,   333,    -1,   327,    -1,
1151 >     337,    -1,   338,    -1,     1,   223,    -1,    -1,   122,   226,
1152 >     335,   334,   223,    -1,   335,   227,   336,    -1,   336,    -1,
1153 >     105,    -1,   105,   170,   105,    -1,    62,   226,   123,   223,
1154 >      -1,    57,   226,   123,   223,    -1,    -1,    48,   340,   225,
1155 >     341,   224,   223,    -1,   341,   342,    -1,   342,    -1,   343,
1156 >      -1,   344,    -1,   345,    -1,   347,    -1,   351,    -1,   352,
1157 >      -1,   353,    -1,   346,    -1,     1,   223,    -1,   214,   226,
1158 >     123,   223,    -1,   118,   226,   123,   223,    -1,    17,   226,
1159 >     123,   223,    -1,    32,   226,   166,   223,    -1,    -1,    36,
1160 >     348,   226,   349,   223,    -1,   349,   227,   350,    -1,   350,
1161 >      -1,   160,    -1,    33,    -1,    66,    -1,    49,    -1,    13,
1162 >      -1,   104,    -1,    43,    -1,   141,    -1,   207,    -1,    97,
1163 >      -1,   159,   226,   123,   223,    -1,   127,   226,   123,   223,
1164 >      -1,   126,   226,   105,   223,    -1,    -1,   140,   355,   225,
1165 >     356,   224,   223,    -1,   356,   357,    -1,   357,    -1,   358,
1166 >      -1,   359,    -1,   360,    -1,     1,   223,    -1,    73,   226,
1167 >     123,   223,    -1,   125,   226,   123,   223,    -1,    34,   226,
1168 >     123,   223,    -1,   209,   225,   362,   224,   223,    -1,   362,
1169 >     363,    -1,   363,    -1,   364,    -1,     1,    -1,    96,   226,
1170 >     123,   223,    -1,    -1,   155,   366,   225,   367,   224,   223,
1171 >      -1,   367,   368,    -1,   368,    -1,   369,    -1,   370,    -1,
1172 >     371,    -1,     1,   223,    -1,    96,   226,   123,   223,    -1,
1173 >     214,   226,   123,   223,    -1,    -1,   157,   372,   226,   373,
1174 >     223,    -1,   373,   227,   374,    -1,   374,    -1,    65,    -1,
1175 >     213,    -1,   180,    -1,   201,    -1,   219,    -1,   204,    -1,
1176 >     140,    -1,   203,    -1,   186,    -1,   171,    -1,    -1,   156,
1177 >     376,   225,   377,   224,   223,    -1,   377,   378,    -1,   378,
1178 >      -1,   379,    -1,   380,    -1,     1,   223,    -1,    96,   226,
1179 >     123,   223,    -1,    -1,   157,   381,   226,   382,   223,    -1,
1180 >     382,   227,   383,    -1,   383,    -1,    65,    -1,   213,    -1,
1181 >     180,    -1,   201,    -1,   219,    -1,   204,    -1,   140,    -1,
1182 >     203,    -1,   186,    -1,   171,    -1,    -1,    18,   385,   225,
1183 >     386,   224,   223,    -1,   386,   387,    -1,   387,    -1,   388,
1184 >      -1,   389,    -1,   390,    -1,   391,    -1,   392,    -1,   394,
1185 >      -1,   393,    -1,   403,    -1,   395,    -1,   400,    -1,   401,
1186 >      -1,   402,    -1,   399,    -1,     1,   223,    -1,    96,   226,
1187 >     123,   223,    -1,    57,   226,   123,   223,    -1,   217,   226,
1188 >     123,   223,    -1,   150,   226,   123,   223,    -1,     3,   226,
1189 >     123,   223,    -1,   122,   226,   105,   223,    -1,     5,   226,
1190 >     184,   223,    -1,     5,   226,   185,   223,    -1,    -1,    36,
1191 >     396,   226,   397,   223,    -1,   397,   227,   398,    -1,   398,
1192 >      -1,     8,    -1,   198,    -1,    32,   226,   166,   223,    -1,
1193 >      59,   226,   123,   223,    -1,    69,   226,   123,   223,    -1,
1194 >      17,   226,   123,   223,    -1,   177,   226,   123,   223,    -1,
1195 >      -1,    63,   405,   225,   410,   224,   223,    -1,    -1,   157,
1196 >     407,   226,   408,   223,    -1,   408,   227,   409,    -1,   409,
1197 >      -1,   128,    -1,   410,   411,    -1,   411,    -1,   412,    -1,
1198 >     413,    -1,   406,    -1,     1,    -1,   214,   226,   123,   223,
1199 >      -1,   125,   226,   123,   223,    -1,    -1,    23,   415,   225,
1200 >     416,   224,   223,    -1,   416,   417,    -1,   417,    -1,   418,
1201 >      -1,   419,    -1,     1,    -1,    62,   226,   123,   223,    -1,
1202 >     125,   226,   123,   223,    -1,    34,   225,   421,   224,   223,
1203 >      -1,   421,   422,    -1,   422,    -1,   423,    -1,     1,    -1,
1204 >      62,   226,   123,   223,    -1,    -1,    38,   425,   225,   430,
1205 >     224,   223,    -1,    -1,   157,   427,   226,   428,   223,    -1,
1206 >     428,   227,   429,    -1,   429,    -1,   128,    -1,   430,   431,
1207 >      -1,   431,    -1,   432,    -1,   433,    -1,   426,    -1,     1,
1208 >      -1,    96,   226,   123,   223,    -1,   125,   226,   123,   223,
1209 >      -1,    39,   225,   435,   224,   223,    -1,   435,   436,    -1,
1210 >     436,    -1,   445,    -1,   446,    -1,   448,    -1,   449,    -1,
1211 >     450,    -1,   451,    -1,   452,    -1,   453,    -1,   454,    -1,
1212 >     455,    -1,   444,    -1,   457,    -1,   458,    -1,   472,    -1,
1213 >     460,    -1,   462,    -1,   464,    -1,   463,    -1,   467,    -1,
1214 >     461,    -1,   468,    -1,   469,    -1,   470,    -1,   471,    -1,
1215 >     484,    -1,   473,    -1,   474,    -1,   475,    -1,   480,    -1,
1216 >     465,    -1,   466,    -1,   490,    -1,   488,    -1,   489,    -1,
1217 >     447,    -1,   479,    -1,   456,    -1,   477,    -1,   478,    -1,
1218 >     443,    -1,   438,    -1,   439,    -1,   440,    -1,   441,    -1,
1219 >     442,    -1,   459,    -1,   437,    -1,   476,    -1,     1,    -1,
1220 >      87,   226,   105,   223,    -1,    42,   226,   166,   223,    -1,
1221 >      41,   226,   232,   223,    -1,    44,   226,   232,   223,    -1,
1222 >      45,   226,   105,   223,    -1,    46,   226,   105,   223,    -1,
1223 >     154,   226,   166,   223,    -1,    64,   226,   232,   223,    -1,
1224 >      56,   226,   166,   223,    -1,    60,   226,   166,   223,    -1,
1225 >      28,   226,   166,   223,    -1,    35,   226,   166,   223,    -1,
1226 >       6,   226,   166,   223,    -1,    83,   226,   232,   223,    -1,
1227 >      81,   226,   105,   223,    -1,    74,   226,   105,   223,    -1,
1228 >       7,   226,   232,   223,    -1,   169,   226,   232,   223,    -1,
1229 >     168,   226,   232,   223,    -1,    50,   226,   105,   223,    -1,
1230 >      61,   226,   166,   223,    -1,   220,   226,   166,   223,    -1,
1231 >     161,   226,   166,   223,    -1,   164,   226,   166,   223,    -1,
1232 >     165,   226,   166,   223,    -1,   163,   226,   166,   223,    -1,
1233 >     163,   226,   167,   223,    -1,   162,   226,   166,   223,    -1,
1234 >     162,   226,   167,   223,    -1,   116,   226,   232,   223,    -1,
1235 >      12,   226,   232,   223,    -1,   109,   226,   166,   223,    -1,
1236 >     117,   226,   232,   223,    -1,   158,   226,   166,   223,    -1,
1237 >     103,   226,   166,   223,    -1,   212,   226,   166,   223,    -1,
1238 >     111,   226,   166,   223,    -1,    29,   226,   105,   223,    -1,
1239 >      85,   226,   105,   223,    -1,   215,   226,   166,   223,    -1,
1240 >      30,   226,   123,   223,    -1,   210,   226,   123,   223,    -1,
1241 >     120,   226,   166,   223,    -1,    26,   226,   166,   223,    -1,
1242 >     211,   226,   232,   223,    -1,    -1,   113,   481,   226,   482,
1243 >     223,    -1,   482,   227,   483,    -1,   483,    -1,   172,    -1,
1244 >     175,    -1,   176,    -1,   178,    -1,   179,    -1,   182,    -1,
1245 >      51,    -1,   196,    -1,   188,    -1,   192,    -1,   200,    -1,
1246 >     197,    -1,   181,    -1,   190,    -1,   194,    -1,   183,    -1,
1247 >     206,    -1,   173,    -1,   174,    -1,   186,    -1,    -1,   110,
1248 >     485,   226,   486,   223,    -1,   486,   227,   487,    -1,   487,
1249 >      -1,   172,    -1,   175,    -1,   176,    -1,   178,    -1,   179,
1250 >      -1,   182,    -1,   196,    -1,    51,    -1,   188,    -1,   192,
1251 >      -1,   200,    -1,   197,    -1,   181,    -1,   190,    -1,   194,
1252 >      -1,   183,    -1,   206,    -1,   173,    -1,   174,    -1,   186,
1253 >      -1,   189,    -1,    88,   226,   105,   223,    -1,    89,   226,
1254 >     105,   223,    -1,    20,   226,   105,   223,    -1,    14,   225,
1255 >     492,   224,   223,    -1,   492,   493,    -1,   493,    -1,   500,
1256 >      -1,   495,    -1,   496,    -1,   497,    -1,   498,    -1,   499,
1257 >      -1,   501,    -1,   502,    -1,   503,    -1,   504,    -1,   505,
1258 >      -1,   506,    -1,   494,    -1,     1,    -1,    27,   226,   166,
1259 >     223,    -1,    67,   226,   232,   223,    -1,    68,   226,   232,
1260 >     223,    -1,    77,   226,   105,   223,    -1,    76,   226,   105,
1261 >     223,    -1,   124,   226,   166,   223,    -1,    75,   226,   105,
1262 >     223,    -1,    22,   226,   105,   223,    -1,    21,   226,   105,
1263 >     223,    -1,   101,   226,   166,   223,    -1,   102,   226,   166,
1264 >     223,    -1,   114,   226,   105,   223,    -1,   115,   226,   232,
1265 >     223,    -1,   151,   225,   508,   224,   223,    -1,   508,   509,
1266 >      -1,   509,    -1,   510,    -1,   511,    -1,   512,    -1,   514,
1267 >      -1,   515,    -1,   513,    -1,   516,    -1,     1,    -1,    37,
1268 >     226,   166,   223,    -1,    54,   226,   166,   223,    -1,    55,
1269 >     226,   166,   223,    -1,    52,   226,   123,   223,    -1,    70,
1270 >     226,   232,   223,    -1,    51,   226,   166,   223,    -1,    53,
1271 >     226,   166,   223,    -1
1272   };
1273  
1274   /* YYRLINE[YYN] -- source line where rule number YYN was defined.  */
1275   static const yytype_uint16 yyrline[] =
1276   {
1277 <       0,   374,   374,   375,   378,   379,   380,   381,   382,   383,
1278 <     384,   385,   386,   387,   388,   389,   390,   391,   392,   393,
1279 <     394,   395,   396,   397,   398,   399,   400,   404,   404,   405,
1280 <     409,   413,   417,   421,   425,   431,   431,   432,   433,   434,
1281 <     435,   442,   445,   445,   446,   446,   446,   448,   454,   461,
1282 <     463,   463,   464,   464,   465,   465,   466,   466,   467,   468,
1283 <     468,   469,   469,   470,   471,   475,   474,   493,   493,   494,
1284 <     500,   508,   542,   602,   617,   632,   641,   655,   664,   692,
1285 <     722,   745,   754,   756,   756,   757,   757,   758,   758,   760,
1286 <     769,   778,   790,   791,   791,   793,   793,   793,   794,   796,
1287 <     802,   809,   809,   819,   820,   822,   822,   823,   823,   825,
1288 <     830,   833,   839,   838,   844,   844,   845,   849,   853,   857,
1289 <     861,   865,   869,   880,   879,   977,   977,   978,   978,   978,
1290 <     979,   979,   979,   980,   980,   980,   982,   994,  1031,  1043,
1291 <    1054,  1096,  1106,  1105,  1111,  1111,  1112,  1116,  1120,  1124,
1292 <    1128,  1132,  1136,  1140,  1144,  1148,  1152,  1156,  1160,  1164,
1293 <    1168,  1172,  1176,  1180,  1184,  1188,  1195,  1194,  1200,  1200,
1294 <    1201,  1205,  1209,  1213,  1217,  1221,  1225,  1229,  1233,  1237,
1295 <    1241,  1245,  1249,  1253,  1257,  1261,  1265,  1269,  1280,  1279,
1296 <    1329,  1329,  1330,  1331,  1331,  1332,  1333,  1334,  1335,  1336,
1297 <    1337,  1338,  1339,  1340,  1341,  1342,  1344,  1353,  1359,  1365,
1298 <    1371,  1377,  1383,  1389,  1395,  1401,  1407,  1413,  1419,  1429,
1299 <    1428,  1445,  1444,  1449,  1449,  1450,  1454,  1458,  1466,  1466,
1300 <    1467,  1467,  1467,  1467,  1467,  1469,  1469,  1471,  1471,  1473,
1301 <    1487,  1507,  1516,  1529,  1528,  1597,  1597,  1598,  1598,  1598,
1302 <    1598,  1599,  1599,  1599,  1600,  1600,  1602,  1639,  1652,  1661,
1303 <    1673,  1672,  1676,  1676,  1677,  1681,  1685,  1689,  1693,  1697,
1304 <    1701,  1705,  1709,  1716,  1735,  1745,  1759,  1758,  1774,  1774,
1305 <    1775,  1775,  1775,  1775,  1777,  1786,  1801,  1814,  1816,  1816,
1306 <    1817,  1817,  1819,  1835,  1834,  1850,  1850,  1851,  1851,  1851,
1307 <    1851,  1853,  1862,  1885,  1884,  1890,  1890,  1891,  1895,  1899,
1308 <    1903,  1907,  1911,  1915,  1919,  1923,  1927,  1937,  1936,  1953,
1309 <    1953,  1954,  1954,  1954,  1956,  1963,  1962,  1968,  1968,  1969,
1310 <    1973,  1977,  1981,  1985,  1989,  1993,  1997,  2001,  2005,  2015,
1311 <    2014,  2143,  2143,  2144,  2144,  2144,  2145,  2145,  2146,  2146,
1312 <    2147,  2147,  2147,  2148,  2148,  2149,  2151,  2163,  2172,  2198,
1313 <    2216,  2234,  2240,  2244,  2253,  2252,  2256,  2256,  2257,  2261,
1314 <    2265,  2271,  2282,  2295,  2308,  2321,  2320,  2384,  2383,  2387,
1315 <    2387,  2388,  2394,  2394,  2395,  2395,  2395,  2395,  2397,  2416,
1316 <    2426,  2425,  2448,  2448,  2449,  2449,  2449,  2451,  2457,  2466,
1317 <    2468,  2468,  2469,  2469,  2471,  2490,  2489,  2537,  2536,  2540,
1318 <    2540,  2541,  2547,  2547,  2548,  2548,  2548,  2548,  2550,  2556,
1319 <    2565,  2568,  2568,  2569,  2569,  2570,  2570,  2571,  2571,  2572,
1320 <    2572,  2573,  2573,  2574,  2574,  2575,  2575,  2576,  2576,  2577,
1321 <    2577,  2578,  2578,  2579,  2579,  2580,  2580,  2581,  2581,  2582,
1322 <    2583,  2583,  2584,  2584,  2585,  2585,  2586,  2586,  2587,  2587,
1323 <    2588,  2589,  2590,  2590,  2591,  2592,  2593,  2593,  2594,  2594,
1324 <    2595,  2595,  2596,  2596,  2597,  2600,  2605,  2610,  2615,  2620,
1325 <    2625,  2630,  2635,  2640,  2645,  2650,  2655,  2660,  2665,  2670,
1326 <    2675,  2680,  2685,  2691,  2702,  2707,  2716,  2721,  2726,  2731,
1327 <    2736,  2741,  2744,  2749,  2752,  2757,  2762,  2767,  2772,  2777,
1328 <    2782,  2787,  2792,  2797,  2808,  2813,  2818,  2823,  2832,  2841,
1329 <    2846,  2851,  2857,  2856,  2861,  2861,  2862,  2865,  2868,  2871,
1330 <    2874,  2877,  2880,  2883,  2886,  2889,  2892,  2895,  2898,  2901,
1331 <    2904,  2907,  2910,  2913,  2916,  2919,  2925,  2924,  2929,  2929,
1332 <    2930,  2933,  2936,  2939,  2942,  2945,  2948,  2951,  2954,  2957,
1333 <    2960,  2963,  2966,  2969,  2972,  2975,  2978,  2981,  2984,  2987,
1334 <    2992,  2997,  3002,  3007,  3017,  3016,  3040,  3040,  3041,  3042,
1335 <    3043,  3044,  3045,  3046,  3047,  3049,  3055,  3062,  3061,  3066,
1336 <    3066,  3067,  3071,  3077,  3111,  3121,  3120,  3170,  3170,  3171,
1337 <    3175,  3184,  3187,  3187,  3188,  3188,  3189,  3189,  3190,  3190,
1338 <    3191,  3191,  3192,  3192,  3193,  3194,  3194,  3195,  3195,  3196,
1339 <    3196,  3197,  3197,  3199,  3204,  3209,  3214,  3219,  3224,  3229,
1340 <    3234,  3239,  3244,  3249,  3254,  3259,  3264,  3269,  3274,  3279,
1341 <    3284,  3292,  3295,  3295,  3296,  3296,  3297,  3298,  3299,  3299,
1348 <    3300,  3301,  3303,  3309,  3315,  3324,  3338,  3344,  3350
1277 >       0,   364,   364,   365,   368,   369,   370,   371,   372,   373,
1278 >     374,   375,   376,   377,   378,   379,   380,   381,   382,   383,
1279 >     384,   385,   386,   387,   388,   389,   393,   393,   394,   398,
1280 >     402,   406,   410,   414,   418,   422,   428,   428,   429,   430,
1281 >     431,   432,   439,   442,   442,   443,   443,   443,   445,   451,
1282 >     458,   460,   460,   461,   461,   462,   462,   463,   463,   464,
1283 >     464,   465,   465,   466,   466,   467,   467,   468,   468,   469,
1284 >     470,   473,   474,   476,   476,   477,   483,   491,   491,   492,
1285 >     498,   506,   548,   607,   635,   643,   658,   673,   682,   696,
1286 >     705,   733,   763,   788,   810,   832,   841,   843,   843,   844,
1287 >     844,   845,   845,   847,   856,   865,   877,   878,   878,   880,
1288 >     880,   881,   883,   890,   890,   903,   904,   906,   906,   907,
1289 >     907,   909,   917,   920,   926,   925,   931,   931,   932,   936,
1290 >     940,   944,   948,   952,   956,   967,   966,  1043,  1043,  1044,
1291 >    1044,  1044,  1045,  1045,  1045,  1046,  1046,  1046,  1048,  1054,
1292 >    1060,  1066,  1077,  1083,  1090,  1089,  1095,  1095,  1096,  1100,
1293 >    1104,  1108,  1112,  1116,  1120,  1124,  1128,  1132,  1136,  1140,
1294 >    1144,  1148,  1152,  1156,  1160,  1164,  1168,  1172,  1176,  1183,
1295 >    1182,  1188,  1188,  1189,  1193,  1197,  1201,  1205,  1209,  1213,
1296 >    1217,  1221,  1225,  1229,  1233,  1237,  1241,  1245,  1249,  1253,
1297 >    1257,  1268,  1267,  1328,  1328,  1329,  1330,  1330,  1331,  1332,
1298 >    1333,  1334,  1335,  1336,  1337,  1338,  1339,  1339,  1340,  1341,
1299 >    1342,  1343,  1345,  1351,  1357,  1363,  1369,  1375,  1381,  1387,
1300 >    1393,  1399,  1406,  1412,  1418,  1424,  1433,  1443,  1442,  1448,
1301 >    1448,  1449,  1453,  1464,  1463,  1470,  1469,  1474,  1474,  1475,
1302 >    1479,  1483,  1489,  1489,  1490,  1490,  1490,  1490,  1490,  1492,
1303 >    1492,  1494,  1494,  1496,  1510,  1530,  1536,  1546,  1545,  1587,
1304 >    1587,  1588,  1588,  1588,  1588,  1589,  1589,  1589,  1590,  1590,
1305 >    1592,  1598,  1604,  1610,  1622,  1621,  1627,  1627,  1628,  1632,
1306 >    1636,  1640,  1644,  1648,  1652,  1656,  1660,  1664,  1670,  1684,
1307 >    1693,  1707,  1706,  1721,  1721,  1722,  1722,  1722,  1722,  1724,
1308 >    1730,  1736,  1746,  1748,  1748,  1749,  1749,  1751,  1767,  1766,
1309 >    1791,  1791,  1792,  1792,  1792,  1792,  1794,  1800,  1820,  1819,
1310 >    1825,  1825,  1826,  1830,  1834,  1838,  1842,  1846,  1850,  1854,
1311 >    1858,  1862,  1872,  1871,  1892,  1892,  1893,  1893,  1893,  1895,
1312 >    1902,  1901,  1907,  1907,  1908,  1912,  1916,  1920,  1924,  1928,
1313 >    1932,  1936,  1940,  1944,  1954,  1953,  2019,  2019,  2020,  2020,
1314 >    2020,  2021,  2021,  2022,  2022,  2022,  2023,  2023,  2023,  2024,
1315 >    2024,  2025,  2027,  2033,  2039,  2045,  2058,  2071,  2077,  2081,
1316 >    2090,  2089,  2094,  2094,  2095,  2099,  2105,  2116,  2122,  2128,
1317 >    2134,  2150,  2149,  2212,  2211,  2217,  2217,  2218,  2224,  2224,
1318 >    2225,  2225,  2225,  2225,  2227,  2247,  2257,  2256,  2283,  2283,
1319 >    2284,  2284,  2284,  2286,  2292,  2301,  2303,  2303,  2304,  2304,
1320 >    2306,  2324,  2323,  2369,  2368,  2374,  2374,  2375,  2381,  2381,
1321 >    2382,  2382,  2382,  2382,  2384,  2390,  2399,  2402,  2402,  2403,
1322 >    2403,  2404,  2404,  2405,  2405,  2406,  2406,  2407,  2407,  2408,
1323 >    2409,  2410,  2410,  2411,  2411,  2412,  2412,  2413,  2413,  2414,
1324 >    2414,  2415,  2415,  2416,  2416,  2417,  2417,  2418,  2418,  2419,
1325 >    2419,  2420,  2420,  2421,  2422,  2422,  2423,  2424,  2425,  2425,
1326 >    2426,  2426,  2427,  2428,  2429,  2430,  2430,  2431,  2434,  2439,
1327 >    2445,  2451,  2457,  2462,  2467,  2472,  2477,  2482,  2487,  2492,
1328 >    2497,  2502,  2507,  2512,  2517,  2522,  2527,  2533,  2544,  2549,
1329 >    2554,  2559,  2564,  2569,  2572,  2577,  2580,  2585,  2590,  2595,
1330 >    2600,  2605,  2610,  2615,  2620,  2625,  2630,  2635,  2640,  2649,
1331 >    2658,  2663,  2668,  2674,  2673,  2678,  2678,  2679,  2682,  2685,
1332 >    2688,  2691,  2694,  2697,  2700,  2703,  2706,  2709,  2712,  2715,
1333 >    2718,  2721,  2724,  2727,  2730,  2733,  2736,  2742,  2741,  2746,
1334 >    2746,  2747,  2750,  2753,  2756,  2759,  2762,  2765,  2768,  2771,
1335 >    2774,  2777,  2780,  2783,  2786,  2789,  2792,  2795,  2798,  2801,
1336 >    2804,  2807,  2812,  2817,  2822,  2831,  2834,  2834,  2835,  2836,
1337 >    2836,  2837,  2837,  2838,  2838,  2839,  2840,  2841,  2842,  2842,
1338 >    2843,  2843,  2845,  2850,  2855,  2860,  2865,  2870,  2875,  2880,
1339 >    2885,  2890,  2895,  2900,  2905,  2913,  2916,  2916,  2917,  2917,
1340 >    2918,  2919,  2920,  2920,  2921,  2922,  2924,  2930,  2936,  2942,
1341 >    2951,  2965,  2971
1342   };
1343   #endif
1344  
1345 < #if YYDEBUG || YYERROR_VERBOSE || YYTOKEN_TABLE
1345 > #if YYDEBUG || YYERROR_VERBOSE || 0
1346   /* YYTNAME[SYMBOL-NUM] -- String name of the symbol SYMBOL-NUM.
1347     First, the terminals, then, starting at YYNTOKENS, nonterminals.  */
1348   static const char *const yytname[] =
1349   {
1350 <  "$end", "error", "$undefined", "ACCEPT_PASSWORD", "ACTION", "ADMIN",
1351 <  "AFTYPE", "T_ALLOW", "ANTI_NICK_FLOOD", "ANTI_SPAM_EXIT_MESSAGE_TIME",
1352 <  "AUTOCONN", "T_BLOCK", "BURST_AWAY", "BURST_TOPICWHO", "BYTES", "KBYTES",
1360 <  "MBYTES", "GBYTES", "TBYTES", "CALLER_ID_WAIT", "CAN_FLOOD", "CHANNEL",
1350 >  "$end", "error", "$undefined", "ACCEPT_PASSWORD", "ADMIN", "AFTYPE",
1351 >  "ANTI_NICK_FLOOD", "ANTI_SPAM_EXIT_MESSAGE_TIME", "AUTOCONN", "BYTES",
1352 >  "KBYTES", "MBYTES", "CALLER_ID_WAIT", "CAN_FLOOD", "CHANNEL",
1353    "CIDR_BITLEN_IPV4", "CIDR_BITLEN_IPV6", "CLASS", "CONNECT",
1354    "CONNECTFREQ", "DEFAULT_FLOODCOUNT", "DEFAULT_SPLIT_SERVER_COUNT",
1355    "DEFAULT_SPLIT_USER_COUNT", "DENY", "DESCRIPTION", "DIE", "DISABLE_AUTH",
1356 <  "DISABLE_FAKE_CHANNELS", "DISABLE_HIDDEN", "DISABLE_LOCAL_CHANNELS",
1357 <  "DISABLE_REMOTE_COMMANDS", "DOTS_IN_IDENT", "DURATION", "EGDPOOL_PATH",
1366 <  "EMAIL", "ENABLE", "ENCRYPTED", "EXCEED_LIMIT", "EXEMPT",
1356 >  "DISABLE_FAKE_CHANNELS", "DISABLE_REMOTE_COMMANDS", "DOTS_IN_IDENT",
1357 >  "EGDPOOL_PATH", "EMAIL", "ENCRYPTED", "EXCEED_LIMIT", "EXEMPT",
1358    "FAILED_OPER_NOTICE", "IRCD_FLAGS", "FLATTEN_LINKS", "GECOS", "GENERAL",
1359 <  "GLINE", "GLINES", "GLINE_EXEMPT", "GLINE_TIME", "GLINE_MIN_CIDR",
1360 <  "GLINE_MIN_CIDR6", "GLOBAL_KILL", "IRCD_AUTH", "NEED_IDENT",
1361 <  "HAVENT_READ_CONF", "HIDDEN", "HIDDEN_NAME", "HIDE_SERVER_IPS",
1362 <  "HIDE_SERVERS", "HIDE_SPOOF_IPS", "HOST", "HUB", "HUB_MASK",
1363 <  "IGNORE_BOGUS_TS", "INVISIBLE_ON_CONNECT", "IP", "KILL",
1364 <  "KILL_CHASE_TIME_LIMIT", "KLINE", "KLINE_EXEMPT", "KLINE_REASON",
1365 <  "KLINE_WITH_REASON", "KNOCK_DELAY", "KNOCK_DELAY_CHANNEL", "LEAF_MASK",
1366 <  "LINKS_DELAY", "LISTEN", "T_LOG", "MAX_ACCEPT", "MAX_BANS",
1367 <  "MAX_CHANS_PER_USER", "MAX_GLOBAL", "MAX_IDENT", "MAX_LOCAL",
1368 <  "MAX_NICK_CHANGES", "MAX_NICK_TIME", "MAX_NUMBER", "MAX_TARGETS",
1369 <  "MAX_WATCH", "MESSAGE_LOCALE", "MIN_NONWILDCARD",
1370 <  "MIN_NONWILDCARD_SIMPLE", "MODULE", "MODULES", "NAME", "NEED_PASSWORD",
1371 <  "NETWORK_DESC", "NETWORK_NAME", "NICK", "NICK_CHANGES",
1359 >  "GLINE", "GLINE_DURATION", "GLINE_ENABLE", "GLINE_EXEMPT",
1360 >  "GLINE_REQUEST_DURATION", "GLINE_MIN_CIDR", "GLINE_MIN_CIDR6",
1361 >  "GLOBAL_KILL", "IRCD_AUTH", "NEED_IDENT", "HAVENT_READ_CONF", "HIDDEN",
1362 >  "HIDDEN_NAME", "HIDE_SERVER_IPS", "HIDE_SERVERS", "HIDE_SERVICES",
1363 >  "HIDE_SPOOF_IPS", "HOST", "HUB", "HUB_MASK", "IGNORE_BOGUS_TS",
1364 >  "INVISIBLE_ON_CONNECT", "IP", "KILL", "KILL_CHASE_TIME_LIMIT", "KLINE",
1365 >  "KLINE_EXEMPT", "KNOCK_DELAY", "KNOCK_DELAY_CHANNEL", "LEAF_MASK",
1366 >  "LINKS_DELAY", "LISTEN", "T_LOG", "MASK", "MAX_ACCEPT", "MAX_BANS",
1367 >  "MAX_CHANS_PER_OPER", "MAX_CHANS_PER_USER", "MAX_GLOBAL", "MAX_IDENT",
1368 >  "MAX_LOCAL", "MAX_NICK_CHANGES", "MAX_NICK_LENGTH", "MAX_NICK_TIME",
1369 >  "MAX_NUMBER", "MAX_TARGETS", "MAX_TOPIC_LENGTH", "MAX_WATCH",
1370 >  "MIN_NONWILDCARD", "MIN_NONWILDCARD_SIMPLE", "MIN_IDLE", "MAX_IDLE",
1371 >  "RANDOM_IDLE", "HIDE_IDLE_FROM_OPERS", "MODULE", "MODULES", "NAME",
1372 >  "NEED_PASSWORD", "NETWORK_DESC", "NETWORK_NAME", "NICK",
1373    "NO_CREATE_ON_SPLIT", "NO_JOIN_ON_SPLIT", "NO_OPER_FLOOD", "NO_TILDE",
1374 <  "NUMBER", "NUMBER_PER_IDENT", "NUMBER_PER_CIDR", "NUMBER_PER_IP",
1375 <  "NUMBER_PER_IP_GLOBAL", "OPERATOR", "OPERS_BYPASS_CALLERID",
1376 <  "OPER_ONLY_UMODES", "OPER_PASS_RESV", "OPER_SPY_T", "OPER_UMODES",
1377 <  "JOIN_FLOOD_COUNT", "JOIN_FLOOD_TIME", "PACE_WAIT", "PACE_WAIT_SIMPLE",
1378 <  "PASSWORD", "PATH", "PING_COOKIE", "PING_TIME", "PING_WARNING", "PORT",
1379 <  "QSTRING", "QUIET_ON_BAN", "REASON", "REDIRPORT", "REDIRSERV", "REGEX_T",
1380 <  "REHASH", "TREJECT_HOLD_TIME", "REMOTE", "REMOTEBAN",
1381 <  "RESTRICT_CHANNELS", "RESTRICTED", "RSA_PRIVATE_KEY_FILE",
1390 <  "RSA_PUBLIC_KEY_FILE", "SSL_CERTIFICATE_FILE", "T_SSL_CONNECTION_METHOD",
1374 >  "NUMBER", "NUMBER_PER_CIDR", "NUMBER_PER_IP", "OPERATOR",
1375 >  "OPERS_BYPASS_CALLERID", "OPER_ONLY_UMODES", "OPER_PASS_RESV",
1376 >  "OPER_SPY_T", "OPER_UMODES", "JOIN_FLOOD_COUNT", "JOIN_FLOOD_TIME",
1377 >  "PACE_WAIT", "PACE_WAIT_SIMPLE", "PASSWORD", "PATH", "PING_COOKIE",
1378 >  "PING_TIME", "PORT", "QSTRING", "QUIET_ON_BAN", "REASON", "REDIRPORT",
1379 >  "REDIRSERV", "REGEX_T", "REHASH", "REMOTE", "REMOTEBAN",
1380 >  "RSA_PRIVATE_KEY_FILE", "RSA_PUBLIC_KEY_FILE", "SSL_CERTIFICATE_FILE",
1381 >  "SSL_DH_PARAM_FILE", "T_SSL_CLIENT_METHOD", "T_SSL_SERVER_METHOD",
1382    "T_SSLV3", "T_TLSV1", "RESV", "RESV_EXEMPT", "SECONDS", "MINUTES",
1383 <  "HOURS", "DAYS", "WEEKS", "SENDQ", "SEND_PASSWORD", "SERVERHIDE",
1384 <  "SERVERINFO", "IRCD_SID", "TKLINE_EXPIRE_NOTICES", "T_SHARED",
1385 <  "T_CLUSTER", "TYPE", "SHORT_MOTD", "SILENT", "SPOOF", "SPOOF_NOTICE",
1383 >  "HOURS", "DAYS", "WEEKS", "MONTHS", "YEARS", "SENDQ", "SEND_PASSWORD",
1384 >  "SERVERHIDE", "SERVERINFO", "IRCD_SID", "TKLINE_EXPIRE_NOTICES",
1385 >  "T_SHARED", "T_CLUSTER", "TYPE", "SHORT_MOTD", "SPOOF", "SPOOF_NOTICE",
1386    "STATS_E_DISABLED", "STATS_I_OPER_ONLY", "STATS_K_OPER_ONLY",
1387 <  "STATS_O_OPER_ONLY", "STATS_P_OPER_ONLY", "TBOOL", "TMASKED", "T_REJECT",
1387 >  "STATS_O_OPER_ONLY", "STATS_P_OPER_ONLY", "TBOOL", "TMASKED",
1388    "TS_MAX_DELTA", "TS_WARN_DELTA", "TWODOTS", "T_ALL", "T_BOTS",
1389    "T_SOFTCALLERID", "T_CALLERID", "T_CCONN", "T_CCONN_FULL",
1390 <  "T_CLIENT_FLOOD", "T_DEAF", "T_DEBUG", "T_DLINE", "T_DRONE",
1391 <  "T_EXTERNAL", "T_FULL", "T_INVISIBLE", "T_IPV4", "T_IPV6", "T_LOCOPS",
1392 <  "T_MAX_CLIENTS", "T_NCHANGE", "T_OPERWALL", "T_REJ", "T_SERVER",
1393 <  "T_SERVNOTICE", "T_SKILL", "T_SPY", "T_SSL", "T_UMODES", "T_UNAUTH",
1394 <  "T_UNDLINE", "T_UNLIMITED", "T_UNRESV", "T_UNXLINE", "T_GLOBOPS",
1395 <  "T_WALLOP", "T_RESTART", "T_SERVICE", "T_SERVICES_NAME", "T_TIMESTAMP",
1396 <  "THROTTLE_TIME", "TOPICBURST", "TRUE_NO_OPER_FLOOD", "TKLINE", "TXLINE",
1397 <  "TRESV", "UNKLINE", "USER", "USE_EGD", "USE_EXCEPT", "USE_INVEX",
1398 <  "USE_KNOCK", "USE_LOGGING", "USE_WHOIS_ACTUALLY", "VHOST", "VHOST6",
1399 <  "XLINE", "WARN", "WARN_NO_NLINE", "T_SIZE", "T_FILE", "';'", "'}'",
1400 <  "'{'", "'='", "','", "$accept", "conf", "conf_item", "timespec_",
1401 <  "timespec", "sizespec_", "sizespec", "modules_entry", "modules_items",
1402 <  "modules_item", "modules_module", "modules_path", "serverinfo_entry",
1403 <  "serverinfo_items", "serverinfo_item",
1404 <  "serverinfo_ssl_connection_method", "$@1", "method_types",
1405 <  "method_type_item", "serverinfo_ssl_certificate_file",
1406 <  "serverinfo_rsa_private_key_file", "serverinfo_name", "serverinfo_sid",
1390 >  "T_SSL_CIPHER_LIST", "T_DEAF", "T_DEBUG", "T_DLINE", "T_EXTERNAL",
1391 >  "T_FULL", "T_INVISIBLE", "T_IPV4", "T_IPV6", "T_LOCOPS", "T_MAX_CLIENTS",
1392 >  "T_NCHANGE", "T_NONONREG", "T_OPERWALL", "T_RECVQ", "T_REJ", "T_SERVER",
1393 >  "T_SERVNOTICE", "T_SET", "T_SKILL", "T_SPY", "T_SSL", "T_UMODES",
1394 >  "T_UNAUTH", "T_UNDLINE", "T_UNLIMITED", "T_UNRESV", "T_UNXLINE",
1395 >  "T_GLOBOPS", "T_WALLOP", "T_WEBIRC", "T_RESTART", "T_SERVICE",
1396 >  "T_SERVICES_NAME", "THROTTLE_TIME", "TRUE_NO_OPER_FLOOD", "UNKLINE",
1397 >  "USER", "USE_EGD", "USE_LOGGING", "VHOST", "VHOST6", "XLINE",
1398 >  "WARN_NO_NLINE", "T_SIZE", "T_FILE", "';'", "'}'", "'{'", "'='", "','",
1399 >  "$accept", "conf", "conf_item", "timespec_", "timespec", "sizespec_",
1400 >  "sizespec", "modules_entry", "modules_items", "modules_item",
1401 >  "modules_module", "modules_path", "serverinfo_entry", "serverinfo_items",
1402 >  "serverinfo_item", "serverinfo_ssl_client_method",
1403 >  "serverinfo_ssl_server_method", "client_method_types",
1404 >  "client_method_type_item", "server_method_types",
1405 >  "server_method_type_item", "serverinfo_ssl_certificate_file",
1406 >  "serverinfo_rsa_private_key_file", "serverinfo_ssl_dh_param_file",
1407 >  "serverinfo_ssl_cipher_list", "serverinfo_name", "serverinfo_sid",
1408    "serverinfo_description", "serverinfo_network_name",
1409    "serverinfo_network_desc", "serverinfo_vhost", "serverinfo_vhost6",
1410 <  "serverinfo_max_clients", "serverinfo_hub", "admin_entry", "admin_items",
1411 <  "admin_item", "admin_name", "admin_email", "admin_description",
1412 <  "logging_entry", "logging_items", "logging_item", "logging_use_logging",
1413 <  "logging_timestamp", "logging_file_entry", "$@2", "logging_file_items",
1410 >  "serverinfo_max_clients", "serverinfo_max_nick_length",
1411 >  "serverinfo_max_topic_length", "serverinfo_hub", "admin_entry",
1412 >  "admin_items", "admin_item", "admin_name", "admin_email",
1413 >  "admin_description", "logging_entry", "logging_items", "logging_item",
1414 >  "logging_use_logging", "logging_file_entry", "$@1", "logging_file_items",
1415    "logging_file_item", "logging_file_name", "logging_file_size",
1416 <  "logging_file_type", "$@3", "logging_file_type_items",
1417 <  "logging_file_type_item", "oper_entry", "$@4", "oper_items", "oper_item",
1416 >  "logging_file_type", "$@2", "logging_file_type_items",
1417 >  "logging_file_type_item", "oper_entry", "$@3", "oper_items", "oper_item",
1418    "oper_name", "oper_user", "oper_password", "oper_encrypted",
1419 <  "oper_rsa_public_key_file", "oper_class", "oper_umodes", "$@5",
1420 <  "oper_umodes_items", "oper_umodes_item", "oper_flags", "$@6",
1421 <  "oper_flags_items", "oper_flags_item", "class_entry", "$@7",
1419 >  "oper_rsa_public_key_file", "oper_class", "oper_umodes", "$@4",
1420 >  "oper_umodes_items", "oper_umodes_item", "oper_flags", "$@5",
1421 >  "oper_flags_items", "oper_flags_item", "class_entry", "$@6",
1422    "class_items", "class_item", "class_name", "class_ping_time",
1423 <  "class_ping_warning", "class_number_per_ip", "class_connectfreq",
1424 <  "class_max_number", "class_max_global", "class_max_local",
1425 <  "class_max_ident", "class_sendq", "class_cidr_bitlen_ipv4",
1426 <  "class_cidr_bitlen_ipv6", "class_number_per_cidr", "listen_entry", "$@8",
1427 <  "listen_flags", "$@9", "listen_flags_items", "listen_flags_item",
1428 <  "listen_items", "listen_item", "listen_port", "$@10", "port_items",
1429 <  "port_item", "listen_address", "listen_host", "auth_entry", "$@11",
1430 <  "auth_items", "auth_item", "auth_user", "auth_passwd", "auth_class",
1431 <  "auth_encrypted", "auth_flags", "$@12", "auth_flags_items",
1432 <  "auth_flags_item", "auth_spoof", "auth_redir_serv", "auth_redir_port",
1433 <  "resv_entry", "$@13", "resv_items", "resv_item", "resv_creason",
1434 <  "resv_channel", "resv_nick", "service_entry", "service_items",
1435 <  "service_item", "service_name", "shared_entry", "$@14", "shared_items",
1436 <  "shared_item", "shared_name", "shared_user", "shared_type", "$@15",
1437 <  "shared_types", "shared_type_item", "cluster_entry", "$@16",
1438 <  "cluster_items", "cluster_item", "cluster_name", "cluster_type", "$@17",
1439 <  "cluster_types", "cluster_type_item", "connect_entry", "$@18",
1440 <  "connect_items", "connect_item", "connect_name", "connect_host",
1441 <  "connect_vhost", "connect_send_password", "connect_accept_password",
1442 <  "connect_port", "connect_aftype", "connect_flags", "$@19",
1443 <  "connect_flags_items", "connect_flags_item", "connect_encrypted",
1444 <  "connect_hub_mask", "connect_leaf_mask", "connect_class", "kill_entry",
1445 <  "$@20", "kill_type", "$@21", "kill_type_items", "kill_type_item",
1446 <  "kill_items", "kill_item", "kill_user", "kill_reason", "deny_entry",
1447 <  "$@22", "deny_items", "deny_item", "deny_ip", "deny_reason",
1448 <  "exempt_entry", "exempt_items", "exempt_item", "exempt_ip",
1449 <  "gecos_entry", "$@23", "gecos_flags", "$@24", "gecos_flags_items",
1450 <  "gecos_flags_item", "gecos_items", "gecos_item", "gecos_name",
1451 <  "gecos_reason", "general_entry", "general_items", "general_item",
1452 <  "general_max_watch", "general_gline_min_cidr", "general_gline_min_cidr6",
1453 <  "general_use_whois_actually", "general_reject_hold_time",
1454 <  "general_tkline_expire_notices", "general_kill_chase_time_limit",
1455 <  "general_hide_spoof_ips", "general_ignore_bogus_ts",
1456 <  "general_disable_remote_commands", "general_failed_oper_notice",
1457 <  "general_anti_nick_flood", "general_max_nick_time",
1458 <  "general_max_nick_changes", "general_max_accept",
1459 <  "general_anti_spam_exit_message_time", "general_ts_warn_delta",
1460 <  "general_ts_max_delta", "general_havent_read_conf",
1461 <  "general_kline_with_reason", "general_kline_reason",
1462 <  "general_invisible_on_connect", "general_warn_no_nline",
1463 <  "general_stats_e_disabled", "general_stats_o_oper_only",
1464 <  "general_stats_P_oper_only", "general_stats_k_oper_only",
1465 <  "general_stats_i_oper_only", "general_pace_wait",
1466 <  "general_caller_id_wait", "general_opers_bypass_callerid",
1467 <  "general_pace_wait_simple", "general_short_motd",
1468 <  "general_no_oper_flood", "general_true_no_oper_flood",
1469 <  "general_oper_pass_resv", "general_message_locale",
1423 >  "class_number_per_ip", "class_connectfreq", "class_max_number",
1424 >  "class_max_global", "class_max_local", "class_max_ident", "class_sendq",
1425 >  "class_recvq", "class_cidr_bitlen_ipv4", "class_cidr_bitlen_ipv6",
1426 >  "class_number_per_cidr", "class_min_idle", "class_max_idle",
1427 >  "class_flags", "$@7", "class_flags_items", "class_flags_item",
1428 >  "listen_entry", "$@8", "listen_flags", "$@9", "listen_flags_items",
1429 >  "listen_flags_item", "listen_items", "listen_item", "listen_port",
1430 >  "$@10", "port_items", "port_item", "listen_address", "listen_host",
1431 >  "auth_entry", "$@11", "auth_items", "auth_item", "auth_user",
1432 >  "auth_passwd", "auth_class", "auth_encrypted", "auth_flags", "$@12",
1433 >  "auth_flags_items", "auth_flags_item", "auth_spoof", "auth_redir_serv",
1434 >  "auth_redir_port", "resv_entry", "$@13", "resv_items", "resv_item",
1435 >  "resv_mask", "resv_reason", "resv_exempt", "service_entry",
1436 >  "service_items", "service_item", "service_name", "shared_entry", "$@14",
1437 >  "shared_items", "shared_item", "shared_name", "shared_user",
1438 >  "shared_type", "$@15", "shared_types", "shared_type_item",
1439 >  "cluster_entry", "$@16", "cluster_items", "cluster_item", "cluster_name",
1440 >  "cluster_type", "$@17", "cluster_types", "cluster_type_item",
1441 >  "connect_entry", "$@18", "connect_items", "connect_item", "connect_name",
1442 >  "connect_host", "connect_vhost", "connect_send_password",
1443 >  "connect_accept_password", "connect_port", "connect_aftype",
1444 >  "connect_flags", "$@19", "connect_flags_items", "connect_flags_item",
1445 >  "connect_encrypted", "connect_hub_mask", "connect_leaf_mask",
1446 >  "connect_class", "connect_ssl_cipher_list", "kill_entry", "$@20",
1447 >  "kill_type", "$@21", "kill_type_items", "kill_type_item", "kill_items",
1448 >  "kill_item", "kill_user", "kill_reason", "deny_entry", "$@22",
1449 >  "deny_items", "deny_item", "deny_ip", "deny_reason", "exempt_entry",
1450 >  "exempt_items", "exempt_item", "exempt_ip", "gecos_entry", "$@23",
1451 >  "gecos_flags", "$@24", "gecos_flags_items", "gecos_flags_item",
1452 >  "gecos_items", "gecos_item", "gecos_name", "gecos_reason",
1453 >  "general_entry", "general_items", "general_item", "general_max_watch",
1454 >  "general_gline_enable", "general_gline_duration",
1455 >  "general_gline_request_duration", "general_gline_min_cidr",
1456 >  "general_gline_min_cidr6", "general_tkline_expire_notices",
1457 >  "general_kill_chase_time_limit", "general_hide_spoof_ips",
1458 >  "general_ignore_bogus_ts", "general_disable_remote_commands",
1459 >  "general_failed_oper_notice", "general_anti_nick_flood",
1460 >  "general_max_nick_time", "general_max_nick_changes",
1461 >  "general_max_accept", "general_anti_spam_exit_message_time",
1462 >  "general_ts_warn_delta", "general_ts_max_delta",
1463 >  "general_havent_read_conf", "general_invisible_on_connect",
1464 >  "general_warn_no_nline", "general_stats_e_disabled",
1465 >  "general_stats_o_oper_only", "general_stats_P_oper_only",
1466 >  "general_stats_k_oper_only", "general_stats_i_oper_only",
1467 >  "general_pace_wait", "general_caller_id_wait",
1468 >  "general_opers_bypass_callerid", "general_pace_wait_simple",
1469 >  "general_short_motd", "general_no_oper_flood",
1470 >  "general_true_no_oper_flood", "general_oper_pass_resv",
1471    "general_dots_in_ident", "general_max_targets", "general_use_egd",
1472    "general_egdpool_path", "general_services_name", "general_ping_cookie",
1473    "general_disable_auth", "general_throttle_time", "general_oper_umodes",
1474    "$@25", "umode_oitems", "umode_oitem", "general_oper_only_umodes",
1475    "$@26", "umode_items", "umode_item", "general_min_nonwildcard",
1476    "general_min_nonwildcard_simple", "general_default_floodcount",
1483  "general_client_flood", "gline_entry", "$@27", "gline_items",
1484  "gline_item", "gline_enable", "gline_duration", "gline_logging", "$@28",
1485  "gline_logging_types", "gline_logging_type_item", "gline_user",
1486  "gline_server", "gline_action", "$@29", "gdeny_types", "gdeny_type_item",
1477    "channel_entry", "channel_items", "channel_item",
1478 <  "channel_disable_fake_channels", "channel_restrict_channels",
1489 <  "channel_disable_local_channels", "channel_use_except",
1490 <  "channel_use_invex", "channel_use_knock", "channel_knock_delay",
1478 >  "channel_disable_fake_channels", "channel_knock_delay",
1479    "channel_knock_delay_channel", "channel_max_chans_per_user",
1480 <  "channel_quiet_on_ban", "channel_max_bans",
1480 >  "channel_max_chans_per_oper", "channel_quiet_on_ban", "channel_max_bans",
1481    "channel_default_split_user_count", "channel_default_split_server_count",
1482    "channel_no_create_on_split", "channel_no_join_on_split",
1483 <  "channel_burst_topicwho", "channel_jflood_count", "channel_jflood_time",
1484 <  "serverhide_entry", "serverhide_items", "serverhide_item",
1485 <  "serverhide_flatten_links", "serverhide_hide_servers",
1483 >  "channel_jflood_count", "channel_jflood_time", "serverhide_entry",
1484 >  "serverhide_items", "serverhide_item", "serverhide_flatten_links",
1485 >  "serverhide_hide_servers", "serverhide_hide_services",
1486    "serverhide_hidden_name", "serverhide_links_delay", "serverhide_hidden",
1487 <  "serverhide_disable_hidden", "serverhide_hide_server_ips", 0
1487 >  "serverhide_hide_server_ips", YY_NULL
1488   };
1489   #endif
1490  
# Line 1527 | Line 1515 | static const yytype_uint16 yytoknum[] =
1515       445,   446,   447,   448,   449,   450,   451,   452,   453,   454,
1516       455,   456,   457,   458,   459,   460,   461,   462,   463,   464,
1517       465,   466,   467,   468,   469,   470,   471,   472,   473,   474,
1518 <     475,   476,   477,   478,   479,   480,   481,   482,   483,   484,
1531 <     485,   486,   487,   488,   489,   490,   491,   492,   493,    59,
1532 <     125,   123,    61,    44
1518 >     475,   476,   477,    59,   125,   123,    61,    44
1519   };
1520   # endif
1521  
1522   /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives.  */
1523   static const yytype_uint16 yyr1[] =
1524   {
1525 <       0,   244,   245,   245,   246,   246,   246,   246,   246,   246,
1526 <     246,   246,   246,   246,   246,   246,   246,   246,   246,   246,
1527 <     246,   246,   246,   246,   246,   246,   246,   247,   247,   248,
1528 <     248,   248,   248,   248,   248,   249,   249,   250,   250,   250,
1529 <     250,   251,   252,   252,   253,   253,   253,   254,   255,   256,
1530 <     257,   257,   258,   258,   258,   258,   258,   258,   258,   258,
1531 <     258,   258,   258,   258,   258,   260,   259,   261,   261,   262,
1532 <     262,   263,   264,   265,   266,   267,   268,   269,   270,   271,
1533 <     272,   273,   274,   275,   275,   276,   276,   276,   276,   277,
1534 <     278,   279,   280,   281,   281,   282,   282,   282,   282,   283,
1535 <     284,   286,   285,   287,   287,   288,   288,   288,   288,   289,
1536 <     290,   290,   292,   291,   293,   293,   294,   294,   294,   294,
1537 <     294,   294,   294,   296,   295,   297,   297,   298,   298,   298,
1538 <     298,   298,   298,   298,   298,   298,   299,   300,   301,   302,
1539 <     303,   304,   306,   305,   307,   307,   308,   308,   308,   308,
1540 <     308,   308,   308,   308,   308,   308,   308,   308,   308,   308,
1541 <     308,   308,   308,   308,   308,   308,   310,   309,   311,   311,
1542 <     312,   312,   312,   312,   312,   312,   312,   312,   312,   312,
1543 <     312,   312,   312,   312,   312,   312,   312,   312,   314,   313,
1544 <     315,   315,   316,   316,   316,   316,   316,   316,   316,   316,
1545 <     316,   316,   316,   316,   316,   316,   317,   318,   319,   320,
1546 <     321,   322,   323,   324,   325,   326,   327,   328,   329,   331,
1547 <     330,   333,   332,   334,   334,   335,   335,   335,   336,   336,
1548 <     337,   337,   337,   337,   337,   339,   338,   340,   340,   341,
1549 <     341,   342,   343,   345,   344,   346,   346,   347,   347,   347,
1550 <     347,   347,   347,   347,   347,   347,   348,   349,   350,   351,
1551 <     353,   352,   354,   354,   355,   355,   355,   355,   355,   355,
1552 <     355,   355,   355,   356,   357,   358,   360,   359,   361,   361,
1553 <     362,   362,   362,   362,   363,   364,   365,   366,   367,   367,
1554 <     368,   368,   369,   371,   370,   372,   372,   373,   373,   373,
1555 <     373,   374,   375,   377,   376,   378,   378,   379,   379,   379,
1556 <     379,   379,   379,   379,   379,   379,   379,   381,   380,   382,
1557 <     382,   383,   383,   383,   384,   386,   385,   387,   387,   388,
1558 <     388,   388,   388,   388,   388,   388,   388,   388,   388,   390,
1559 <     389,   391,   391,   392,   392,   392,   392,   392,   392,   392,
1560 <     392,   392,   392,   392,   392,   392,   393,   394,   395,   396,
1561 <     397,   398,   399,   399,   401,   400,   402,   402,   403,   403,
1562 <     403,   404,   405,   406,   407,   409,   408,   411,   410,   412,
1563 <     412,   413,   414,   414,   415,   415,   415,   415,   416,   417,
1564 <     419,   418,   420,   420,   421,   421,   421,   422,   423,   424,
1565 <     425,   425,   426,   426,   427,   429,   428,   431,   430,   432,
1566 <     432,   433,   434,   434,   435,   435,   435,   435,   436,   437,
1567 <     438,   439,   439,   440,   440,   440,   440,   440,   440,   440,
1568 <     440,   440,   440,   440,   440,   440,   440,   440,   440,   440,
1569 <     440,   440,   440,   440,   440,   440,   440,   440,   440,   440,
1570 <     440,   440,   440,   440,   440,   440,   440,   440,   440,   440,
1571 <     440,   440,   440,   440,   440,   440,   440,   440,   440,   440,
1572 <     440,   440,   440,   440,   440,   441,   442,   443,   444,   445,
1573 <     446,   447,   448,   449,   450,   451,   452,   453,   454,   455,
1574 <     456,   457,   458,   459,   460,   461,   462,   463,   464,   465,
1575 <     466,   467,   467,   468,   468,   469,   470,   471,   472,   473,
1576 <     474,   475,   476,   477,   478,   479,   480,   481,   482,   483,
1577 <     484,   485,   487,   486,   488,   488,   489,   489,   489,   489,
1578 <     489,   489,   489,   489,   489,   489,   489,   489,   489,   489,
1579 <     489,   489,   489,   489,   489,   489,   491,   490,   492,   492,
1580 <     493,   493,   493,   493,   493,   493,   493,   493,   493,   493,
1525 >       0,   228,   229,   229,   230,   230,   230,   230,   230,   230,
1526 >     230,   230,   230,   230,   230,   230,   230,   230,   230,   230,
1527 >     230,   230,   230,   230,   230,   230,   231,   231,   232,   232,
1528 >     232,   232,   232,   232,   232,   232,   233,   233,   234,   234,
1529 >     234,   234,   235,   236,   236,   237,   237,   237,   238,   239,
1530 >     240,   241,   241,   242,   242,   242,   242,   242,   242,   242,
1531 >     242,   242,   242,   242,   242,   242,   242,   242,   242,   242,
1532 >     242,   243,   244,   245,   245,   246,   246,   247,   247,   248,
1533 >     248,   249,   250,   251,   252,   253,   254,   255,   256,   257,
1534 >     258,   259,   260,   261,   262,   263,   264,   265,   265,   266,
1535 >     266,   266,   266,   267,   268,   269,   270,   271,   271,   272,
1536 >     272,   272,   273,   275,   274,   276,   276,   277,   277,   277,
1537 >     277,   278,   279,   279,   281,   280,   282,   282,   283,   283,
1538 >     283,   283,   283,   283,   283,   285,   284,   286,   286,   287,
1539 >     287,   287,   287,   287,   287,   287,   287,   287,   288,   289,
1540 >     290,   291,   292,   293,   295,   294,   296,   296,   297,   297,
1541 >     297,   297,   297,   297,   297,   297,   297,   297,   297,   297,
1542 >     297,   297,   297,   297,   297,   297,   297,   297,   297,   299,
1543 >     298,   300,   300,   301,   301,   301,   301,   301,   301,   301,
1544 >     301,   301,   301,   301,   301,   301,   301,   301,   301,   301,
1545 >     301,   303,   302,   304,   304,   305,   305,   305,   305,   305,
1546 >     305,   305,   305,   305,   305,   305,   305,   305,   305,   305,
1547 >     305,   305,   306,   307,   308,   309,   310,   311,   312,   313,
1548 >     314,   315,   316,   317,   318,   319,   320,   322,   321,   323,
1549 >     323,   324,   324,   326,   325,   328,   327,   329,   329,   330,
1550 >     330,   330,   331,   331,   332,   332,   332,   332,   332,   334,
1551 >     333,   335,   335,   336,   336,   337,   338,   340,   339,   341,
1552 >     341,   342,   342,   342,   342,   342,   342,   342,   342,   342,
1553 >     343,   344,   345,   346,   348,   347,   349,   349,   350,   350,
1554 >     350,   350,   350,   350,   350,   350,   350,   350,   351,   352,
1555 >     353,   355,   354,   356,   356,   357,   357,   357,   357,   358,
1556 >     359,   360,   361,   362,   362,   363,   363,   364,   366,   365,
1557 >     367,   367,   368,   368,   368,   368,   369,   370,   372,   371,
1558 >     373,   373,   374,   374,   374,   374,   374,   374,   374,   374,
1559 >     374,   374,   376,   375,   377,   377,   378,   378,   378,   379,
1560 >     381,   380,   382,   382,   383,   383,   383,   383,   383,   383,
1561 >     383,   383,   383,   383,   385,   384,   386,   386,   387,   387,
1562 >     387,   387,   387,   387,   387,   387,   387,   387,   387,   387,
1563 >     387,   387,   388,   389,   390,   391,   392,   393,   394,   394,
1564 >     396,   395,   397,   397,   398,   398,   399,   400,   401,   402,
1565 >     403,   405,   404,   407,   406,   408,   408,   409,   410,   410,
1566 >     411,   411,   411,   411,   412,   413,   415,   414,   416,   416,
1567 >     417,   417,   417,   418,   419,   420,   421,   421,   422,   422,
1568 >     423,   425,   424,   427,   426,   428,   428,   429,   430,   430,
1569 >     431,   431,   431,   431,   432,   433,   434,   435,   435,   436,
1570 >     436,   436,   436,   436,   436,   436,   436,   436,   436,   436,
1571 >     436,   436,   436,   436,   436,   436,   436,   436,   436,   436,
1572 >     436,   436,   436,   436,   436,   436,   436,   436,   436,   436,
1573 >     436,   436,   436,   436,   436,   436,   436,   436,   436,   436,
1574 >     436,   436,   436,   436,   436,   436,   436,   436,   437,   438,
1575 >     439,   440,   441,   442,   443,   444,   445,   446,   447,   448,
1576 >     449,   450,   451,   452,   453,   454,   455,   456,   457,   458,
1577 >     459,   460,   461,   462,   462,   463,   463,   464,   465,   466,
1578 >     467,   468,   469,   470,   471,   472,   473,   474,   475,   476,
1579 >     477,   478,   479,   481,   480,   482,   482,   483,   483,   483,
1580 >     483,   483,   483,   483,   483,   483,   483,   483,   483,   483,
1581 >     483,   483,   483,   483,   483,   483,   483,   485,   484,   486,
1582 >     486,   487,   487,   487,   487,   487,   487,   487,   487,   487,
1583 >     487,   487,   487,   487,   487,   487,   487,   487,   487,   487,
1584 >     487,   487,   488,   489,   490,   491,   492,   492,   493,   493,
1585       493,   493,   493,   493,   493,   493,   493,   493,   493,   493,
1586 <     494,   495,   496,   497,   499,   498,   500,   500,   501,   501,
1587 <     501,   501,   501,   501,   501,   502,   503,   505,   504,   506,
1588 <     506,   507,   507,   508,   509,   511,   510,   512,   512,   513,
1589 <     513,   514,   515,   515,   516,   516,   516,   516,   516,   516,
1600 <     516,   516,   516,   516,   516,   516,   516,   516,   516,   516,
1601 <     516,   516,   516,   517,   518,   519,   520,   521,   522,   523,
1602 <     524,   525,   526,   527,   528,   529,   530,   531,   532,   533,
1603 <     534,   535,   536,   536,   537,   537,   537,   537,   537,   537,
1604 <     537,   537,   538,   539,   540,   541,   542,   543,   544
1586 >     493,   493,   494,   495,   496,   497,   498,   499,   500,   501,
1587 >     502,   503,   504,   505,   506,   507,   508,   508,   509,   509,
1588 >     509,   509,   509,   509,   509,   509,   510,   511,   512,   513,
1589 >     514,   515,   516
1590   };
1591  
1592   /* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN.  */
# Line 1609 | Line 1594 | static const yytype_uint8 yyr2[] =
1594   {
1595         0,     2,     0,     2,     1,     1,     1,     1,     1,     1,
1596         1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1597 <       1,     1,     1,     1,     1,     2,     2,     0,     1,     2,
1598 <       3,     3,     3,     3,     3,     0,     1,     2,     3,     3,
1599 <       3,     5,     2,     1,     1,     1,     2,     4,     4,     5,
1600 <       2,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1616 <       1,     1,     1,     1,     2,     0,     5,     3,     1,     1,
1617 <       1,     4,     4,     4,     4,     4,     4,     4,     4,     4,
1618 <       4,     4,     5,     2,     1,     1,     1,     1,     2,     4,
1619 <       4,     4,     5,     2,     1,     1,     1,     1,     2,     4,
1620 <       4,     0,     6,     2,     1,     1,     1,     1,     2,     4,
1621 <       4,     4,     0,     5,     3,     1,     1,     1,     1,     1,
1622 <       1,     1,     1,     0,     6,     2,     1,     1,     1,     1,
1623 <       1,     1,     1,     1,     1,     2,     4,     4,     4,     4,
1624 <       4,     4,     0,     5,     3,     1,     1,     1,     1,     1,
1597 >       1,     1,     1,     1,     2,     2,     0,     1,     2,     3,
1598 >       3,     3,     3,     3,     3,     3,     0,     1,     2,     3,
1599 >       3,     3,     5,     2,     1,     1,     1,     2,     4,     4,
1600 >       5,     2,     1,     1,     1,     1,     1,     1,     1,     1,
1601         1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1602 <       1,     1,     1,     1,     1,     1,     0,     5,     3,     1,
1602 >       2,     4,     4,     3,     1,     1,     1,     3,     1,     1,
1603 >       1,     4,     4,     4,     4,     4,     4,     4,     4,     4,
1604 >       4,     4,     4,     4,     4,     4,     5,     2,     1,     1,
1605 >       1,     1,     2,     4,     4,     4,     5,     2,     1,     1,
1606 >       1,     2,     4,     0,     6,     2,     1,     1,     1,     1,
1607 >       2,     4,     4,     4,     0,     5,     3,     1,     1,     1,
1608 >       1,     1,     1,     1,     1,     0,     6,     2,     1,     1,
1609 >       1,     1,     1,     1,     1,     1,     1,     2,     4,     4,
1610 >       4,     4,     4,     4,     0,     5,     3,     1,     1,     1,
1611         1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1628       1,     1,     1,     1,     1,     1,     1,     1,     0,     6,
1629       2,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1630       1,     1,     1,     1,     1,     2,     4,     4,     4,     4,
1631       4,     4,     4,     4,     4,     4,     4,     4,     4,     0,
1632       6,     0,     5,     3,     1,     1,     1,     1,     2,     1,
1633       1,     1,     1,     1,     2,     0,     5,     3,     1,     1,
1634       3,     4,     4,     0,     6,     2,     1,     1,     1,     1,
1635       1,     1,     1,     1,     1,     2,     4,     4,     4,     4,
1636       0,     5,     3,     1,     1,     1,     1,     1,     1,     1,
1637       1,     1,     1,     4,     4,     4,     0,     6,     2,     1,
1638       1,     1,     1,     2,     4,     4,     4,     5,     2,     1,
1639       1,     1,     4,     0,     6,     2,     1,     1,     1,     1,
1640       2,     4,     4,     0,     5,     3,     1,     1,     1,     1,
1641       1,     1,     1,     1,     1,     1,     1,     0,     6,     2,
1642       1,     1,     1,     2,     4,     0,     5,     3,     1,     1,
1612         1,     1,     1,     1,     1,     1,     1,     1,     1,     0,
1613 <       6,     2,     1,     1,     1,     1,     1,     1,     1,     1,
1614 <       1,     1,     1,     1,     1,     2,     4,     4,     4,     4,
1613 >       5,     3,     1,     1,     1,     1,     1,     1,     1,     1,
1614 >       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1615 >       1,     0,     6,     2,     1,     1,     1,     1,     1,     1,
1616 >       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1617 >       1,     2,     4,     4,     4,     4,     4,     4,     4,     4,
1618 >       4,     4,     4,     4,     4,     4,     4,     0,     5,     3,
1619 >       1,     1,     1,     0,     6,     0,     5,     3,     1,     1,
1620 >       1,     1,     2,     1,     1,     1,     1,     1,     2,     0,
1621 >       5,     3,     1,     1,     3,     4,     4,     0,     6,     2,
1622 >       1,     1,     1,     1,     1,     1,     1,     1,     1,     2,
1623         4,     4,     4,     4,     0,     5,     3,     1,     1,     1,
1624 <       1,     4,     4,     4,     4,     0,     6,     0,     5,     3,
1625 <       1,     1,     2,     1,     1,     1,     1,     1,     4,     4,
1626 <       0,     6,     2,     1,     1,     1,     1,     4,     4,     5,
1627 <       2,     1,     1,     1,     4,     0,     6,     0,     5,     3,
1628 <       1,     1,     2,     1,     1,     1,     1,     1,     4,     4,
1629 <       5,     2,     1,     1,     1,     1,     1,     1,     1,     1,
1624 >       1,     1,     1,     1,     1,     1,     1,     1,     4,     4,
1625 >       4,     0,     6,     2,     1,     1,     1,     1,     2,     4,
1626 >       4,     4,     5,     2,     1,     1,     1,     4,     0,     6,
1627 >       2,     1,     1,     1,     1,     2,     4,     4,     0,     5,
1628 >       3,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1629 >       1,     1,     0,     6,     2,     1,     1,     1,     2,     4,
1630 >       0,     5,     3,     1,     1,     1,     1,     1,     1,     1,
1631 >       1,     1,     1,     1,     0,     6,     2,     1,     1,     1,
1632 >       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1633 >       1,     2,     4,     4,     4,     4,     4,     4,     4,     4,
1634 >       0,     5,     3,     1,     1,     1,     4,     4,     4,     4,
1635 >       4,     0,     6,     0,     5,     3,     1,     1,     2,     1,
1636 >       1,     1,     1,     1,     4,     4,     0,     6,     2,     1,
1637 >       1,     1,     1,     4,     4,     5,     2,     1,     1,     1,
1638 >       4,     0,     6,     0,     5,     3,     1,     1,     2,     1,
1639 >       1,     1,     1,     1,     4,     4,     5,     2,     1,     1,
1640         1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1641         1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1642         1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1643         1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1644 <       1,     1,     1,     1,     1,     4,     4,     4,     4,     4,
1644 >       1,     1,     1,     1,     1,     1,     1,     1,     4,     4,
1645         4,     4,     4,     4,     4,     4,     4,     4,     4,     4,
1646         4,     4,     4,     4,     4,     4,     4,     4,     4,     4,
1647         4,     4,     4,     4,     4,     4,     4,     4,     4,     4,
1648         4,     4,     4,     4,     4,     4,     4,     4,     4,     4,
1649 <       4,     4,     0,     5,     3,     1,     1,     1,     1,     1,
1649 >       4,     4,     4,     0,     5,     3,     1,     1,     1,     1,
1650         1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1651 <       1,     1,     1,     1,     1,     1,     0,     5,     3,     1,
1651 >       1,     1,     1,     1,     1,     1,     1,     0,     5,     3,
1652         1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1653         1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1654 <       4,     4,     4,     4,     0,     6,     2,     1,     1,     1,
1668 <       1,     1,     1,     1,     1,     4,     4,     0,     5,     3,
1669 <       1,     1,     1,     4,     4,     0,     5,     3,     1,     1,
1670 <       1,     5,     2,     1,     1,     1,     1,     1,     1,     1,
1654 >       1,     1,     4,     4,     4,     5,     2,     1,     1,     1,
1655         1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1656 <       1,     1,     1,     4,     4,     4,     4,     4,     4,     4,
1657 <       4,     4,     4,     4,     4,     4,     4,     4,     4,     4,
1658 <       4,     5,     2,     1,     1,     1,     1,     1,     1,     1,
1659 <       1,     1,     4,     4,     4,     4,     4,     4,     4
1656 >       1,     1,     4,     4,     4,     4,     4,     4,     4,     4,
1657 >       4,     4,     4,     4,     4,     5,     2,     1,     1,     1,
1658 >       1,     1,     1,     1,     1,     1,     4,     4,     4,     4,
1659 >       4,     4,     4
1660   };
1661  
1662   /* YYDEFACT[STATE-NAME] -- Default reduction number in state STATE-NUM.
# Line 1680 | Line 1664 | static const yytype_uint8 yyr2[] =
1664     means the default is an error.  */
1665   static const yytype_uint16 yydefact[] =
1666   {
1667 <       2,     0,     1,     0,     0,     0,   188,   339,   390,     0,
1668 <     405,     0,   574,   243,   375,   219,     0,     0,   123,   276,
1669 <       0,     0,   293,   317,     0,     3,    24,    11,     4,     5,
1670 <       6,     8,     9,    10,    13,    14,    15,    16,    17,    18,
1671 <      19,    20,    23,    21,    22,     7,    12,    25,    26,     0,
1667 >       2,     0,     1,     0,     0,     0,   201,   364,   416,     0,
1668 >     431,     0,   267,   401,   243,     0,     0,   135,   301,     0,
1669 >       0,   318,   342,     0,     3,    23,    11,     4,     5,     6,
1670 >       8,     9,    10,    13,    14,    15,    16,    17,    18,    19,
1671 >      20,    22,    21,     7,    12,    24,    25,     0,     0,     0,
1672         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1673         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1674 <       0,     0,     0,     0,     0,    84,    85,    87,    86,   622,
1674 >       0,     0,    98,    99,   101,   100,   611,     0,     0,     0,
1675         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1676 <       0,     0,     0,     0,     0,     0,     0,     0,     0,   603,
1677 <     621,   616,   604,   605,   606,   607,   609,   610,   611,   612,
1678 <     608,   613,   614,   615,   617,   618,   619,   620,     0,     0,
1695 <       0,   403,     0,     0,   401,   402,     0,   474,     0,     0,
1676 >       0,   597,   610,   599,   600,   601,   602,   603,   598,   604,
1677 >     605,   606,   607,   608,   609,     0,     0,     0,   429,     0,
1678 >       0,   427,   428,     0,   497,     0,     0,     0,     0,     0,
1679         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1680         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1681 <       0,     0,     0,     0,     0,     0,   546,     0,   522,     0,
1681 >       0,     0,     0,   567,     0,   543,     0,     0,     0,     0,
1682         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1683 +       0,     0,     0,     0,   448,   495,   489,   490,   491,   492,
1684 +     493,   488,   459,   449,   450,   483,   451,   452,   453,   454,
1685 +     455,   456,   457,   458,   485,   460,   461,   494,   463,   468,
1686 +     464,   466,   465,   478,   479,   467,   469,   470,   471,   472,
1687 +     462,   474,   475,   476,   496,   486,   487,   484,   477,   473,
1688 +     481,   482,   480,     0,     0,     0,     0,     0,     0,   108,
1689 +     109,   110,     0,     0,     0,     0,     0,    44,    45,    46,
1690 +       0,     0,   635,     0,     0,     0,     0,     0,     0,     0,
1691 +       0,   627,   628,   629,   630,   633,   631,   632,   634,     0,
1692         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1693 <     422,   472,   467,   468,   469,   470,   466,   433,   423,   424,
1694 <     460,   425,   426,   427,   428,   429,   430,   431,   432,   463,
1695 <     434,   435,   436,   437,   471,   439,   444,   440,   442,   441,
1696 <     455,   456,   443,   445,   446,   447,   448,   449,   438,   451,
1705 <     452,   453,   473,   464,   465,   462,   454,   450,   458,   459,
1706 <     457,   461,     0,     0,     0,     0,     0,     0,     0,     0,
1707 <      94,    95,    96,    97,     0,     0,     0,     0,     0,    43,
1708 <      44,    45,     0,     0,   651,     0,     0,     0,     0,     0,
1709 <       0,     0,     0,   643,   644,   645,   649,   646,   648,   647,
1710 <     650,     0,     0,     0,     0,     0,     0,     0,     0,    65,
1711 <       0,     0,     0,     0,     0,    51,    63,    62,    59,    52,
1712 <      61,    55,    56,    57,    53,    60,    58,    54,     0,     0,
1713 <     291,     0,     0,   289,   290,    88,     0,     0,     0,     0,
1714 <      83,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1693 >       0,     0,     0,     0,     0,     0,     0,     0,    52,    67,
1694 >      68,    66,    63,    62,    69,    53,    65,    56,    57,    58,
1695 >      54,    64,    59,    60,    61,    55,     0,     0,   316,     0,
1696 >       0,   314,   315,   102,     0,     0,     0,     0,    97,     0,
1697         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1698 <     602,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1717 <       0,     0,     0,     0,     0,     0,   191,   192,   195,   196,
1718 <     198,   199,   200,   201,   202,   203,   204,   193,   194,   197,
1719 <       0,     0,     0,     0,     0,   364,     0,     0,     0,     0,
1720 <       0,     0,     0,     0,   342,   343,   344,   345,   346,   347,
1721 <     349,   348,   350,   354,   351,   352,   353,   396,     0,     0,
1722 <       0,   393,   394,   395,     0,     0,   400,   417,     0,     0,
1723 <     407,   416,     0,   413,   414,   415,     0,     0,     0,     0,
1698 >       0,     0,     0,   596,     0,     0,     0,     0,   237,     0,
1699         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1700 +       0,     0,   204,   205,   208,   210,   211,   212,   213,   214,
1701 +     215,   216,   217,   206,   207,   209,   218,   219,   220,     0,
1702 +       0,     0,     0,     0,   390,     0,     0,     0,     0,     0,
1703 +       0,     0,     0,     0,   367,   368,   369,   370,   371,   372,
1704 +     374,   373,   376,   380,   377,   378,   379,   375,   422,     0,
1705 +       0,     0,   419,   420,   421,     0,     0,   426,   443,     0,
1706 +       0,   433,   442,     0,   439,   440,   441,     0,     0,     0,
1707         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1708         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1709         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1728       0,     0,     0,     0,     0,     0,     0,     0,   421,   584,
1729     595,     0,     0,   587,     0,     0,     0,   577,   578,   579,
1730     580,   581,   582,   583,     0,     0,     0,   260,     0,     0,
1731       0,     0,     0,     0,   246,   247,   248,   249,   254,   250,
1732     251,   252,   253,   387,     0,   377,     0,   386,     0,   383,
1733     384,   385,     0,   221,     0,     0,     0,   231,     0,   229,
1734     230,   232,   233,    98,     0,     0,     0,    93,     0,    46,
1735       0,     0,     0,    42,     0,     0,     0,   166,     0,     0,
1736       0,   142,     0,     0,   126,   127,   128,   129,   132,   133,
1737     131,   130,   134,     0,     0,     0,     0,     0,   279,   280,
1738     281,   282,     0,     0,     0,     0,     0,     0,     0,     0,
1739     642,    64,     0,     0,     0,     0,     0,     0,     0,     0,
1740       0,     0,     0,     0,     0,    50,     0,     0,   303,     0,
1741       0,   296,   297,   298,   299,     0,     0,   325,     0,   320,
1742     321,   322,     0,     0,   288,     0,     0,     0,    82,     0,
1743       0,     0,     0,     0,    27,     0,     0,     0,     0,     0,
1744       0,     0,     0,     0,     0,     0,     0,     0,   601,   205,
1710         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1711 <       0,     0,     0,     0,   190,   355,     0,     0,     0,     0,
1712 <       0,     0,     0,     0,     0,     0,     0,     0,     0,   341,
1713 <       0,     0,     0,   392,     0,   399,     0,     0,     0,     0,
1714 <     412,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1711 >       0,     0,     0,     0,     0,     0,   447,     0,     0,     0,
1712 >     284,     0,     0,     0,     0,     0,     0,   270,   271,   272,
1713 >     273,   278,   274,   275,   276,   277,   413,     0,   403,     0,
1714 >     412,     0,   409,   410,   411,     0,   245,     0,     0,     0,
1715 >     255,     0,   253,   254,   256,   257,   111,     0,     0,   107,
1716 >       0,    47,     0,     0,     0,    43,     0,     0,     0,   179,
1717 >       0,     0,     0,   154,     0,     0,   138,   139,   140,   141,
1718 >     144,   145,   143,   142,   146,     0,     0,     0,     0,     0,
1719 >     304,   305,   306,   307,     0,     0,     0,     0,     0,     0,
1720 >       0,     0,   626,    70,     0,     0,     0,     0,     0,     0,
1721         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1722 +       0,     0,    51,     0,     0,   328,     0,     0,   321,   322,
1723 +     323,   324,     0,     0,   350,     0,   345,   346,   347,     0,
1724 +       0,   313,     0,     0,     0,    96,     0,     0,     0,    26,
1725         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1726 +     595,   221,     0,     0,     0,     0,     0,     0,     0,     0,
1727 +       0,     0,     0,     0,     0,     0,     0,     0,     0,   203,
1728 +     381,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1729 +       0,     0,     0,     0,     0,   366,     0,     0,     0,   418,
1730 +       0,   425,     0,     0,     0,     0,   438,     0,     0,     0,
1731         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1753       0,     0,     0,     0,     0,     0,     0,    35,     0,     0,
1754       0,     0,     0,     0,     0,   420,     0,     0,     0,     0,
1755       0,     0,     0,   576,   255,     0,     0,     0,     0,     0,
1756       0,     0,     0,     0,   245,     0,     0,     0,     0,   382,
1757     234,     0,     0,     0,     0,     0,   228,     0,     0,    92,
1758       0,     0,     0,    41,   135,     0,     0,     0,     0,     0,
1759       0,     0,     0,     0,   125,   283,     0,     0,     0,     0,
1760     278,     0,     0,     0,     0,     0,     0,     0,   641,     0,
1732         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1762       0,    49,   300,     0,     0,     0,     0,   295,   323,     0,
1763       0,     0,   319,     0,   287,    91,    90,    89,   638,   635,
1764     634,   623,   625,    27,    27,    27,    27,    27,    29,    28,
1765     629,   630,   633,   631,   636,   637,   639,   640,   632,   624,
1766     626,   627,   628,     0,     0,     0,     0,     0,     0,     0,
1767       0,     0,     0,     0,     0,     0,   189,     0,     0,     0,
1733         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1734 <     340,     0,     0,   391,   404,     0,     0,     0,   406,   486,
1735 <     490,   506,   572,   520,   484,   514,   517,   485,   476,   477,
1736 <     493,   482,   483,   496,   481,   495,   494,   489,   488,   487,
1737 <     515,   475,   513,   570,   571,   510,   507,   557,   550,   567,
1738 <     568,   551,   552,   553,   554,   562,   555,   565,   569,   558,
1739 <     563,   559,   564,   556,   561,   560,   566,     0,   549,   512,
1740 <     532,   526,   543,   544,   527,   528,   529,   530,   538,   531,
1741 <     541,   545,   534,   539,   535,   540,   533,   537,   536,   542,
1742 <       0,   525,   505,   508,   519,   479,   480,   509,   498,   503,
1743 <     504,   501,   502,   499,   500,   492,   491,    35,    35,    35,
1744 <      37,    36,   573,   518,   521,   511,   516,   478,   497,     0,
1745 <       0,     0,     0,     0,     0,   575,     0,     0,     0,     0,
1746 <       0,     0,     0,     0,   244,     0,     0,     0,   376,     0,
1747 <       0,     0,   239,   235,   238,   220,   100,    99,     0,     0,
1748 <     112,     0,     0,   104,   105,   107,   106,    47,    48,     0,
1749 <       0,     0,     0,     0,     0,     0,     0,   124,     0,     0,
1750 <       0,   277,   657,   652,   656,   654,   658,   653,   655,    75,
1751 <      81,    73,    77,    76,    72,    71,    69,    70,     0,    68,
1752 <      74,    80,    78,    79,     0,     0,     0,   294,     0,     0,
1753 <     318,   292,    30,    31,    32,    33,    34,   216,   217,   210,
1754 <     212,   214,   213,   211,   206,   218,   209,   207,   208,   215,
1755 <     360,   362,   363,   374,   371,   368,   369,   370,     0,   367,
1756 <     357,   372,   373,   356,   361,   359,   358,   397,   398,   418,
1757 <     419,   411,     0,   410,   547,     0,   523,     0,    38,    39,
1758 <      40,   600,   599,     0,   598,   586,   585,   592,   591,     0,
1759 <     590,   594,   593,   258,   259,   268,   265,   270,   267,   266,
1760 <     272,   269,   271,   264,     0,   263,   257,   275,   274,   273,
1761 <     256,   389,   381,     0,   380,   388,   226,   227,   225,     0,
1762 <     224,   242,   241,     0,     0,     0,   108,     0,     0,     0,
1763 <       0,   103,   141,   139,   181,   178,   177,   170,   172,   187,
1764 <     182,   185,   180,   171,   186,   174,   183,   175,   184,   179,
1765 <     173,   176,     0,   169,   136,   138,   140,   152,   146,   163,
1766 <     164,   147,   148,   149,   150,   158,   151,   161,   165,   154,
1767 <     159,   155,   160,   153,   157,   156,   162,     0,   145,   137,
1768 <     285,   286,   284,    66,     0,   301,   307,   313,   316,   309,
1769 <     315,   310,   314,   312,   308,   311,     0,   306,   302,   324,
1770 <     329,   335,   338,   331,   337,   332,   336,   334,   330,   333,
1771 <       0,   328,   365,     0,   408,     0,   548,   524,   596,     0,
1772 <     588,     0,   261,     0,   378,     0,   222,     0,   240,   237,
1773 <     236,     0,     0,     0,     0,   102,   167,     0,   143,     0,
1774 <      67,   304,     0,   326,     0,   366,   409,   597,   589,   262,
1775 <     379,   223,   109,   118,   121,   120,   117,   122,   119,   116,
1776 <       0,   115,   111,   110,   168,   144,   305,   327,   113,     0,
1777 <     114
1734 >       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1735 >       0,     0,     0,     0,     0,     0,     0,   446,   279,     0,
1736 >       0,     0,     0,     0,     0,     0,     0,     0,   269,     0,
1737 >       0,     0,     0,   408,   258,     0,     0,     0,     0,     0,
1738 >     252,     0,   106,     0,     0,     0,    42,   147,     0,     0,
1739 >       0,     0,     0,     0,     0,     0,     0,   137,   308,     0,
1740 >       0,     0,     0,   303,     0,     0,     0,     0,     0,     0,
1741 >       0,   625,     0,     0,     0,     0,     0,     0,     0,     0,
1742 >       0,     0,    75,    76,     0,    74,    79,    80,     0,    78,
1743 >       0,     0,     0,     0,     0,    50,   325,     0,     0,     0,
1744 >       0,   320,   348,     0,     0,     0,   344,     0,   312,   105,
1745 >     104,   103,   620,   619,   612,    26,    26,    26,    26,    26,
1746 >      26,    26,    28,    27,   613,   614,   618,   616,   615,   621,
1747 >     622,   623,   624,   617,     0,     0,     0,     0,     0,     0,
1748 >       0,     0,     0,     0,     0,     0,     0,     0,    36,     0,
1749 >       0,   202,     0,     0,     0,     0,     0,     0,     0,     0,
1750 >       0,     0,     0,     0,     0,     0,   365,     0,     0,   417,
1751 >     430,     0,     0,     0,   432,   510,   514,   528,   594,   541,
1752 >     508,   535,   538,   509,   500,   499,   501,   502,   503,   517,
1753 >     506,   507,   518,   505,   513,   512,   511,   536,   498,   592,
1754 >     593,   532,   529,   578,   571,   588,   589,   572,   573,   574,
1755 >     575,   583,   576,   586,   590,   579,   591,   584,   580,   585,
1756 >     577,   582,   581,   587,     0,   570,   534,   553,   547,   564,
1757 >     565,   548,   549,   550,   551,   559,   552,   562,   566,   555,
1758 >     560,   556,   561,   554,   558,   557,   563,     0,   546,   527,
1759 >     530,   540,   504,   531,   520,   525,   526,   523,   524,   521,
1760 >     522,   516,   515,   539,   542,   533,   537,   519,     0,     0,
1761 >       0,     0,     0,     0,     0,     0,   268,     0,     0,     0,
1762 >     402,     0,     0,     0,   263,   259,   262,   244,   112,     0,
1763 >       0,   124,     0,     0,   116,   117,   119,   118,    48,    49,
1764 >       0,     0,     0,     0,     0,     0,     0,     0,   136,     0,
1765 >       0,     0,   302,   636,   641,   639,   642,   637,   638,   640,
1766 >      87,    95,    93,    94,    85,    89,    88,    82,    81,    83,
1767 >      71,     0,    72,     0,    86,    84,    92,    90,    91,     0,
1768 >       0,     0,   319,     0,     0,   343,   317,    29,    30,    31,
1769 >      32,    33,    34,    35,   232,   233,   225,   241,   242,     0,
1770 >     240,   227,   229,   228,   226,   235,   236,   222,   234,   224,
1771 >     223,    36,    36,    36,    38,    37,   230,   231,   386,   388,
1772 >     389,   399,   396,   394,   395,     0,   393,   383,   397,   398,
1773 >     382,   387,   385,   400,   384,   423,   424,   444,   445,   437,
1774 >       0,   436,   568,     0,   544,     0,   282,   283,   292,   289,
1775 >     294,   291,   290,   297,   293,   295,   288,   296,     0,   287,
1776 >     281,   300,   299,   298,   280,   415,   407,     0,   406,   414,
1777 >     250,   251,   249,     0,   248,   266,   265,     0,     0,     0,
1778 >     120,     0,     0,     0,     0,   115,   153,   151,   194,   191,
1779 >     190,   183,   185,   200,   197,   193,   184,   198,   187,   195,
1780 >     199,   188,   196,   192,   186,   189,     0,   182,   148,   150,
1781 >     152,   164,   158,   175,   176,   159,   160,   161,   162,   170,
1782 >     163,   173,   177,   166,   178,   171,   167,   172,   165,   169,
1783 >     168,   174,     0,   157,   149,   311,   309,   310,    73,    77,
1784 >     326,   332,   338,   341,   334,   340,   335,   339,   337,   333,
1785 >     336,     0,   331,   327,   349,   354,   360,   363,   356,   362,
1786 >     357,   361,   359,   355,   358,     0,   353,   238,     0,    39,
1787 >      40,    41,   391,     0,   434,     0,   569,   545,   285,     0,
1788 >     404,     0,   246,     0,   264,   261,   260,     0,     0,     0,
1789 >       0,   114,   180,     0,   155,     0,   329,     0,   351,     0,
1790 >     239,   392,   435,   286,   405,   247,   121,   130,   133,   132,
1791 >     129,   134,   131,   128,     0,   127,   123,   122,   181,   156,
1792 >     330,   352,   125,     0,   126
1793   };
1794  
1795   /* YYDEFGOTO[NTERM-NUM].  */
1796   static const yytype_int16 yydefgoto[] =
1797   {
1798 <      -1,     1,    25,   818,   819,   960,   961,    26,   248,   249,
1799 <     250,   251,    27,   284,   285,   286,   569,  1038,  1039,   287,
1800 <     288,   289,   290,   291,   292,   293,   294,   295,   296,   297,
1801 <      28,    74,    75,    76,    77,    78,    29,   239,   240,   241,
1802 <     242,   243,   244,  1002,  1003,  1004,  1005,  1006,  1148,  1280,
1803 <    1281,    30,    63,   533,   534,   535,   536,   537,   538,   539,
1804 <     540,   541,   761,  1197,  1198,   542,   757,  1172,  1173,    31,
1805 <      51,   345,   346,   347,   348,   349,   350,   351,   352,   353,
1806 <     354,   355,   356,   357,   358,   359,    32,    60,   507,   741,
1807 <    1139,  1140,   508,   509,   510,  1145,   993,   994,   511,   512,
1808 <      33,    58,   483,   484,   485,   486,   487,   488,   489,   727,
1809 <    1124,  1125,   490,   491,   492,    34,    64,   547,   548,   549,
1810 <     550,   551,    35,   302,   303,   304,    36,    67,   580,   581,
1811 <     582,   583,   584,   794,  1216,  1217,    37,    68,   588,   589,
1812 <     590,   591,   800,  1230,  1231,    38,    52,   373,   374,   375,
1813 <     376,   377,   378,   379,   380,   381,   382,   640,  1078,  1079,
1814 <     383,   384,   385,   386,    39,    59,   497,   736,  1133,  1134,
1815 <     498,   499,   500,   501,    40,    53,   390,   391,   392,   393,
1816 <      41,   123,   124,   125,    42,    55,   401,   658,  1092,  1093,
1817 <     402,   403,   404,   405,    43,   179,   180,   181,   182,   183,
1818 <     184,   185,   186,   187,   188,   189,   190,   191,   192,   193,
1819 <     194,   195,   196,   197,   198,   199,   200,   201,   202,   203,
1820 <     204,   205,   206,   207,   208,   209,   210,   211,   212,   213,
1821 <     214,   215,   216,   217,   218,   219,   220,   221,   222,   223,
1822 <     224,   225,   226,   436,   940,   941,   227,   434,   917,   918,
1823 <     228,   229,   230,   231,    44,    57,   466,   467,   468,   469,
1824 <     470,   719,  1109,  1110,   471,   472,   473,   716,  1103,  1104,
1825 <      45,    98,    99,   100,   101,   102,   103,   104,   105,   106,
1826 <     107,   108,   109,   110,   111,   112,   113,   114,   115,   116,
1847 <     117,    46,   262,   263,   264,   265,   266,   267,   268,   269,
1848 <     270
1798 >      -1,     1,    24,   792,   793,  1044,  1045,    25,   226,   227,
1799 >     228,   229,    26,   267,   268,   269,   270,   754,   755,   758,
1800 >     759,   271,   272,   273,   274,   275,   276,   277,   278,   279,
1801 >     280,   281,   282,   283,   284,   285,    27,    71,    72,    73,
1802 >      74,    75,    28,   218,   219,   220,   221,   222,   963,   964,
1803 >     965,   966,   967,  1112,  1244,  1245,    29,    60,   505,   506,
1804 >     507,   508,   509,   510,   511,   512,   513,   724,  1162,  1163,
1805 >     514,   720,  1136,  1137,    30,    49,   331,   332,   333,   334,
1806 >     335,   336,   337,   338,   339,   340,   341,   342,   343,   344,
1807 >     345,   346,   347,   348,   595,  1029,  1030,    31,    57,   480,
1808 >     705,  1103,  1104,   481,   482,   483,  1109,   955,   956,   484,
1809 >     485,    32,    55,   456,   457,   458,   459,   460,   461,   462,
1810 >     691,  1088,  1089,   463,   464,   465,    33,    61,   519,   520,
1811 >     521,   522,   523,    34,   290,   291,   292,    35,    64,   557,
1812 >     558,   559,   560,   561,   768,  1181,  1182,    36,    65,   565,
1813 >     566,   567,   568,   774,  1195,  1196,    37,    50,   363,   364,
1814 >     365,   366,   367,   368,   369,   370,   371,   372,   615,  1055,
1815 >    1056,   373,   374,   375,   376,   377,    38,    56,   470,   700,
1816 >    1097,  1098,   471,   472,   473,   474,    39,    51,   381,   382,
1817 >     383,   384,    40,   110,   111,   112,    41,    53,   392,   634,
1818 >    1070,  1071,   393,   394,   395,   396,    42,   163,   164,   165,
1819 >     166,   167,   168,   169,   170,   171,   172,   173,   174,   175,
1820 >     176,   177,   178,   179,   180,   181,   182,   183,   184,   185,
1821 >     186,   187,   188,   189,   190,   191,   192,   193,   194,   195,
1822 >     196,   197,   198,   199,   200,   201,   202,   203,   204,   205,
1823 >     206,   207,   208,   427,   917,   918,   209,   425,   894,   895,
1824 >     210,   211,   212,    43,    90,    91,    92,    93,    94,    95,
1825 >      96,    97,    98,    99,   100,   101,   102,   103,   104,    44,
1826 >     240,   241,   242,   243,   244,   245,   246,   247,   248
1827   };
1828  
1829   /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
1830     STATE-NUM.  */
1831 < #define YYPACT_NINF -772
1831 > #define YYPACT_NINF -736
1832   static const yytype_int16 yypact[] =
1833   {
1834 <    -772,   691,  -772,  -190,  -234,  -231,  -772,  -772,  -772,  -225,
1835 <    -772,  -215,  -772,  -772,  -772,  -772,  -207,  -205,  -772,  -772,
1836 <    -202,  -194,  -772,  -772,  -174,  -772,  -772,  -772,  -772,  -772,
1837 <    -772,  -772,  -772,  -772,  -772,  -772,  -772,  -772,  -772,  -772,
1838 <    -772,  -772,  -772,  -772,  -772,  -772,  -772,  -772,  -772,   273,
1839 <     541,  -171,  -168,  -155,    14,  -146,   367,  -143,  -141,  -134,
1840 <    -131,     3,    41,  -128,  -112,   499,   326,  -109,   -98,    20,
1841 <    -115,   -90,   -87,   -81,     4,  -772,  -772,  -772,  -772,  -772,
1842 <     -71,   -68,   -48,   -45,   -24,   -15,    21,    23,    49,    54,
1843 <      57,    63,    77,    87,    88,    90,    98,    99,   274,  -772,
1844 <    -772,  -772,  -772,  -772,  -772,  -772,  -772,  -772,  -772,  -772,
1845 <    -772,  -772,  -772,  -772,  -772,  -772,  -772,  -772,   696,   449,
1846 <      47,  -772,   109,    32,  -772,  -772,   192,  -772,   112,   119,
1847 <     122,   130,   135,   146,   156,   161,   167,   168,   169,   177,
1848 <     183,   188,   196,   197,   199,   200,   203,   207,   211,   214,
1849 <     225,   232,   234,   236,   237,   238,  -772,   240,  -772,   246,
1850 <     253,   255,   256,   257,   262,   264,   265,   278,   279,   280,
1851 <     283,   284,   288,   289,   293,   301,   306,   309,   310,   108,
1852 <    -772,  -772,  -772,  -772,  -772,  -772,  -772,  -772,  -772,  -772,
1853 <    -772,  -772,  -772,  -772,  -772,  -772,  -772,  -772,  -772,  -772,
1854 <    -772,  -772,  -772,  -772,  -772,  -772,  -772,  -772,  -772,  -772,
1855 <    -772,  -772,  -772,  -772,  -772,  -772,  -772,  -772,  -772,  -772,
1856 <    -772,  -772,  -772,  -772,  -772,  -772,  -772,  -772,  -772,  -772,
1857 <    -772,  -772,   316,   299,    58,   388,    45,   313,   314,    71,
1858 <    -772,  -772,  -772,  -772,    75,    82,   315,   322,    53,  -772,
1859 <    -772,  -772,   446,   344,  -772,   323,   324,   325,   330,   331,
1860 <     334,   336,    18,  -772,  -772,  -772,  -772,  -772,  -772,  -772,
1861 <    -772,   151,   340,   342,   346,   347,   349,   354,   357,  -772,
1862 <     359,   360,   362,   363,   152,  -772,  -772,  -772,  -772,  -772,
1863 <    -772,  -772,  -772,  -772,  -772,  -772,  -772,  -772,    12,    70,
1864 <    -772,   365,    28,  -772,  -772,  -772,   128,   385,   437,   181,
1865 <    -772,    76,   487,   490,   412,   434,   500,   500,   501,   502,
1866 <     435,   440,   507,   500,   444,   447,   448,   450,   454,   384,
1867 <    -772,   390,   389,   391,   393,   394,   395,   396,   397,   398,
1868 <     400,   401,   402,   403,   404,     2,  -772,  -772,  -772,  -772,
1869 <    -772,  -772,  -772,  -772,  -772,  -772,  -772,  -772,  -772,  -772,
1870 <     410,   409,   415,   416,   417,  -772,   418,   419,   422,   424,
1871 <     426,   428,   430,     8,  -772,  -772,  -772,  -772,  -772,  -772,
1872 <    -772,  -772,  -772,  -772,  -772,  -772,  -772,  -772,   436,   438,
1873 <      16,  -772,  -772,  -772,   523,   455,  -772,  -772,   443,   451,
1874 <    -772,  -772,    26,  -772,  -772,  -772,   456,   500,   500,   522,
1875 <     503,   512,   566,   556,   521,   591,   592,   593,   530,   532,
1876 <     534,   500,   578,   537,   603,   607,   500,   610,   613,   594,
1877 <     614,   617,   558,   559,   488,   560,   495,   500,   500,   564,
1878 <     500,   570,   571,   572,  -117,   -91,   573,   574,   500,   500,
1879 <     640,   620,   500,   579,   580,   581,   582,   519,  -772,  -772,
1880 <    -772,   515,   517,  -772,   524,   525,    36,  -772,  -772,  -772,
1881 <    -772,  -772,  -772,  -772,   526,   529,   533,  -772,   535,   536,
1882 <     539,   540,   544,    22,  -772,  -772,  -772,  -772,  -772,  -772,
1883 <    -772,  -772,  -772,  -772,   545,  -772,   549,  -772,    11,  -772,
1884 <    -772,  -772,   553,  -772,   551,   552,   555,  -772,    30,  -772,
1885 <    -772,  -772,  -772,  -772,   586,   587,   561,  -772,   531,  -772,
1886 <     633,   645,   562,  -772,   563,   557,   565,  -772,   568,   569,
1887 <     575,  -772,   576,   206,  -772,  -772,  -772,  -772,  -772,  -772,
1888 <    -772,  -772,  -772,   577,   584,   585,   588,    17,  -772,  -772,
1889 <    -772,  -772,   605,   621,   629,   673,   631,   638,   500,   583,
1890 <    -772,  -772,   682,   641,   683,   688,   689,   690,   692,   589,
1891 <     697,   719,   702,   703,   596,  -772,   597,   590,  -772,   595,
1892 <      42,  -772,  -772,  -772,  -772,   599,   600,  -772,     5,  -772,
1893 <    -772,  -772,   708,   602,  -772,   604,   606,   608,  -772,   609,
1894 <     612,   624,   625,   632,   358,   636,   651,   652,   656,   657,
1895 <     659,   663,   668,   678,   679,   684,   686,   694,  -772,  -772,
1896 <     734,   736,   500,   750,   758,   759,   769,   749,   812,   819,
1897 <     500,   500,   640,   695,  -772,  -772,   805,    44,   806,   764,
1898 <     698,   808,   811,   813,   814,   833,   815,   816,   709,  -772,
1899 <     818,   820,   711,  -772,   713,  -772,   822,   823,   714,   716,
1900 <    -772,   718,   720,   721,   722,   723,   724,   725,   726,   727,
1901 <     729,   730,   731,   732,   733,   735,   737,   738,   739,   740,
1902 <     741,   742,   743,   744,   745,   746,   747,   748,   751,   674,
1903 <     752,   701,   753,   754,   755,   756,   757,   760,   761,   762,
1904 <     763,   765,   766,   767,   768,   770,   771,   355,   772,   773,
1905 <     774,   775,   776,   777,   778,  -772,   779,   500,   784,   780,
1906 <     836,   842,   781,  -772,  -772,   844,   824,   782,   857,   879,
1907 <     866,   872,   877,   786,  -772,   887,   785,   888,   787,  -772,
1908 <    -772,   788,   892,   897,   919,   792,  -772,   793,   794,  -772,
1909 <     171,   795,   796,  -772,  -772,   905,   863,   797,   907,   909,
1910 <     910,   800,   912,   807,  -772,  -772,   913,   914,   916,   809,
1911 <    -772,   810,   817,   821,   825,   826,   827,   828,  -772,   829,
1912 <     830,   831,   832,   834,   835,   837,   142,   838,   839,   840,
1913 <     841,  -772,  -772,   920,   843,   921,   845,  -772,  -772,   922,
1914 <     846,   847,  -772,   848,  -772,  -772,  -772,  -772,  -772,  -772,
1915 <    -772,  -772,  -772,   500,   500,   500,   500,   500,  -772,  -772,
1916 <    -772,  -772,  -772,  -772,  -772,  -772,  -772,  -772,  -772,  -772,
1917 <    -772,  -772,  -772,   850,   851,   852,   853,   854,   855,   856,
1918 <     858,   859,   860,   861,   862,   864,  -772,   865,   867,   868,
1919 <     869,   870,    10,   871,   873,   874,   875,   876,   878,   880,
1920 <    -772,   881,   882,  -772,  -772,   883,   884,   918,  -772,  -772,
1921 <    -772,  -772,  -772,  -772,  -772,  -772,  -772,  -772,  -772,  -772,
1922 <    -772,  -772,  -772,  -772,  -772,  -772,  -772,  -772,  -772,  -772,
1923 <    -772,  -772,  -772,  -772,  -772,  -772,  -772,  -772,  -772,  -772,
1924 <    -772,  -772,  -772,  -772,  -772,  -772,  -772,  -772,  -772,  -772,
1925 <    -772,  -772,  -772,  -772,  -772,  -772,  -772,  -187,  -772,  -772,
1926 <    -772,  -772,  -772,  -772,  -772,  -772,  -772,  -772,  -772,  -772,
1927 <    -772,  -772,  -772,  -772,  -772,  -772,  -772,  -772,  -772,  -772,
1928 <     -77,  -772,  -772,  -772,  -772,  -772,  -772,  -772,  -772,  -772,
1929 <    -772,  -772,  -772,  -772,  -772,  -772,  -772,   640,   640,   640,
1930 <    -772,  -772,  -772,  -772,  -772,  -772,  -772,  -772,  -772,    19,
1931 <     885,   886,    33,   889,   890,  -772,   891,   893,   630,   894,
1932 <     895,   896,   898,   899,  -772,   900,   923,   901,  -772,     7,
1933 <     902,   903,   904,   906,  -772,  -772,  -772,  -772,   908,   911,
1934 <    -772,   915,    96,  -772,  -772,  -772,  -772,  -772,  -772,   917,
1935 <     924,   476,   925,   926,   927,   728,   928,  -772,   929,   930,
1936 <     931,  -772,  -772,  -772,  -772,  -772,  -772,  -772,  -772,  -772,
1937 <    -772,  -772,  -772,  -772,  -772,  -772,  -772,  -772,   -29,  -772,
1938 <    -772,  -772,  -772,  -772,   932,   445,   933,  -772,   934,   518,
1939 <    -772,  -772,  -772,  -772,  -772,  -772,  -772,  -772,  -772,  -772,
1940 <    -772,  -772,  -772,  -772,  -772,  -772,  -772,  -772,  -772,  -772,
1941 <    -772,  -772,  -772,  -772,  -772,  -772,  -772,  -772,   -28,  -772,
1942 <    -772,  -772,  -772,  -772,  -772,  -772,  -772,  -772,  -772,  -772,
1943 <    -772,  -772,   -26,  -772,  -772,   674,  -772,   701,  -772,  -772,
1944 <    -772,  -772,  -772,    79,  -772,  -772,  -772,  -772,  -772,   104,
1945 <    -772,  -772,  -772,  -772,  -772,  -772,  -772,  -772,  -772,  -772,
1946 <    -772,  -772,  -772,  -772,   123,  -772,  -772,  -772,  -772,  -772,
1947 <    -772,  -772,  -772,   124,  -772,  -772,  -772,  -772,  -772,   139,
1948 <    -772,  -772,  -772,   940,   919,   935,  -772,   941,   936,   -69,
1949 <     937,  -772,  -772,  -772,  -772,  -772,  -772,  -772,  -772,  -772,
1950 <    -772,  -772,  -772,  -772,  -772,  -772,  -772,  -772,  -772,  -772,
1951 <    -772,  -772,   140,  -772,  -772,  -772,  -772,  -772,  -772,  -772,
1952 <    -772,  -772,  -772,  -772,  -772,  -772,  -772,  -772,  -772,  -772,
1953 <    -772,  -772,  -772,  -772,  -772,  -772,  -772,   148,  -772,  -772,
1954 <    -772,  -772,  -772,  -772,   142,  -772,  -772,  -772,  -772,  -772,
1955 <    -772,  -772,  -772,  -772,  -772,  -772,   158,  -772,  -772,  -772,
1956 <    -772,  -772,  -772,  -772,  -772,  -772,  -772,  -772,  -772,  -772,
1957 <     175,  -772,  -772,    10,  -772,   918,  -772,  -772,  -772,    19,
1958 <    -772,    33,  -772,   630,  -772,   923,  -772,     7,  -772,  -772,
1959 <    -772,   938,   149,   942,   943,  -772,  -772,   476,  -772,   728,
1982 <    -772,  -772,   445,  -772,   518,  -772,  -772,  -772,  -772,  -772,
1983 <    -772,  -772,  -772,  -772,  -772,  -772,  -772,  -772,  -772,  -772,
1984 <     178,  -772,  -772,  -772,  -772,  -772,  -772,  -772,  -772,   149,
1985 <    -772
1834 >    -736,   650,  -736,  -180,  -212,  -210,  -736,  -736,  -736,  -200,
1835 >    -736,  -197,  -736,  -736,  -736,  -171,  -164,  -736,  -736,  -157,
1836 >    -138,  -736,  -736,  -136,  -736,  -736,  -736,  -736,  -736,  -736,
1837 >    -736,  -736,  -736,  -736,  -736,  -736,  -736,  -736,  -736,  -736,
1838 >    -736,  -736,  -736,  -736,  -736,  -736,  -736,   316,   648,  -131,
1839 >    -128,  -114,    16,  -112,   432,  -101,   -98,   -92,    36,    78,
1840 >     -79,   -77,   586,   349,   -52,   -47,    11,   -42,   -43,   -40,
1841 >     -35,     7,  -736,  -736,  -736,  -736,  -736,   -22,    -3,    12,
1842 >      58,    71,    83,    92,    93,    94,    96,    98,   100,   102,
1843 >       8,  -736,  -736,  -736,  -736,  -736,  -736,  -736,  -736,  -736,
1844 >    -736,  -736,  -736,  -736,  -736,   732,   552,    64,  -736,   103,
1845 >      19,  -736,  -736,    51,  -736,   104,   112,   115,   117,   119,
1846 >     123,   125,   127,   128,   131,   135,   137,   140,   142,   143,
1847 >     146,   148,   149,   152,   155,   156,   157,   159,   162,   164,
1848 >     165,   166,   167,  -736,   168,  -736,   171,   172,   174,   177,
1849 >     179,   180,   182,   183,   184,   185,   187,   188,   189,   198,
1850 >     200,   201,   204,   124,  -736,  -736,  -736,  -736,  -736,  -736,
1851 >    -736,  -736,  -736,  -736,  -736,  -736,  -736,  -736,  -736,  -736,
1852 >    -736,  -736,  -736,  -736,  -736,  -736,  -736,  -736,  -736,  -736,
1853 >    -736,  -736,  -736,  -736,  -736,  -736,  -736,  -736,  -736,  -736,
1854 >    -736,  -736,  -736,  -736,  -736,  -736,  -736,  -736,  -736,  -736,
1855 >    -736,  -736,  -736,   310,    10,    33,     2,   206,    32,  -736,
1856 >    -736,  -736,    29,   181,   208,   214,    23,  -736,  -736,  -736,
1857 >     486,    46,  -736,   215,   217,   220,   223,   224,   225,   227,
1858 >       4,  -736,  -736,  -736,  -736,  -736,  -736,  -736,  -736,   231,
1859 >     229,   230,   233,   237,   238,   240,   242,   246,   249,   253,
1860 >     263,   265,   268,   269,   272,   273,   279,   178,  -736,  -736,
1861 >    -736,  -736,  -736,  -736,  -736,  -736,  -736,  -736,  -736,  -736,
1862 >    -736,  -736,  -736,  -736,  -736,  -736,     6,    20,  -736,   282,
1863 >      49,  -736,  -736,  -736,   334,   378,   386,   287,  -736,   406,
1864 >     407,   348,   411,   411,   418,   420,   422,   362,   363,   425,
1865 >     411,   366,   311,  -736,   315,   307,   313,   321,  -736,   324,
1866 >     325,   328,   330,   332,   333,   336,   339,   342,   345,   346,
1867 >     350,   280,  -736,  -736,  -736,  -736,  -736,  -736,  -736,  -736,
1868 >    -736,  -736,  -736,  -736,  -736,  -736,  -736,  -736,  -736,   337,
1869 >     351,   352,   354,   355,  -736,   357,   359,   372,   373,   376,
1870 >     377,   379,   381,   320,  -736,  -736,  -736,  -736,  -736,  -736,
1871 >    -736,  -736,  -736,  -736,  -736,  -736,  -736,  -736,  -736,   382,
1872 >     384,    26,  -736,  -736,  -736,   451,   391,  -736,  -736,   389,
1873 >     390,  -736,  -736,    18,  -736,  -736,  -736,   409,   411,   411,
1874 >     484,   452,   454,   512,   501,   459,   411,   460,   411,   522,
1875 >     524,   525,   466,   467,   468,   411,   530,   531,   411,   541,
1876 >     548,   550,   553,   491,   493,   435,   496,   437,   411,   411,
1877 >     499,   500,   505,   506,   -96,   -62,   511,   513,   411,   411,
1878 >     557,   411,   515,   520,   521,   469,  -736,   470,   464,   465,
1879 >    -736,   473,   475,   477,   485,   488,    31,  -736,  -736,  -736,
1880 >    -736,  -736,  -736,  -736,  -736,  -736,  -736,   492,  -736,   502,
1881 >    -736,    35,  -736,  -736,  -736,   471,  -736,   504,   508,   509,
1882 >    -736,    15,  -736,  -736,  -736,  -736,  -736,   546,   494,  -736,
1883 >      47,  -736,   603,   604,   514,  -736,   517,   510,   516,  -736,
1884 >     518,   526,   527,  -736,   528,   266,  -736,  -736,  -736,  -736,
1885 >    -736,  -736,  -736,  -736,  -736,   536,   534,   538,   539,    39,
1886 >    -736,  -736,  -736,  -736,   565,   572,   609,   575,   577,   600,
1887 >     411,   547,  -736,  -736,   652,   607,   671,   672,   655,   657,
1888 >     658,   659,   660,   661,    76,   141,   664,   666,   686,   669,
1889 >     670,   573,  -736,   576,   569,  -736,   574,     5,  -736,  -736,
1890 >    -736,  -736,   581,   582,  -736,    38,  -736,  -736,  -736,   675,
1891 >     584,  -736,   590,   591,   592,  -736,   594,   596,   601,   275,
1892 >     602,   606,   608,   610,   611,   612,   614,   622,   625,   629,
1893 >    -736,  -736,   721,   722,   411,   583,   727,   750,   756,   758,
1894 >     411,   411,   744,   761,   764,   411,   765,   765,   649,  -736,
1895 >    -736,   748,   106,   752,   707,   662,   766,   768,   772,   774,
1896 >     779,   776,   780,   782,   679,  -736,   783,   784,   685,  -736,
1897 >     688,  -736,   786,   789,   687,   691,  -736,   697,   705,   709,
1898 >     711,   713,   715,   718,   719,   723,   724,   725,   728,   729,
1899 >     730,   731,   733,   734,   735,   736,   737,   738,   739,   740,
1900 >     741,   742,   745,   746,   747,   668,   749,   743,   751,   753,
1901 >     754,   755,   757,   759,   760,   762,   763,   767,   769,   770,
1902 >     771,   773,   775,   777,   778,   781,   785,  -736,  -736,   804,
1903 >     800,   787,   807,   839,   822,   827,   832,   788,  -736,   844,
1904 >     790,   848,   791,  -736,  -736,   792,   850,   852,   874,   794,
1905 >    -736,   796,  -736,    25,   797,   798,  -736,  -736,   858,   818,
1906 >     799,   864,   865,   866,   801,   868,   803,  -736,  -736,   872,
1907 >     876,   879,   805,  -736,   806,   808,   809,   810,   811,   812,
1908 >     813,  -736,   814,   815,   816,   817,   819,   820,   821,   823,
1909 >     824,   825,  -736,  -736,  -205,  -736,  -736,  -736,  -181,  -736,
1910 >     826,   828,   829,   830,   831,  -736,  -736,   880,   833,   882,
1911 >     834,  -736,  -736,   883,   835,   837,  -736,   840,  -736,  -736,
1912 >    -736,  -736,  -736,  -736,  -736,   411,   411,   411,   411,   411,
1913 >     411,   411,  -736,  -736,  -736,  -736,  -736,  -736,  -736,  -736,
1914 >    -736,  -736,  -736,  -736,   841,   842,   843,   211,   845,   846,
1915 >     847,   849,   851,   853,   854,   855,   856,   857,    82,   859,
1916 >     860,  -736,   861,   862,   863,   867,   869,    -4,   870,   871,
1917 >     873,   875,   877,   878,   881,   884,  -736,   885,   886,  -736,
1918 >    -736,   887,   888,   894,  -736,  -736,  -736,  -736,  -736,  -736,
1919 >    -736,  -736,  -736,  -736,  -736,  -736,  -736,  -736,  -736,  -736,
1920 >    -736,  -736,  -736,  -736,  -736,  -736,  -736,  -736,  -736,  -736,
1921 >    -736,  -736,  -736,  -736,  -736,  -736,  -736,  -736,  -736,  -736,
1922 >    -736,  -736,  -736,  -736,  -736,  -736,  -736,  -736,  -736,  -736,
1923 >    -736,  -736,  -736,  -736,  -174,  -736,  -736,  -736,  -736,  -736,
1924 >    -736,  -736,  -736,  -736,  -736,  -736,  -736,  -736,  -736,  -736,
1925 >    -736,  -736,  -736,  -736,  -736,  -736,  -736,  -163,  -736,  -736,
1926 >    -736,  -736,  -736,  -736,  -736,  -736,  -736,  -736,  -736,  -736,
1927 >    -736,  -736,  -736,  -736,  -736,  -736,  -736,  -736,   889,   890,
1928 >     579,   891,   892,   893,   895,   896,  -736,   897,   902,   898,
1929 >    -736,   -37,   899,   900,    99,   901,  -736,  -736,  -736,   903,
1930 >     836,  -736,   904,    44,  -736,  -736,  -736,  -736,  -736,  -736,
1931 >     906,   908,   566,   909,   910,   911,   704,   912,  -736,   913,
1932 >     914,   915,  -736,  -736,  -736,  -736,  -736,  -736,  -736,  -736,
1933 >    -736,  -736,  -736,  -736,  -736,  -736,  -736,  -736,  -736,  -736,
1934 >    -736,    76,  -736,   141,  -736,  -736,  -736,  -736,  -736,   916,
1935 >     360,   917,  -736,   918,   617,  -736,  -736,  -736,  -736,  -736,
1936 >    -736,  -736,  -736,  -736,  -736,  -736,  -736,  -736,  -736,  -161,
1937 >    -736,  -736,  -736,  -736,  -736,  -736,  -736,  -736,  -736,  -736,
1938 >    -736,   765,   765,   765,  -736,  -736,  -736,  -736,  -736,  -736,
1939 >    -736,  -736,  -736,  -736,  -736,  -141,  -736,  -736,  -736,  -736,
1940 >    -736,  -736,  -736,  -736,  -736,  -736,  -736,  -736,  -736,  -736,
1941 >    -127,  -736,  -736,   668,  -736,   743,  -736,  -736,  -736,  -736,
1942 >    -736,  -736,  -736,  -736,  -736,  -736,  -736,  -736,   -27,  -736,
1943 >    -736,  -736,  -736,  -736,  -736,  -736,  -736,   -24,  -736,  -736,
1944 >    -736,  -736,  -736,   -17,  -736,  -736,  -736,   905,   874,   919,
1945 >    -736,   922,   920,   -82,   921,  -736,  -736,  -736,  -736,  -736,
1946 >    -736,  -736,  -736,  -736,  -736,  -736,  -736,  -736,  -736,  -736,
1947 >    -736,  -736,  -736,  -736,  -736,  -736,    -6,  -736,  -736,  -736,
1948 >    -736,  -736,  -736,  -736,  -736,  -736,  -736,  -736,  -736,  -736,
1949 >    -736,  -736,  -736,  -736,  -736,  -736,  -736,  -736,  -736,  -736,
1950 >    -736,  -736,    -1,  -736,  -736,  -736,  -736,  -736,  -736,  -736,
1951 >    -736,  -736,  -736,  -736,  -736,  -736,  -736,  -736,  -736,  -736,
1952 >    -736,    30,  -736,  -736,  -736,  -736,  -736,  -736,  -736,  -736,
1953 >    -736,  -736,  -736,  -736,  -736,    43,  -736,  -736,   211,  -736,
1954 >    -736,  -736,  -736,    -4,  -736,   894,  -736,  -736,  -736,   579,
1955 >    -736,   902,  -736,   -37,  -736,  -736,  -736,   924,   153,   925,
1956 >     926,  -736,  -736,   566,  -736,   704,  -736,   360,  -736,   617,
1957 >    -736,  -736,  -736,  -736,  -736,  -736,  -736,  -736,  -736,  -736,
1958 >    -736,  -736,  -736,  -736,    48,  -736,  -736,  -736,  -736,  -736,
1959 >    -736,  -736,  -736,   153,  -736
1960   };
1961  
1962   /* YYPGOTO[NTERM-NUM].  */
1963   static const yytype_int16 yypgoto[] =
1964   {
1965 <    -772,  -772,  -772,  -753,  -315,  -771,  -450,  -772,  -772,   939,
1966 <    -772,  -772,  -772,  -772,   791,  -772,  -772,  -772,  -149,  -772,
1967 <    -772,  -772,  -772,  -772,  -772,  -772,  -772,  -772,  -772,  -772,
1968 <    -772,  -772,   983,  -772,  -772,  -772,  -772,  -772,   944,  -772,
1969 <    -772,  -772,  -772,  -772,    56,  -772,  -772,  -772,  -772,  -772,
1970 <    -228,  -772,  -772,  -772,   548,  -772,  -772,  -772,  -772,  -772,
1971 <    -772,  -772,  -772,  -772,  -197,  -772,  -772,  -772,  -175,  -772,
1972 <    -772,  -772,   798,  -772,  -772,  -772,  -772,  -772,  -772,  -772,
1973 <    -772,  -772,  -772,  -772,  -772,  -772,  -772,  -772,  -772,  -772,
1974 <    -772,  -184,  -772,   618,  -772,  -772,  -772,   -42,  -772,  -772,
1975 <    -772,  -772,  -772,   622,  -772,  -772,  -772,  -772,  -772,  -772,
1976 <    -772,  -147,  -772,  -772,  -772,  -772,  -772,  -772,   598,  -772,
1977 <    -772,  -772,  -772,  -772,   849,  -772,  -772,  -772,  -772,   538,
1978 <    -772,  -772,  -772,  -772,  -772,  -151,  -772,  -772,  -772,   528,
1979 <    -772,  -772,  -772,  -772,  -137,  -772,  -772,  -772,   789,  -772,
1980 <    -772,  -772,  -772,  -772,  -772,  -772,  -772,  -772,  -772,  -102,
1981 <    -772,  -772,  -772,  -772,  -772,  -772,  -772,  -772,  -772,  -101,
1982 <    -772,   648,  -772,  -772,  -772,  -772,  -772,   790,  -772,  -772,
1983 <    -772,  -772,  1013,  -772,  -772,  -772,  -772,  -772,  -772,   -85,
1984 <    -772,   783,  -772,  -772,  -772,  -772,   969,  -772,  -772,  -772,
1985 <    -772,  -772,  -772,  -772,  -772,  -772,  -772,  -772,  -772,  -772,
1986 <    -772,  -772,  -772,  -772,  -772,  -772,  -772,  -772,  -772,  -772,
1987 <    -772,  -772,  -772,  -772,  -772,  -772,  -772,  -772,  -772,  -772,
1988 <    -772,  -772,  -772,  -772,  -772,  -772,  -772,  -772,  -772,  -772,
1989 <    -772,  -772,  -772,  -772,  -772,    55,  -772,  -772,  -772,    59,
1990 <    -772,  -772,  -772,  -772,  -772,  -772,  -772,   693,  -772,  -772,
1991 <    -772,  -772,  -772,   -86,  -772,  -772,  -772,  -772,  -772,   -79,
1992 <    -772,  -772,  1060,  -772,  -772,  -772,  -772,  -772,  -772,  -772,
1993 <    -772,  -772,  -772,  -772,  -772,  -772,  -772,  -772,  -772,  -772,
2020 <    -772,  -772,  -772,   945,  -772,  -772,  -772,  -772,  -772,  -772,
2021 <    -772
1965 >    -736,  -736,  -736,   -81,  -300,  -735,  -606,  -736,  -736,   927,
1966 >    -736,  -736,  -736,  -736,   838,  -736,  -736,  -736,    14,  -736,
1967 >       9,  -736,  -736,  -736,  -736,  -736,  -736,  -736,  -736,  -736,
1968 >    -736,  -736,  -736,  -736,  -736,  -736,  -736,  -736,   936,  -736,
1969 >    -736,  -736,  -736,  -736,   907,  -736,  -736,  -736,  -736,    34,
1970 >    -736,  -736,  -736,  -736,  -736,  -244,  -736,  -736,  -736,   519,
1971 >    -736,  -736,  -736,  -736,  -736,  -736,  -736,  -736,  -736,  -202,
1972 >    -736,  -736,  -736,  -182,  -736,  -736,  -736,   793,  -736,  -736,
1973 >    -736,  -736,  -736,  -736,  -736,  -736,  -736,  -736,  -736,  -736,
1974 >    -736,  -736,  -736,  -736,  -736,  -736,  -148,  -736,  -736,  -736,
1975 >    -736,  -736,  -158,  -736,   616,  -736,  -736,  -736,   -50,  -736,
1976 >    -736,  -736,  -736,  -736,   615,  -736,  -736,  -736,  -736,  -736,
1977 >    -736,  -736,  -153,  -736,  -736,  -736,  -736,  -736,  -736,   554,
1978 >    -736,  -736,  -736,  -736,  -736,   923,  -736,  -736,  -736,  -736,
1979 >     532,  -736,  -736,  -736,  -736,  -736,  -160,  -736,  -736,  -736,
1980 >     523,  -736,  -736,  -736,  -736,  -154,  -736,  -736,  -736,   795,
1981 >    -736,  -736,  -736,  -736,  -736,  -736,  -736,  -736,  -736,  -736,
1982 >    -122,  -736,  -736,  -736,  -736,  -736,  -736,  -736,  -736,  -736,
1983 >    -736,  -124,  -736,   620,  -736,  -736,  -736,  -736,  -736,   714,
1984 >    -736,  -736,  -736,  -736,   989,  -736,  -736,  -736,  -736,  -736,
1985 >    -736,  -103,  -736,   710,  -736,  -736,  -736,  -736,   943,  -736,
1986 >    -736,  -736,  -736,  -736,  -736,  -736,  -736,  -736,  -736,  -736,
1987 >    -736,  -736,  -736,  -736,  -736,  -736,  -736,  -736,  -736,  -736,
1988 >    -736,  -736,  -736,  -736,  -736,  -736,  -736,  -736,  -736,  -736,
1989 >    -736,  -736,  -736,  -736,  -736,  -736,  -736,  -736,  -736,  -736,
1990 >    -736,  -736,  -736,  -736,  -736,    42,  -736,  -736,  -736,    54,
1991 >    -736,  -736,  -736,  -736,  -736,  1053,  -736,  -736,  -736,  -736,
1992 >    -736,  -736,  -736,  -736,  -736,  -736,  -736,  -736,  -736,  -736,
1993 >    -736,   928,  -736,  -736,  -736,  -736,  -736,  -736,  -736
1994   };
1995  
1996   /* YYTABLE[YYPACT[STATE-NUM]].  What to do in state STATE-NUM.  If
1997     positive, shift that token.  If negative, reduce the rule which
1998     number is the opposite.  If YYTABLE_NINF, syntax error.  */
1999 < #define YYTABLE_NINF -102
1999 > #define YYTABLE_NINF -114
2000   static const yytype_int16 yytable[] =
2001   {
2002 <     708,   605,   606,   331,   236,    70,   585,    49,   612,   360,
2003 <      50,   361,   493,   576,   362,   121,    54,   387,   543,   254,
2004 <    1075,   300,  1076,   474,   332,   333,    56,   397,   334,   300,
2005 <    1101,   502,   363,   121,    61,    71,    62,   459,   544,    65,
2006 <     460,   707,   245,   576,  1107,    72,   475,    66,   387,    47,
2007 <      48,   364,  1094,   255,   245,   365,  1095,   699,   700,   493,
2008 <    1052,  1053,  1054,  1055,  1056,   476,   256,    69,  1136,   477,
2009 <     118,   585,   236,   119,   366,   461,   367,   503,   462,   257,
2010 <     258,   259,   260,   701,   702,   122,   120,   388,   368,   335,
2011 <     336,   337,   662,   663,   338,   126,   504,   998,   232,   261,
2012 <     233,   505,   339,   122,    73,   586,   676,   234,   369,   127,
2013 <     235,   681,   577,   252,   340,   341,   128,   129,   388,   463,
2014 <     301,   545,   692,   693,   305,   695,   398,   130,   301,   253,
2015 <     342,   343,   298,   705,   706,   131,   464,   710,   370,   246,
2016 <    1253,   132,   577,   299,   494,   133,   134,   478,   135,   389,
2017 <     546,   246,   306,   271,   136,   307,   479,   480,   344,   399,
2018 <     506,   308,  1096,   137,   138,   371,  1097,   247,   139,   587,
2019 <     586,   311,   998,   140,   312,   495,   578,   141,   142,   247,
2020 <     389,   143,   845,   272,   144,   145,  1098,  1099,  1100,   481,
2021 <     400,   494,   146,   397,   313,  1102,   999,   314,   147,   148,
2022 <    1273,   149,   150,   151,   152,   153,   578,   524,  1137,  1108,
2023 <    1203,  1232,  1138,  1234,  1204,  1233,   154,  1235,   315,   273,
2024 <     237,  1274,   495,  1275,   155,   156,   157,   316,   158,  1077,
2025 <     525,   159,   160,   238,   587,   161,   496,   579,   848,   849,
2026 <     372,  -101,   633,   777,   309,   801,   162,   482,   648,   526,
2027 <     599,   738,   274,   527,   275,   276,   652,   769,   559,   595,
2028 <    1000,   465,   733,   317,  1276,   318,   659,   579,   593,   163,
2029 <     745,   999,   395,   164,    70,    79,   722,   165,   166,   167,
2030 <     168,   169,   796,   496,   513,   170,   171,    80,   237,  1036,
2031 <    1037,   319,   398,   522,   172,   277,   320,   278,   279,   321,
2032 <     474,   238,    81,    82,    71,   322,   528,   835,    83,  -101,
2033 <      84,   516,   280,   518,    72,   843,   844,   459,  1238,   323,
2034 <     460,   519,  1239,   475,   173,   399,   174,   271,   175,   324,
2035 <     325,   529,   326,  1001,   176,  1000,  1150,  1277,  1278,   177,
2036 <     327,   328,   476,  1240,   178,   543,   477,  1241,   457,   281,
2037 <     530,   394,    85,    86,   406,   461,   400,   272,   462,    87,
2038 <      88,   407,  1242,  1244,   408,   544,  1243,  1245,   127,   957,
2039 <     958,   959,   409,    73,  1279,   128,   129,   410,  1246,  1256,
2040 <      89,    90,  1247,  1257,   282,   283,   130,  1258,   411,   502,
2041 <     561,  1259,   574,   273,   131,    91,    92,  1261,   412,   463,
2042 <     132,  1262,   970,   413,   133,   134,    93,   135,  1001,   414,
2043 <     415,   416,   531,   136,  1263,    94,   464,  1288,  1264,   417,
2044 <     598,  1289,   137,   138,   478,   418,   274,   139,   275,   276,
2045 <     419,   532,   140,   479,   480,   503,   141,   142,   420,   421,
2046 <     143,   422,   423,   144,   145,   424,   763,   524,   545,   425,
2047 <     360,   146,   361,   426,   504,   362,   427,   147,   148,   505,
2048 <     149,   150,   151,   152,   153,   707,   481,   428,   604,   277,
2049 <     525,   278,   279,   363,   429,   154,   430,   546,   431,   432,
2050 <     433,  1154,   435,   155,   156,   157,   280,   158,   437,   526,
2051 <     159,   160,   364,   527,   161,   438,   365,   439,   440,   441,
2052 <     254,    95,    96,    97,   442,   162,   443,   444,  1155,   813,
2053 <     814,   815,   816,   817,   329,   366,   596,   367,   506,  1206,
2054 <     445,   446,   447,   281,   482,   448,   449,  1156,   163,   368,
2055 <     450,   451,   164,  1157,   255,   452,   165,   166,   167,   168,
2056 <     169,   465,    79,   453,   170,   171,   528,   256,   454,   369,
2057 <    1158,   455,   456,   172,    80,   514,   515,   520,   282,   283,
2058 <     257,   258,   259,   260,   521,   552,   553,   554,   597,    81,
2059 <      82,   529,   555,   556,  1159,    83,   557,    84,   558,   370,
2060 <     261,  1160,   562,   173,   563,   174,   602,   175,   564,   565,
2061 <     530,   566,  1220,   176,  1207,  1161,   567,   600,   177,   568,
2062 <     601,   570,   571,   178,   572,   573,   371,   592,   603,   609,
2063 <     604,   607,   608,  1162,   610,  1163,  1164,   611,   613,    85,
2064 <      86,   614,   615,   618,   616,  1208,    87,    88,   617,   619,
2065 <     661,   620,   664,   621,  1209,   622,   623,   624,   625,   626,
2066 <     627,  1210,   628,   629,   630,   631,   632,    89,    90,   635,
2067 <    1115,   636,   531,  1211,   654,  1212,  1213,   637,   638,   639,
2068 <     641,   642,    91,    92,   643,  1165,   644,  1221,   645,  1214,
2069 <     646,   532,   647,    93,  1116,  1166,   667,   665,   650,  1215,
2070 <     651,   372,    94,  1117,  1167,   656,   666,   668,  1168,  1118,
2071 <    1169,     2,     3,   657,   655,   669,     4,   331,  1222,  1254,
2072 <    1170,   670,   671,   672,   673,  1119,   674,  1223,   675,   677,
2073 <    1171,   678,     5,   679,  1224,     6,     7,   680,   332,   333,
2074 <     682,     8,   334,   683,   685,   684,  1225,   686,  1226,  1227,
2075 <     689,  1120,   687,   688,   690,   897,     9,   691,   694,  1121,
2076 <      10,    11,  1228,    12,   696,   697,   698,   703,   704,    13,
2077 <     707,   709,  1229,   711,   712,   713,   714,   717,   715,   718,
2078 <     747,   748,   920,    14,   751,   724,   720,   721,    95,    96,
2079 <      97,   725,   750,    15,    16,   726,   752,   728,   729,   771,
2080 <    1122,   730,   731,   335,   336,   337,   732,   735,   338,  1177,
2081 <      17,   737,   740,   742,   743,   772,   339,   744,  1123,   755,
2082 <     749,   753,   754,   773,   774,   775,    18,   756,   340,   341,
2083 <     758,   759,   776,   779,   781,   780,   765,   760,   762,   782,
2084 <     783,   784,   778,   785,   342,   343,   766,   767,   787,   788,
2085 <     768,   786,   793,   789,   790,   791,   792,   795,   798,   803,
2086 <      19,   804,   799,   805,   833,   806,   834,   807,   808,    20,
2087 <      21,   809,   344,    22,    23,   898,   899,   900,   901,   902,
2088 <     836,   903,   904,   810,   811,   905,   906,   907,   837,   838,
2089 <     908,   812,   909,   910,   911,   820,   912,   913,   914,   839,
2090 <     840,   915,   921,   922,   923,   924,   925,   916,   926,   927,
2091 <     821,   822,   928,   929,   930,   823,   824,   931,   825,   932,
2092 <     933,   934,   826,   935,   936,   937,    24,   827,   938,  1178,
2093 <    1179,  1180,  1181,  1182,   939,  1183,  1184,   828,   829,  1185,
2094 <    1186,  1187,   841,   830,  1188,   831,  1189,  1190,  1191,   842,
2095 <    1192,  1193,  1194,   832,   846,  1195,   847,   850,   851,   853,
2096 <     852,  1196,   854,   857,   855,   856,   858,   859,   860,   861,
2097 <     863,   862,   864,   865,   866,   868,   867,   869,   971,   870,
2098 <     871,   872,   873,   874,   875,   876,   877,   973,   878,   879,
2099 <     880,   881,   882,   974,   883,   976,   884,   885,   886,   887,
2100 <     888,   889,   890,   891,   892,   893,   894,   895,   979,   980,
2101 <     896,   919,   942,   943,   944,   945,   946,   981,   977,   947,
2102 <     948,   949,   950,   982,   951,   952,   953,   954,   983,   955,
2103 <     956,   962,   963,   964,   965,   966,   967,   968,   985,   987,
2104 <     975,   969,   972,   990,   978,   984,   988,   986,   991,   992,
2105 <     989,   995,   996,   997,  1007,  1008,  1009,  1010,  1012,  1011,
2106 <    1013,  1014,  1015,  1016,  1018,  1019,  1017,  1020,  1021,  1022,
2107 <    1248,  1044,  1046,  1048,  1091,  1260,  1023,   310,  1151,  1132,
2108 <    1024,  1290,  1285,  1271,  1025,  1026,  1027,  1028,  1029,  1030,
2109 <    1031,  1032,  1251,  1033,  1034,   575,  1035,  1040,  1041,  1042,
2110 <    1043,   764,  1284,  1143,  1047,  1045,  1050,  1051,  1049,  1057,
2111 <    1058,  1059,  1060,  1061,  1062,  1063,  1269,  1064,  1065,  1066,
2112 <    1067,  1068,  1249,  1069,  1070,   734,  1071,  1072,  1073,  1074,
2113 <    1080,  1286,  1081,  1082,  1083,  1084,   802,  1085,   797,  1086,
2114 <    1087,  1088,  1089,  1090,  1105,  1106,   746,  1287,  1111,  1112,
2115 <    1113,  1265,  1114,  1126,  1127,  1128,   396,  1129,  1130,  1131,
2116 <    1135,  1141,  1142,   634,  1270,   770,   739,  1146,   458,  1144,
2117 <    1266,   594,  1237,  1147,  1236,  1268,  1152,  1149,   330,   723,
2118 <    1267,     0,   649,  1153,  1174,  1175,  1176,  1199,  1200,  1201,
2119 <    1202,  1205,  1218,  1219,  1250,     0,  1255,  1272,  1252,     0,
2120 <     653,  1282,  1283,   517,     0,   660,     0,   523,     0,     0,
2002 >     819,   820,   580,   581,  1053,   232,   553,   553,    67,    76,
2003 >     588,   466,   288,    47,  1100,    48,   475,   108,  1000,   388,
2004 >     108,   562,  1001,   818,   223,    52,   959,   378,    54,    77,
2005 >      78,    68,   447,   216,   475,    79,   466,   216,    69,   562,
2006 >     515,   233,  1002,    45,    46,   959,  1003,   515,   448,  1072,
2007 >     288,   476,   388,  1073,    58,   234,   235,   236,   237,   238,
2008 >    1074,    59,  1197,   449,  1075,   378,  1198,   450,    62,   476,
2009 >     674,   675,   477,   516,   239,    80,    81,   478,   109,   223,
2010 >     516,   109,  1202,    82,    83,    84,  1203,    63,   379,    66,
2011 >     477,  1041,  1042,  1043,   105,   478,  1204,   106,   638,   639,
2012 >    1205,   554,   554,    70,   676,   677,   646,   289,   648,    85,
2013 >      86,   107,   517,   113,   389,   655,   563,   224,   658,   517,
2014 >    1219,   960,    87,    88,   213,   114,   379,   214,   668,   669,
2015 >     115,   116,    89,   215,   563,   467,   117,   479,   680,   681,
2016 >     960,   683,   225,   390,   118,   289,   230,   389,   231,   451,
2017 >     119,   380,   120,   121,   122,   479,  1101,   452,   453,   123,
2018 >     467,  1102,   555,   555,   518,   124,   125,   468,   126,   127,
2019 >     128,   518,   224,   286,   129,   391,   390,   564,   287,   249,
2020 >     130,   293,   961,   294,   131,   132,   295,   818,   133,   380,
2021 >     454,   296,   468,  1237,  1054,   564,  1208,   225,   134,  1210,
2022 >    1209,   961,   250,  1211,   299,   135,  1212,   136,   391,   137,
2023 >    1213,   138,   139,   140,   752,   753,  1238,  1222,  1239,   556,
2024 >     556,  1223,  1224,   300,   469,   486,  1225,   141,   531,   770,
2025 >     740,   297,   312,   142,   143,   144,   251,   145,   301,   709,
2026 >     146,   147,   635,   386,   148,   455,   962,   494,   217,   469,
2027 >     628,   490,   217,  1226,  -113,   697,   488,  1227,  -113,   702,
2028 >     252,  1240,   775,   732,   253,   962,  1228,   496,  1114,  1107,
2029 >    1229,  1252,   713,   570,   254,  1253,   255,   256,   149,   756,
2030 >     757,   314,   150,   497,   302,   151,   152,   153,   154,   155,
2031 >     823,   824,   156,   157,   806,   315,   316,   303,   498,   317,
2032 >     812,   813,   499,  1027,  1028,   817,  1199,  1200,  1201,   304,
2033 >     257,   447,   258,   259,   260,   261,   318,    67,   305,   306,
2034 >     307,   349,   308,   350,   309,   351,   310,   448,   311,   385,
2035 >     397,   262,  1241,  1242,   158,   159,   160,   352,   398,   161,
2036 >      68,   399,   449,   400,   162,   401,   450,    69,   445,   402,
2037 >     249,   403,   353,   404,   405,   263,   354,   406,   319,   320,
2038 >     321,   407,   500,   408,   322,   264,   409,  1243,   410,   411,
2039 >     323,   324,   412,   250,   413,   414,   325,   355,   415,   356,
2040 >     579,   416,   417,   418,   501,   419,   326,   327,   420,   357,
2041 >     421,   422,   423,   424,   426,   265,   266,   428,   429,   502,
2042 >     430,   328,   551,   431,   491,   432,   433,   251,   434,   435,
2043 >     436,   437,    70,   438,   439,   440,   358,   785,   786,   787,
2044 >     788,   789,   790,   791,   441,  1171,   442,   443,   451,   329,
2045 >     444,   252,   487,   114,   492,   253,   452,   453,   115,   116,
2046 >     493,   524,   359,   525,   117,   254,   526,   255,   256,   527,
2047 >     528,   529,   118,   530,   533,   534,   535,   572,   119,   536,
2048 >     120,   121,   122,   537,   538,   503,   539,   123,   540,   454,
2049 >     360,   330,   541,   124,   125,   542,   126,   127,   128,   543,
2050 >     504,   257,   129,   258,   259,   260,   261,   496,   130,   544,
2051 >     726,   545,   131,   132,   546,   547,   133,   361,   548,   549,
2052 >    1172,   573,   262,   497,   608,   550,   134,  1220,   569,   574,
2053 >     575,   576,   577,   135,   578,   136,   579,   137,   498,   138,
2054 >     139,   140,   499,   582,   455,   583,   263,   584,   585,   586,
2055 >     587,  1173,   589,   592,   590,   141,   264,   362,   591,   593,
2056 >    1174,   142,   143,   144,   624,   145,  1175,   594,   146,   147,
2057 >     596,   597,   148,   349,   598,   350,   599,   351,   600,   601,
2058 >     610,  1176,   602,  1177,  1178,   603,   265,   266,   604,   352,
2059 >    1118,   605,   606,  1179,   630,   637,   607,   611,   612,  1180,
2060 >     613,   614,   500,   616,   353,   617,   149,   232,   354,   640,
2061 >     150,  1119,  1078,   151,   152,   153,   154,   155,   618,   619,
2062 >     156,   157,   620,   621,   501,   622,  1120,   623,   626,   355,
2063 >     627,   356,  1079,  1121,   631,   632,   633,   643,   641,   502,
2064 >     642,   357,  1080,   233,   644,   645,   647,   649,  1081,   650,
2065 >     651,  1122,   652,   653,   654,   656,   657,   234,   235,   236,
2066 >     237,   238,   158,   159,   160,  1082,   659,   161,   358,    76,
2067 >       2,     3,   162,   660,     4,   661,   239,   663,   662,   664,
2068 >    1123,   665,   666,   667,     5,   670,   671,     6,     7,    77,
2069 >      78,   672,   673,     8,   359,    79,  1083,   678,  1124,   679,
2070 >     682,   684,  1185,  1084,     9,   503,   685,   686,    10,    11,
2071 >     689,   690,   687,   688,   704,  1125,  1126,  1127,    12,   692,
2072 >     504,   693,   360,   694,  1017,  1018,  1019,  1020,  1021,  1022,
2073 >    1023,   695,   711,    13,   696,    80,    81,   712,   699,   873,
2074 >    1085,    14,    15,    82,    83,    84,   714,   715,   701,   361,
2075 >     706,   734,   736,   314,   707,   708,   718,   716,   735,  1086,
2076 >     717,   737,   719,   738,   721,    16,  1128,   315,   316,    85,
2077 >      86,   317,   722,   723,   725,  1141,  1129,  1186,    17,   728,
2078 >     729,  1130,    87,    88,   730,   731,   739,  1131,   318,   362,
2079 >     741,  1132,    89,   743,  1133,   742,   744,   745,   746,  1134,
2080 >     747,   748,   749,   750,   751,  1135,  1087,   760,  1187,   761,
2081 >      18,   762,   763,   764,   897,   767,   765,  1188,   777,   766,
2082 >     769,    19,    20,  1189,   772,    21,    22,   778,   773,   807,
2083 >     319,   320,   321,   779,   780,   781,   322,   782,  1190,   783,
2084 >    1191,  1192,   323,   324,   784,   794,   804,   805,   325,   795,
2085 >    1193,   796,   808,   797,   798,   799,  1194,   800,   326,   327,
2086 >     874,   875,   876,   877,   878,   801,   879,   880,   802,   881,
2087 >     882,   883,   803,   328,   884,   809,   885,   886,   887,    23,
2088 >     888,   810,   889,   811,   890,   891,   815,   814,   892,   816,
2089 >     818,   822,   821,   826,   893,   825,  1142,  1143,  1144,  1145,
2090 >    1146,   329,  1147,  1148,   832,  1149,  1150,  1151,   827,   828,
2091 >    1152,   829,  1153,  1154,  1155,   830,  1156,   831,  1157,   833,
2092 >    1158,  1159,   836,   834,  1160,   835,   837,   838,   839,   841,
2093 >    1161,   840,   842,   843,   844,   898,   899,   900,   901,   902,
2094 >     845,   903,   904,   330,   905,   906,   907,   938,   846,   908,
2095 >     941,   909,   847,   910,   848,   911,   849,   912,   850,   913,
2096 >     914,   851,   852,   915,   942,   943,   853,   854,   855,   916,
2097 >     944,   856,   857,   858,   859,   945,   860,   861,   862,   863,
2098 >     864,   865,   866,   867,   868,   869,   939,   947,   870,   871,
2099 >     872,   949,   896,   952,   919,   953,   920,   921,   922,   954,
2100 >     923,   970,   924,   925,   971,   926,   927,   973,   974,   975,
2101 >     928,   977,   929,   930,   931,   979,   932,  1115,   933,   980,
2102 >     934,   935,   981,  1009,   936,  1011,  1013,   298,   937,  1254,
2103 >    1214,   946,  1169,   940,   950,  1168,   948,   957,   951,   958,
2104 >     968,   969,  1069,  1249,   727,   972,   978,   976,   982,   983,
2105 >    1096,   984,   985,   986,   987,   988,   989,   990,   991,   992,
2106 >     993,  1248,   994,   995,   996,  1217,   997,   998,   999,  1004,
2107 >    1230,  1005,  1006,  1007,  1008,  1235,  1233,  1012,  1215,  1010,
2108 >    1015,  1014,  1111,  1016,  1024,  1025,  1026,  1250,  1031,  1032,
2109 >    1033,   698,  1034,   733,  1035,  1251,  1036,  1037,  1038,  1039,
2110 >    1040,  1231,  1046,  1047,  1048,  1049,  1050,  1234,   776,   771,
2111 >    1051,   703,  1052,  1057,  1058,   629,  1059,   710,  1060,   387,
2112 >    1061,  1062,  1232,   636,  1063,   552,   446,  1064,  1065,  1066,
2113 >    1067,  1068,  1076,  1077,  1090,  1091,  1092,  1207,  1093,  1094,
2114 >    1095,  1099,  1105,  1106,   609,   489,  1110,  1206,  1108,  1116,
2115 >    1113,  1117,  1138,  1139,  1140,  1164,  1165,  1166,  1167,  1170,
2116 >    1183,  1184,  1216,   313,  1221,     0,  1218,  1236,  1246,  1247,
2117 >       0,     0,     0,   495,     0,     0,     0,     0,   625,     0,
2118 >       0,     0,     0,     0,     0,     0,     0,     0,   532,     0,
2119 >       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2120 >       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2121 >       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2122         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2123 <       0,     0,     0,     0,     0,     0,     0,   560
2123 >       0,     0,     0,   571
2124   };
2125  
2126 < #define yypact_value_is_default(yystate) \
2127 <  ((yystate) == (-772))
2126 > #define yypact_value_is_default(Yystate) \
2127 >  (!!((Yystate) == (-736)))
2128  
2129 < #define yytable_value_is_error(yytable_value) \
2129 > #define yytable_value_is_error(Yytable_value) \
2130    YYID (0)
2131  
2132   static const yytype_int16 yycheck[] =
2133   {
2134 <     450,   316,   317,     1,     1,     1,     1,   241,   323,     1,
2135 <     241,     3,     1,     1,     6,     1,   241,     1,     1,     1,
2136 <      10,     1,    12,     1,    22,    23,   241,     1,    26,     1,
2137 <      11,     1,    24,     1,   241,    31,   241,     1,    21,   241,
2138 <       4,   110,     1,     1,    11,    41,    24,   241,     1,   239,
2139 <     240,    43,   239,    35,     1,    47,   243,   174,   175,     1,
2140 <     813,   814,   815,   816,   817,    43,    48,   241,    61,    47,
2141 <     241,     1,     1,   241,    66,    39,    68,    47,    42,    61,
2142 <      62,    63,    64,   174,   175,    71,   241,    71,    80,    87,
2143 <      88,    89,   407,   408,    92,   241,    66,     1,   241,    81,
2144 <     241,    71,   100,    71,   100,   100,   421,   241,   100,     1,
2145 <     241,   426,   100,   241,   112,   113,     8,     9,    71,    83,
2146 <     100,   104,   437,   438,   239,   440,   100,    19,   100,   241,
2147 <     128,   129,   241,   448,   449,    27,   100,   452,   130,    98,
2148 <     209,    33,   100,   241,   133,    37,    38,   125,    40,   133,
2149 <     133,    98,   242,     1,    46,   242,   134,   135,   156,   133,
2150 <     130,   242,   239,    55,    56,   157,   243,   126,    60,   164,
2151 <     100,   242,     1,    65,   242,   164,   164,    69,    70,   126,
2152 <     133,    73,   632,    31,    76,    77,   957,   958,   959,   167,
2153 <     164,   133,    84,     1,   242,   176,   100,   242,    90,    91,
2154 <      51,    93,    94,    95,    96,    97,   164,     1,   201,   176,
2155 <     239,   239,   205,   239,   243,   243,   108,   243,   242,    67,
2156 <     217,    72,   164,    74,   116,   117,   118,   242,   120,   219,
2157 <      24,   123,   124,   230,   164,   127,   225,   225,   194,   195,
2158 <     232,   238,   240,   558,   240,   240,   138,   225,   240,    43,
2159 <     174,   240,   100,    47,   102,   103,   240,   240,   240,   131,
2160 <     164,   225,   240,   242,   115,   242,   240,   225,   240,   161,
2161 <     240,   100,   240,   165,     1,     1,   240,   169,   170,   171,
2162 <     172,   173,   240,   225,   239,   177,   178,    13,   217,   147,
2163 <     148,   242,   100,   240,   186,   143,   242,   145,   146,   242,
2164 <       1,   230,    28,    29,    31,   242,   100,   622,    34,   238,
2165 <      36,   240,   160,   238,    41,   630,   631,     1,   239,   242,
2166 <       4,   239,   243,    24,   216,   133,   218,     1,   220,   242,
2167 <     242,   125,   242,   237,   226,   164,   240,   188,   189,   231,
2168 <     242,   242,    43,   239,   236,     1,    47,   243,   240,   197,
2169 <     144,   242,    78,    79,   242,    39,   164,    31,    42,    85,
2170 <      86,   242,   239,   239,   242,    21,   243,   243,     1,    14,
2171 <      15,    16,   242,   100,   225,     8,     9,   242,   239,   239,
2172 <     106,   107,   243,   243,   232,   233,    19,   239,   242,     1,
2173 <     239,   243,   240,    67,    27,   121,   122,   239,   242,    83,
2174 <      33,   243,   717,   242,    37,    38,   132,    40,   237,   242,
2175 <     242,   242,   206,    46,   239,   141,   100,   239,   243,   242,
2176 <     239,   243,    55,    56,   125,   242,   100,    60,   102,   103,
2177 <     242,   225,    65,   134,   135,    47,    69,    70,   242,   242,
2178 <      73,   242,   242,    76,    77,   242,   240,     1,   104,   242,
2179 <       1,    84,     3,   242,    66,     6,   242,    90,    91,    71,
2180 <      93,    94,    95,    96,    97,   110,   167,   242,   110,   143,
2181 <      24,   145,   146,    24,   242,   108,   242,   133,   242,   242,
2182 <     242,     5,   242,   116,   117,   118,   160,   120,   242,    43,
2183 <     123,   124,    43,    47,   127,   242,    47,   242,   242,   242,
2184 <       1,   227,   228,   229,   242,   138,   242,   242,    32,   151,
2185 <     152,   153,   154,   155,   240,    66,   131,    68,   130,    74,
2186 <     242,   242,   242,   197,   225,   242,   242,    51,   161,    80,
2187 <     242,   242,   165,    57,    35,   242,   169,   170,   171,   172,
2188 <     173,   225,     1,   242,   177,   178,   100,    48,   242,   100,
2189 <      74,   242,   242,   186,    13,   242,   242,   242,   232,   233,
2190 <      61,    62,    63,    64,   242,   242,   242,   242,   131,    28,
2191 <      29,   125,   242,   242,    98,    34,   242,    36,   242,   130,
2192 <      81,   105,   242,   216,   242,   218,   174,   220,   242,   242,
2193 <     144,   242,    74,   226,   149,   119,   242,   110,   231,   242,
2194 <     110,   242,   242,   236,   242,   242,   157,   242,   174,   174,
2195 <     110,   110,   110,   137,   174,   139,   140,   110,   174,    78,
2196 <      79,   174,   174,   239,   174,   180,    85,    86,   174,   239,
2197 <     174,   242,   110,   242,   189,   242,   242,   242,   242,   242,
2198 <     242,   196,   242,   242,   242,   242,   242,   106,   107,   239,
2199 <      20,   242,   206,   208,   131,   210,   211,   242,   242,   242,
2200 <     242,   242,   121,   122,   242,   189,   242,   149,   242,   224,
2201 <     242,   225,   242,   132,    44,   199,   110,   174,   242,   234,
2202 <     242,   232,   141,    53,   208,   242,   174,   131,   212,    59,
2203 <     214,     0,     1,   242,   239,   174,     5,     1,   180,  1149,
2204 <     224,   110,   110,   110,   174,    75,   174,   189,   174,   131,
2205 <     234,   174,    21,   110,   196,    24,    25,   110,    22,    23,
2206 <     110,    30,    26,   110,   110,   131,   208,   110,   210,   211,
2207 <     242,   101,   174,   174,   174,    61,    45,   242,   174,   109,
2208 <      49,    50,   224,    52,   174,   174,   174,   174,   174,    58,
2209 <     110,   131,   234,   174,   174,   174,   174,   242,   239,   242,
2210 <     174,   174,    61,    72,   131,   239,   242,   242,   227,   228,
2211 <     229,   242,   241,    82,    83,   242,   131,   242,   242,   174,
2212 <     150,   242,   242,    87,    88,    89,   242,   242,    92,    61,
2213 <      99,   242,   239,   242,   242,   174,   100,   242,   168,   242,
2214 <     239,   239,   239,   174,   131,   174,   115,   242,   112,   113,
2215 <     242,   242,   174,   131,   131,   174,   239,   242,   242,   131,
2216 <     131,   131,   239,   131,   128,   129,   242,   242,   131,   110,
2217 <     242,   242,   242,   131,   131,   239,   239,   242,   239,   131,
2218 <     149,   239,   242,   239,   110,   239,   110,   239,   239,   158,
2219 <     159,   239,   156,   162,   163,   181,   182,   183,   184,   185,
2220 <     110,   187,   188,   239,   239,   191,   192,   193,   110,   110,
2221 <     196,   239,   198,   199,   200,   239,   202,   203,   204,   110,
2222 <     131,   207,   181,   182,   183,   184,   185,   213,   187,   188,
2223 <     239,   239,   191,   192,   193,   239,   239,   196,   239,   198,
2224 <     199,   200,   239,   202,   203,   204,   215,   239,   207,   181,
2225 <     182,   183,   184,   185,   213,   187,   188,   239,   239,   191,
2226 <     192,   193,   110,   239,   196,   239,   198,   199,   200,   110,
2227 <     202,   203,   204,   239,   239,   207,   131,   131,   174,   131,
2228 <     242,   213,   131,   110,   131,   131,   131,   131,   239,   131,
2229 <     239,   131,   239,   131,   131,   239,   242,   239,   174,   239,
2230 <     239,   239,   239,   239,   239,   239,   239,   131,   239,   239,
2231 <     239,   239,   239,   131,   239,   131,   239,   239,   239,   239,
2232 <     239,   239,   239,   239,   239,   239,   239,   239,   131,   110,
2233 <     239,   239,   239,   239,   239,   239,   239,   131,   174,   239,
2234 <     239,   239,   239,   131,   239,   239,   239,   239,   131,   239,
2235 <     239,   239,   239,   239,   239,   239,   239,   239,   131,   131,
2236 <     239,   242,   242,   131,   242,   239,   239,   242,   131,   110,
2237 <     242,   239,   239,   239,   239,   239,   131,   174,   131,   242,
2238 <     131,   131,   242,   131,   131,   131,   239,   131,   239,   239,
2239 <     110,   131,   131,   131,   136,  1204,   239,    74,  1002,   136,
2240 <     239,  1289,  1259,  1247,   239,   239,   239,   239,   239,   239,
2241 <     239,   239,   131,   239,   239,   284,   239,   239,   239,   239,
2242 <     239,   533,  1257,   179,   239,   242,   239,   239,   242,   239,
2243 <     239,   239,   239,   239,   239,   239,  1243,   239,   239,   239,
2244 <     239,   239,  1144,   239,   239,   483,   239,   239,   239,   239,
2245 <     239,  1262,   239,   239,   239,   239,   588,   239,   580,   239,
2246 <     239,   239,   239,   239,   239,   239,   508,  1264,   239,   239,
2247 <     239,  1233,   239,   239,   239,   239,   123,   239,   239,   239,
2248 <     239,   239,   239,   345,  1245,   547,   498,   239,   179,   243,
2249 <    1235,   302,  1097,   242,  1095,  1241,   239,   242,    98,   466,
2250 <    1239,    -1,   373,   239,   239,   239,   239,   239,   239,   239,
2278 <     239,   239,   239,   239,   239,    -1,   239,   239,   242,    -1,
2279 <     390,   239,   239,   239,    -1,   402,    -1,   248,    -1,    -1,
2134 >     606,   607,   302,   303,     8,     1,     1,     1,     1,     1,
2135 >     310,     1,     1,   225,    51,   225,     1,     1,   223,     1,
2136 >       1,     1,   227,   105,     1,   225,     1,     1,   225,    21,
2137 >      22,    24,     1,     1,     1,    27,     1,     1,    31,     1,
2138 >       1,    37,   223,   223,   224,     1,   227,     1,    17,   223,
2139 >       1,    36,     1,   227,   225,    51,    52,    53,    54,    55,
2140 >     223,   225,   223,    32,   227,     1,   227,    36,   225,    36,
2141 >     166,   167,    57,    34,    70,    67,    68,    62,    62,     1,
2142 >      34,    62,   223,    75,    76,    77,   227,   225,    62,   225,
2143 >      57,     9,    10,    11,   225,    62,   223,   225,   398,   399,
2144 >     227,    96,    96,    96,   166,   167,   406,    96,   408,   101,
2145 >     102,   225,    73,   225,    96,   415,    96,    94,   418,    73,
2146 >     202,    96,   114,   115,   225,     1,    62,   225,   428,   429,
2147 >       6,     7,   124,   225,    96,   125,    12,   122,   438,   439,
2148 >      96,   441,   119,   125,    20,    96,   225,    96,   225,   118,
2149 >      26,   125,    28,    29,    30,   122,   193,   126,   127,    35,
2150 >     125,   198,   157,   157,   125,    41,    42,   157,    44,    45,
2151 >      46,   125,    94,   225,    50,   157,   125,   157,   225,     1,
2152 >      56,   223,   157,   226,    60,    61,   226,   105,    64,   125,
2153 >     159,   226,   157,    40,   198,   157,   223,   119,    74,   223,
2154 >     227,   157,    24,   227,   226,    81,   223,    83,   157,    85,
2155 >     227,    87,    88,    89,   138,   139,    63,   223,    65,   214,
2156 >     214,   227,   223,   226,   214,   223,   227,   103,   224,   224,
2157 >     530,   224,   224,   109,   110,   111,    58,   113,   226,   224,
2158 >     116,   117,   224,   224,   120,   214,   221,   224,   216,   214,
2159 >     224,   222,   216,   223,   222,   224,   224,   227,   222,   224,
2160 >      82,   108,   224,   224,    86,   221,   223,     1,   224,   170,
2161 >     227,   223,   225,   224,    96,   227,    98,    99,   154,   138,
2162 >     139,     1,   158,    17,   226,   161,   162,   163,   164,   165,
2163 >     184,   185,   168,   169,   594,    15,    16,   226,    32,    19,
2164 >     600,   601,    36,    92,    93,   605,  1041,  1042,  1043,   226,
2165 >     132,     1,   134,   135,   136,   137,    36,     1,   226,   226,
2166 >     226,     1,   226,     3,   226,     5,   226,    17,   226,   226,
2167 >     226,   153,   179,   180,   210,   211,   212,    17,   226,   215,
2168 >      24,   226,    32,   226,   220,   226,    36,    31,   224,   226,
2169 >       1,   226,    32,   226,   226,   177,    36,   226,    78,    79,
2170 >      80,   226,    96,   226,    84,   187,   226,   214,   226,   226,
2171 >      90,    91,   226,    24,   226,   226,    96,    57,   226,    59,
2172 >     105,   226,   226,   226,   118,   226,   106,   107,   226,    69,
2173 >     226,   226,   226,   226,   226,   217,   218,   226,   226,   133,
2174 >     226,   121,   224,   226,   223,   226,   226,    58,   226,   226,
2175 >     226,   226,    96,   226,   226,   226,    96,   142,   143,   144,
2176 >     145,   146,   147,   148,   226,    65,   226,   226,   118,   149,
2177 >     226,    82,   226,     1,   226,    86,   126,   127,     6,     7,
2178 >     226,   226,   122,   226,    12,    96,   226,    98,    99,   226,
2179 >     226,   226,    20,   226,   223,   226,   226,   123,    26,   226,
2180 >      28,    29,    30,   226,   226,   199,   226,    35,   226,   159,
2181 >     150,   191,   226,    41,    42,   226,    44,    45,    46,   226,
2182 >     214,   132,    50,   134,   135,   136,   137,     1,    56,   226,
2183 >     224,   226,    60,    61,   226,   226,    64,   177,   226,   226,
2184 >     140,   123,   153,    17,   224,   226,    74,  1113,   226,   123,
2185 >     223,   105,   105,    81,   166,    83,   105,    85,    32,    87,
2186 >      88,    89,    36,   105,   214,   105,   177,   105,   166,   166,
2187 >     105,   171,   166,   226,   223,   103,   187,   217,   223,   226,
2188 >     180,   109,   110,   111,   224,   113,   186,   226,   116,   117,
2189 >     226,   226,   120,     1,   226,     3,   226,     5,   226,   226,
2190 >     223,   201,   226,   203,   204,   226,   217,   218,   226,    17,
2191 >       4,   226,   226,   213,   123,   166,   226,   226,   226,   219,
2192 >     226,   226,    96,   226,    32,   226,   154,     1,    36,   105,
2193 >     158,    25,    13,   161,   162,   163,   164,   165,   226,   226,
2194 >     168,   169,   226,   226,   118,   226,    40,   226,   226,    57,
2195 >     226,    59,    33,    47,   223,   226,   226,   105,   166,   133,
2196 >     166,    69,    43,    37,   123,   166,   166,   105,    49,   105,
2197 >     105,    65,   166,   166,   166,   105,   105,    51,    52,    53,
2198 >      54,    55,   210,   211,   212,    66,   105,   215,    96,     1,
2199 >       0,     1,   220,   105,     4,   105,    70,   166,   105,   166,
2200 >      94,   226,   166,   226,    14,   166,   166,    17,    18,    21,
2201 >      22,   166,   166,    23,   122,    27,    97,   166,   112,   166,
2202 >     123,   166,    65,   104,    34,   199,   166,   166,    38,    39,
2203 >     226,   226,   223,   223,   223,   129,   130,   131,    48,   226,
2204 >     214,   226,   150,   226,   785,   786,   787,   788,   789,   790,
2205 >     791,   226,   166,    63,   226,    67,    68,   223,   226,    51,
2206 >     141,    71,    72,    75,    76,    77,   123,   123,   226,   177,
2207 >     226,   166,   123,     1,   226,   226,   226,   223,   166,   160,
2208 >     223,   166,   226,   166,   226,    95,   180,    15,    16,   101,
2209 >     102,    19,   226,   226,   226,    51,   190,   140,   108,   223,
2210 >     226,   195,   114,   115,   226,   226,   166,   201,    36,   217,
2211 >     223,   205,   124,   166,   208,   123,   105,   105,   123,   213,
2212 >     123,   123,   123,   123,   123,   219,   207,   123,   171,   123,
2213 >     140,   105,   123,   123,    51,   226,   223,   180,   123,   223,
2214 >     226,   151,   152,   186,   223,   155,   156,   223,   226,   226,
2215 >      78,    79,    80,   223,   223,   223,    84,   223,   201,   223,
2216 >     203,   204,    90,    91,   223,   223,   105,   105,    96,   223,
2217 >     213,   223,   105,   223,   223,   223,   219,   223,   106,   107,
2218 >     172,   173,   174,   175,   176,   223,   178,   179,   223,   181,
2219 >     182,   183,   223,   121,   186,   105,   188,   189,   190,   209,
2220 >     192,   105,   194,   105,   196,   197,   105,   123,   200,   105,
2221 >     105,   123,   223,   166,   206,   123,   172,   173,   174,   175,
2222 >     176,   149,   178,   179,   105,   181,   182,   183,   226,   123,
2223 >     186,   123,   188,   189,   190,   123,   192,   123,   194,   123,
2224 >     196,   197,   223,   123,   200,   123,   123,   123,   223,   123,
2225 >     206,   223,   123,   226,   223,   172,   173,   174,   175,   176,
2226 >     223,   178,   179,   191,   181,   182,   183,   123,   223,   186,
2227 >     123,   188,   223,   190,   223,   192,   223,   194,   223,   196,
2228 >     197,   223,   223,   200,   105,   123,   223,   223,   223,   206,
2229 >     123,   223,   223,   223,   223,   123,   223,   223,   223,   223,
2230 >     223,   223,   223,   223,   223,   223,   166,   123,   223,   223,
2231 >     223,   123,   223,   123,   223,   123,   223,   223,   223,   105,
2232 >     223,   123,   223,   223,   166,   223,   223,   123,   123,   123,
2233 >     223,   123,   223,   223,   223,   123,   223,   963,   223,   123,
2234 >     223,   223,   123,   123,   223,   123,   123,    71,   223,  1253,
2235 >     105,   223,  1003,   226,   223,  1001,   226,   223,   226,   223,
2236 >     223,   223,   128,  1225,   505,   226,   223,   226,   223,   223,
2237 >     128,   223,   223,   223,   223,   223,   223,   223,   223,   223,
2238 >     223,  1223,   223,   223,   223,   123,   223,   223,   223,   223,
2239 >    1198,   223,   223,   223,   223,  1213,  1209,   223,  1108,   226,
2240 >     223,   226,   226,   223,   223,   223,   223,  1227,   223,   223,
2241 >     223,   456,   223,   519,   223,  1229,   223,   223,   223,   223,
2242 >     223,  1203,   223,   223,   223,   223,   223,  1211,   565,   557,
2243 >     223,   471,   223,   223,   223,   381,   223,   481,   223,   110,
2244 >     223,   223,  1205,   393,   223,   267,   163,   223,   223,   223,
2245 >     223,   223,   223,   223,   223,   223,   223,  1075,   223,   223,
2246 >     223,   223,   223,   223,   331,   218,   223,  1073,   227,   223,
2247 >     226,   223,   223,   223,   223,   223,   223,   223,   223,   223,
2248 >     223,   223,   223,    90,   223,    -1,   226,   223,   223,   223,
2249 >      -1,    -1,    -1,   226,    -1,    -1,    -1,    -1,   363,    -1,
2250 >      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   240,    -1,
2251        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2252 <      -1,    -1,    -1,    -1,    -1,    -1,    -1,   262
2252 >      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2253 >      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2254 >      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2255 >      -1,    -1,    -1,   290
2256   };
2257  
2258   /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
2259     symbol of state STATE-NUM.  */
2260   static const yytype_uint16 yystos[] =
2261   {
2262 <       0,   245,     0,     1,     5,    21,    24,    25,    30,    45,
2263 <      49,    50,    52,    58,    72,    82,    83,    99,   115,   149,
2264 <     158,   159,   162,   163,   215,   246,   251,   256,   274,   280,
2265 <     295,   313,   330,   344,   359,   366,   370,   380,   389,   408,
2266 <     418,   424,   428,   438,   498,   514,   535,   239,   240,   241,
2267 <     241,   314,   390,   419,   241,   429,   241,   499,   345,   409,
2268 <     331,   241,   241,   296,   360,   241,   241,   371,   381,   241,
2269 <       1,    31,    41,   100,   275,   276,   277,   278,   279,     1,
2270 <      13,    28,    29,    34,    36,    78,    79,    85,    86,   106,
2271 <     107,   121,   122,   132,   141,   227,   228,   229,   515,   516,
2272 <     517,   518,   519,   520,   521,   522,   523,   524,   525,   526,
2273 <     527,   528,   529,   530,   531,   532,   533,   534,   241,   241,
2274 <     241,     1,    71,   425,   426,   427,   241,     1,     8,     9,
2275 <      19,    27,    33,    37,    38,    40,    46,    55,    56,    60,
2276 <      65,    69,    70,    73,    76,    77,    84,    90,    91,    93,
2277 <      94,    95,    96,    97,   108,   116,   117,   118,   120,   123,
2278 <     124,   127,   138,   161,   165,   169,   170,   171,   172,   173,
2279 <     177,   178,   186,   216,   218,   220,   226,   231,   236,   439,
2280 <     440,   441,   442,   443,   444,   445,   446,   447,   448,   449,
2281 <     450,   451,   452,   453,   454,   455,   456,   457,   458,   459,
2282 <     460,   461,   462,   463,   464,   465,   466,   467,   468,   469,
2283 <     470,   471,   472,   473,   474,   475,   476,   477,   478,   479,
2284 <     480,   481,   482,   483,   484,   485,   486,   490,   494,   495,
2285 <     496,   497,   241,   241,   241,   241,     1,   217,   230,   281,
2286 <     282,   283,   284,   285,   286,     1,    98,   126,   252,   253,
2287 <     254,   255,   241,   241,     1,    35,    48,    61,    62,    63,
2288 <      64,    81,   536,   537,   538,   539,   540,   541,   542,   543,
2289 <     544,     1,    31,    67,   100,   102,   103,   143,   145,   146,
2290 <     160,   197,   232,   233,   257,   258,   259,   263,   264,   265,
2291 <     266,   267,   268,   269,   270,   271,   272,   273,   241,   241,
2292 <       1,   100,   367,   368,   369,   239,   242,   242,   242,   240,
2293 <     276,   242,   242,   242,   242,   242,   242,   242,   242,   242,
2294 <     242,   242,   242,   242,   242,   242,   242,   242,   242,   240,
2295 <     516,     1,    22,    23,    26,    87,    88,    89,    92,   100,
2296 <     112,   113,   128,   129,   156,   315,   316,   317,   318,   319,
2297 <     320,   321,   322,   323,   324,   325,   326,   327,   328,   329,
2298 <       1,     3,     6,    24,    43,    47,    66,    68,    80,   100,
2299 <     130,   157,   232,   391,   392,   393,   394,   395,   396,   397,
2300 <     398,   399,   400,   404,   405,   406,   407,     1,    71,   133,
2301 <     420,   421,   422,   423,   242,   240,   426,     1,   100,   133,
2302 <     164,   430,   434,   435,   436,   437,   242,   242,   242,   242,
2303 <     242,   242,   242,   242,   242,   242,   242,   242,   242,   242,
2304 <     242,   242,   242,   242,   242,   242,   242,   242,   242,   242,
2305 <     242,   242,   242,   242,   491,   242,   487,   242,   242,   242,
2306 <     242,   242,   242,   242,   242,   242,   242,   242,   242,   242,
2307 <     242,   242,   242,   242,   242,   242,   242,   240,   440,     1,
2308 <       4,    39,    42,    83,   100,   225,   500,   501,   502,   503,
2309 <     504,   508,   509,   510,     1,    24,    43,    47,   125,   134,
2310 <     135,   167,   225,   346,   347,   348,   349,   350,   351,   352,
2311 <     356,   357,   358,     1,   133,   164,   225,   410,   414,   415,
2312 <     416,   417,     1,    47,    66,    71,   130,   332,   336,   337,
2313 <     338,   342,   343,   239,   242,   242,   240,   282,   238,   239,
2314 <     242,   242,   240,   253,     1,    24,    43,    47,   100,   125,
2315 <     144,   206,   225,   297,   298,   299,   300,   301,   302,   303,
2316 <     304,   305,   309,     1,    21,   104,   133,   361,   362,   363,
2317 <     364,   365,   242,   242,   242,   242,   242,   242,   242,   240,
2318 <     537,   239,   242,   242,   242,   242,   242,   242,   242,   260,
2319 <     242,   242,   242,   242,   240,   258,     1,   100,   164,   225,
2320 <     372,   373,   374,   375,   376,     1,   100,   164,   382,   383,
2321 <     384,   385,   242,   240,   368,   131,   131,   131,   239,   174,
2322 <     110,   110,   174,   174,   110,   248,   248,   110,   110,   174,
2323 <     174,   110,   248,   174,   174,   174,   174,   174,   239,   239,
2324 <     242,   242,   242,   242,   242,   242,   242,   242,   242,   242,
2325 <     242,   242,   242,   240,   316,   239,   242,   242,   242,   242,
2326 <     401,   242,   242,   242,   242,   242,   242,   242,   240,   392,
2327 <     242,   242,   240,   421,   131,   239,   242,   242,   431,   240,
2328 <     435,   174,   248,   248,   110,   174,   174,   110,   131,   174,
2329 <     110,   110,   110,   174,   174,   174,   248,   131,   174,   110,
2330 <     110,   248,   110,   110,   131,   110,   110,   174,   174,   242,
2331 <     174,   242,   248,   248,   174,   248,   174,   174,   174,   174,
2332 <     175,   174,   175,   174,   174,   248,   248,   110,   250,   131,
2333 <     248,   174,   174,   174,   174,   239,   511,   242,   242,   505,
2334 <     242,   242,   240,   501,   239,   242,   242,   353,   242,   242,
2335 <     242,   242,   242,   240,   347,   242,   411,   242,   240,   415,
2336 <     239,   333,   242,   242,   242,   240,   337,   174,   174,   239,
2337 <     241,   131,   131,   239,   239,   242,   242,   310,   242,   242,
2338 <     242,   306,   242,   240,   298,   239,   242,   242,   242,   240,
2339 <     362,   174,   174,   174,   131,   174,   174,   248,   239,   131,
2340 <     174,   131,   131,   131,   131,   131,   242,   131,   110,   131,
2341 <     131,   239,   239,   242,   377,   242,   240,   373,   239,   242,
2342 <     386,   240,   383,   131,   239,   239,   239,   239,   239,   239,
2343 <     239,   239,   239,   151,   152,   153,   154,   155,   247,   248,
2344 <     239,   239,   239,   239,   239,   239,   239,   239,   239,   239,
2345 <     239,   239,   239,   110,   110,   248,   110,   110,   110,   110,
2346 <     131,   110,   110,   248,   248,   250,   239,   131,   194,   195,
2347 <     131,   174,   242,   131,   131,   131,   131,   110,   131,   131,
2348 <     239,   131,   131,   239,   239,   131,   131,   242,   239,   239,
2349 <     239,   239,   239,   239,   239,   239,   239,   239,   239,   239,
2350 <     239,   239,   239,   239,   239,   239,   239,   239,   239,   239,
2351 <     239,   239,   239,   239,   239,   239,   239,    61,   181,   182,
2352 <     183,   184,   185,   187,   188,   191,   192,   193,   196,   198,
2353 <     199,   200,   202,   203,   204,   207,   213,   492,   493,   239,
2354 <      61,   181,   182,   183,   184,   185,   187,   188,   191,   192,
2355 <     193,   196,   198,   199,   200,   202,   203,   204,   207,   213,
2356 <     488,   489,   239,   239,   239,   239,   239,   239,   239,   239,
2357 <     239,   239,   239,   239,   239,   239,   239,    14,    15,    16,
2358 <     249,   250,   239,   239,   239,   239,   239,   239,   239,   242,
2359 <     248,   174,   242,   131,   131,   239,   131,   174,   242,   131,
2360 <     110,   131,   131,   131,   239,   131,   242,   131,   239,   242,
2361 <     131,   131,   110,   340,   341,   239,   239,   239,     1,   100,
2362 <     164,   237,   287,   288,   289,   290,   291,   239,   239,   131,
2363 <     174,   242,   131,   131,   131,   242,   131,   239,   131,   131,
2364 <     131,   239,   239,   239,   239,   239,   239,   239,   239,   239,
2365 <     239,   239,   239,   239,   239,   239,   147,   148,   261,   262,
2366 <     239,   239,   239,   239,   131,   242,   131,   239,   131,   242,
2367 <     239,   239,   247,   247,   247,   247,   247,   239,   239,   239,
2368 <     239,   239,   239,   239,   239,   239,   239,   239,   239,   239,
2369 <     239,   239,   239,   239,   239,    10,    12,   219,   402,   403,
2370 <     239,   239,   239,   239,   239,   239,   239,   239,   239,   239,
2371 <     239,   136,   432,   433,   239,   243,   239,   243,   249,   249,
2372 <     249,    11,   176,   512,   513,   239,   239,    11,   176,   506,
2373 <     507,   239,   239,   239,   239,    20,    44,    53,    59,    75,
2374 <     101,   109,   150,   168,   354,   355,   239,   239,   239,   239,
2375 <     239,   239,   136,   412,   413,   239,    61,   201,   205,   334,
2376 <     335,   239,   239,   179,   243,   339,   239,   242,   292,   242,
2377 <     240,   288,   239,   239,     5,    32,    51,    57,    74,    98,
2378 <     105,   119,   137,   139,   140,   189,   199,   208,   212,   214,
2379 <     224,   234,   311,   312,   239,   239,   239,    61,   181,   182,
2380 <     183,   184,   185,   187,   188,   191,   192,   193,   196,   198,
2381 <     199,   200,   202,   203,   204,   207,   213,   307,   308,   239,
2382 <     239,   239,   239,   239,   243,   239,    74,   149,   180,   189,
2383 <     196,   208,   210,   211,   224,   234,   378,   379,   239,   239,
2384 <      74,   149,   180,   189,   196,   208,   210,   211,   224,   234,
2385 <     387,   388,   239,   243,   239,   243,   493,   489,   239,   243,
2386 <     239,   243,   239,   243,   239,   243,   239,   243,   110,   341,
2387 <     239,   131,   242,   209,   250,   239,   239,   243,   239,   243,
2414 <     262,   239,   243,   239,   243,   403,   433,   513,   507,   355,
2415 <     413,   335,   239,    51,    72,    74,   115,   188,   189,   225,
2416 <     293,   294,   239,   239,   312,   308,   379,   388,   239,   243,
2417 <     294
2262 >       0,   229,     0,     1,     4,    14,    17,    18,    23,    34,
2263 >      38,    39,    48,    63,    71,    72,    95,   108,   140,   151,
2264 >     152,   155,   156,   209,   230,   235,   240,   264,   270,   284,
2265 >     302,   325,   339,   354,   361,   365,   375,   384,   404,   414,
2266 >     420,   424,   434,   491,   507,   223,   224,   225,   225,   303,
2267 >     385,   415,   225,   425,   225,   340,   405,   326,   225,   225,
2268 >     285,   355,   225,   225,   366,   376,   225,     1,    24,    31,
2269 >      96,   265,   266,   267,   268,   269,     1,    21,    22,    27,
2270 >      67,    68,    75,    76,    77,   101,   102,   114,   115,   124,
2271 >     492,   493,   494,   495,   496,   497,   498,   499,   500,   501,
2272 >     502,   503,   504,   505,   506,   225,   225,   225,     1,    62,
2273 >     421,   422,   423,   225,     1,     6,     7,    12,    20,    26,
2274 >      28,    29,    30,    35,    41,    42,    44,    45,    46,    50,
2275 >      56,    60,    61,    64,    74,    81,    83,    85,    87,    88,
2276 >      89,   103,   109,   110,   111,   113,   116,   117,   120,   154,
2277 >     158,   161,   162,   163,   164,   165,   168,   169,   210,   211,
2278 >     212,   215,   220,   435,   436,   437,   438,   439,   440,   441,
2279 >     442,   443,   444,   445,   446,   447,   448,   449,   450,   451,
2280 >     452,   453,   454,   455,   456,   457,   458,   459,   460,   461,
2281 >     462,   463,   464,   465,   466,   467,   468,   469,   470,   471,
2282 >     472,   473,   474,   475,   476,   477,   478,   479,   480,   484,
2283 >     488,   489,   490,   225,   225,   225,     1,   216,   271,   272,
2284 >     273,   274,   275,     1,    94,   119,   236,   237,   238,   239,
2285 >     225,   225,     1,    37,    51,    52,    53,    54,    55,    70,
2286 >     508,   509,   510,   511,   512,   513,   514,   515,   516,     1,
2287 >      24,    58,    82,    86,    96,    98,    99,   132,   134,   135,
2288 >     136,   137,   153,   177,   187,   217,   218,   241,   242,   243,
2289 >     244,   249,   250,   251,   252,   253,   254,   255,   256,   257,
2290 >     258,   259,   260,   261,   262,   263,   225,   225,     1,    96,
2291 >     362,   363,   364,   223,   226,   226,   226,   224,   266,   226,
2292 >     226,   226,   226,   226,   226,   226,   226,   226,   226,   226,
2293 >     226,   226,   224,   493,     1,    15,    16,    19,    36,    78,
2294 >      79,    80,    84,    90,    91,    96,   106,   107,   121,   149,
2295 >     191,   304,   305,   306,   307,   308,   309,   310,   311,   312,
2296 >     313,   314,   315,   316,   317,   318,   319,   320,   321,     1,
2297 >       3,     5,    17,    32,    36,    57,    59,    69,    96,   122,
2298 >     150,   177,   217,   386,   387,   388,   389,   390,   391,   392,
2299 >     393,   394,   395,   399,   400,   401,   402,   403,     1,    62,
2300 >     125,   416,   417,   418,   419,   226,   224,   422,     1,    96,
2301 >     125,   157,   426,   430,   431,   432,   433,   226,   226,   226,
2302 >     226,   226,   226,   226,   226,   226,   226,   226,   226,   226,
2303 >     226,   226,   226,   226,   226,   226,   226,   226,   226,   226,
2304 >     226,   226,   226,   226,   226,   485,   226,   481,   226,   226,
2305 >     226,   226,   226,   226,   226,   226,   226,   226,   226,   226,
2306 >     226,   226,   226,   226,   226,   224,   436,     1,    17,    32,
2307 >      36,   118,   126,   127,   159,   214,   341,   342,   343,   344,
2308 >     345,   346,   347,   351,   352,   353,     1,   125,   157,   214,
2309 >     406,   410,   411,   412,   413,     1,    36,    57,    62,   122,
2310 >     327,   331,   332,   333,   337,   338,   223,   226,   224,   272,
2311 >     222,   223,   226,   226,   224,   237,     1,    17,    32,    36,
2312 >      96,   118,   133,   199,   214,   286,   287,   288,   289,   290,
2313 >     291,   292,   293,   294,   298,     1,    34,    73,   125,   356,
2314 >     357,   358,   359,   360,   226,   226,   226,   226,   226,   226,
2315 >     226,   224,   509,   223,   226,   226,   226,   226,   226,   226,
2316 >     226,   226,   226,   226,   226,   226,   226,   226,   226,   226,
2317 >     226,   224,   242,     1,    96,   157,   214,   367,   368,   369,
2318 >     370,   371,     1,    96,   157,   377,   378,   379,   380,   226,
2319 >     224,   363,   123,   123,   123,   223,   105,   105,   166,   105,
2320 >     232,   232,   105,   105,   105,   166,   166,   105,   232,   166,
2321 >     223,   223,   226,   226,   226,   322,   226,   226,   226,   226,
2322 >     226,   226,   226,   226,   226,   226,   226,   226,   224,   305,
2323 >     223,   226,   226,   226,   226,   396,   226,   226,   226,   226,
2324 >     226,   226,   226,   226,   224,   387,   226,   226,   224,   417,
2325 >     123,   223,   226,   226,   427,   224,   431,   166,   232,   232,
2326 >     105,   166,   166,   105,   123,   166,   232,   166,   232,   105,
2327 >     105,   105,   166,   166,   166,   232,   105,   105,   232,   105,
2328 >     105,   105,   105,   166,   166,   226,   166,   226,   232,   232,
2329 >     166,   166,   166,   166,   166,   167,   166,   167,   166,   166,
2330 >     232,   232,   123,   232,   166,   166,   166,   223,   223,   226,
2331 >     226,   348,   226,   226,   226,   226,   226,   224,   342,   226,
2332 >     407,   226,   224,   411,   223,   328,   226,   226,   226,   224,
2333 >     332,   166,   223,   225,   123,   123,   223,   223,   226,   226,
2334 >     299,   226,   226,   226,   295,   226,   224,   287,   223,   226,
2335 >     226,   226,   224,   357,   166,   166,   123,   166,   166,   166,
2336 >     232,   223,   123,   166,   105,   105,   123,   123,   123,   123,
2337 >     123,   123,   138,   139,   245,   246,   138,   139,   247,   248,
2338 >     123,   123,   105,   123,   123,   223,   223,   226,   372,   226,
2339 >     224,   368,   223,   226,   381,   224,   378,   123,   223,   223,
2340 >     223,   223,   223,   223,   223,   142,   143,   144,   145,   146,
2341 >     147,   148,   231,   232,   223,   223,   223,   223,   223,   223,
2342 >     223,   223,   223,   223,   105,   105,   232,   226,   105,   105,
2343 >     105,   105,   232,   232,   123,   105,   105,   232,   105,   234,
2344 >     234,   223,   123,   184,   185,   123,   166,   226,   123,   123,
2345 >     123,   123,   105,   123,   123,   123,   223,   123,   123,   223,
2346 >     223,   123,   123,   226,   223,   223,   223,   223,   223,   223,
2347 >     223,   223,   223,   223,   223,   223,   223,   223,   223,   223,
2348 >     223,   223,   223,   223,   223,   223,   223,   223,   223,   223,
2349 >     223,   223,   223,    51,   172,   173,   174,   175,   176,   178,
2350 >     179,   181,   182,   183,   186,   188,   189,   190,   192,   194,
2351 >     196,   197,   200,   206,   486,   487,   223,    51,   172,   173,
2352 >     174,   175,   176,   178,   179,   181,   182,   183,   186,   188,
2353 >     190,   192,   194,   196,   197,   200,   206,   482,   483,   223,
2354 >     223,   223,   223,   223,   223,   223,   223,   223,   223,   223,
2355 >     223,   223,   223,   223,   223,   223,   223,   223,   123,   166,
2356 >     226,   123,   105,   123,   123,   123,   223,   123,   226,   123,
2357 >     223,   226,   123,   123,   105,   335,   336,   223,   223,     1,
2358 >      96,   157,   221,   276,   277,   278,   279,   280,   223,   223,
2359 >     123,   166,   226,   123,   123,   123,   226,   123,   223,   123,
2360 >     123,   123,   223,   223,   223,   223,   223,   223,   223,   223,
2361 >     223,   223,   223,   223,   223,   223,   223,   223,   223,   223,
2362 >     223,   227,   223,   227,   223,   223,   223,   223,   223,   123,
2363 >     226,   123,   223,   123,   226,   223,   223,   231,   231,   231,
2364 >     231,   231,   231,   231,   223,   223,   223,    92,    93,   323,
2365 >     324,   223,   223,   223,   223,   223,   223,   223,   223,   223,
2366 >     223,     9,    10,    11,   233,   234,   223,   223,   223,   223,
2367 >     223,   223,   223,     8,   198,   397,   398,   223,   223,   223,
2368 >     223,   223,   223,   223,   223,   223,   223,   223,   223,   128,
2369 >     428,   429,   223,   227,   223,   227,   223,   223,    13,    33,
2370 >      43,    49,    66,    97,   104,   141,   160,   207,   349,   350,
2371 >     223,   223,   223,   223,   223,   223,   128,   408,   409,   223,
2372 >      51,   193,   198,   329,   330,   223,   223,   170,   227,   334,
2373 >     223,   226,   281,   226,   224,   277,   223,   223,     4,    25,
2374 >      40,    47,    65,    94,   112,   129,   130,   131,   180,   190,
2375 >     195,   201,   205,   208,   213,   219,   300,   301,   223,   223,
2376 >     223,    51,   172,   173,   174,   175,   176,   178,   179,   181,
2377 >     182,   183,   186,   188,   189,   190,   192,   194,   196,   197,
2378 >     200,   206,   296,   297,   223,   223,   223,   223,   246,   248,
2379 >     223,    65,   140,   171,   180,   186,   201,   203,   204,   213,
2380 >     219,   373,   374,   223,   223,    65,   140,   171,   180,   186,
2381 >     201,   203,   204,   213,   219,   382,   383,   223,   227,   233,
2382 >     233,   233,   223,   227,   223,   227,   487,   483,   223,   227,
2383 >     223,   227,   223,   227,   105,   336,   223,   123,   226,   202,
2384 >     234,   223,   223,   227,   223,   227,   223,   227,   223,   227,
2385 >     324,   398,   429,   350,   409,   330,   223,    40,    63,    65,
2386 >     108,   179,   180,   214,   282,   283,   223,   223,   301,   297,
2387 >     374,   383,   223,   227,   283
2388   };
2389  
2390   #define yyerrok         (yyerrstatus = 0)
# Line 2444 | Line 2414 | static const yytype_uint16 yystos[] =
2414  
2415   #define YYRECOVERING()  (!!yyerrstatus)
2416  
2417 < #define YYBACKUP(Token, Value)                                  \
2418 < do                                                              \
2419 <  if (yychar == YYEMPTY && yylen == 1)                          \
2420 <    {                                                           \
2421 <      yychar = (Token);                                         \
2422 <      yylval = (Value);                                         \
2423 <      YYPOPSTACK (1);                                           \
2424 <      goto yybackup;                                            \
2425 <    }                                                           \
2426 <  else                                                          \
2427 <    {                                                           \
2417 > #define YYBACKUP(Token, Value)                                  \
2418 > do                                                              \
2419 >  if (yychar == YYEMPTY)                                        \
2420 >    {                                                           \
2421 >      yychar = (Token);                                         \
2422 >      yylval = (Value);                                         \
2423 >      YYPOPSTACK (yylen);                                       \
2424 >      yystate = *yyssp;                                         \
2425 >      goto yybackup;                                            \
2426 >    }                                                           \
2427 >  else                                                          \
2428 >    {                                                           \
2429        yyerror (YY_("syntax error: cannot back up")); \
2430        YYERROR;                                                  \
2431      }                                                           \
2432   while (YYID (0))
2433  
2434 <
2434 > /* Error token number */
2435   #define YYTERROR        1
2436   #define YYERRCODE       256
2437  
2438  
2468 /* YYLLOC_DEFAULT -- Set CURRENT to span from RHS[1] to RHS[N].
2469   If N is 0, then set CURRENT to the empty location which ends
2470   the previous symbol: RHS[0] (always defined).  */
2471
2472 #define YYRHSLOC(Rhs, K) ((Rhs)[K])
2473 #ifndef YYLLOC_DEFAULT
2474 # define YYLLOC_DEFAULT(Current, Rhs, N)                                \
2475    do                                                                  \
2476      if (YYID (N))                                                    \
2477        {                                                               \
2478          (Current).first_line   = YYRHSLOC (Rhs, 1).first_line;        \
2479          (Current).first_column = YYRHSLOC (Rhs, 1).first_column;      \
2480          (Current).last_line    = YYRHSLOC (Rhs, N).last_line;         \
2481          (Current).last_column  = YYRHSLOC (Rhs, N).last_column;       \
2482        }                                                               \
2483      else                                                              \
2484        {                                                               \
2485          (Current).first_line   = (Current).last_line   =              \
2486            YYRHSLOC (Rhs, 0).last_line;                                \
2487          (Current).first_column = (Current).last_column =              \
2488            YYRHSLOC (Rhs, 0).last_column;                              \
2489        }                                                               \
2490    while (YYID (0))
2491 #endif
2492
2493
2439   /* This macro is provided for backward compatibility. */
2495
2440   #ifndef YY_LOCATION_PRINT
2441   # define YY_LOCATION_PRINT(File, Loc) ((void) 0)
2442   #endif
2443  
2444  
2445   /* YYLEX -- calling `yylex' with the right arguments.  */
2502
2446   #ifdef YYLEX_PARAM
2447   # define YYLEX yylex (YYLEX_PARAM)
2448   #else
# Line 2549 | Line 2492 | yy_symbol_value_print (yyoutput, yytype,
2492      YYSTYPE const * const yyvaluep;
2493   #endif
2494   {
2495 +  FILE *yyo = yyoutput;
2496 +  YYUSE (yyo);
2497    if (!yyvaluep)
2498      return;
2499   # ifdef YYPRINT
# Line 2557 | Line 2502 | yy_symbol_value_print (yyoutput, yytype,
2502   # else
2503    YYUSE (yyoutput);
2504   # endif
2505 <  switch (yytype)
2561 <    {
2562 <      default:
2563 <        break;
2564 <    }
2505 >  YYUSE (yytype);
2506   }
2507  
2508  
# Line 2800 | Line 2741 | static int
2741   yysyntax_error (YYSIZE_T *yymsg_alloc, char **yymsg,
2742                  yytype_int16 *yyssp, int yytoken)
2743   {
2744 <  YYSIZE_T yysize0 = yytnamerr (0, yytname[yytoken]);
2744 >  YYSIZE_T yysize0 = yytnamerr (YY_NULL, yytname[yytoken]);
2745    YYSIZE_T yysize = yysize0;
2805  YYSIZE_T yysize1;
2746    enum { YYERROR_VERBOSE_ARGS_MAXIMUM = 5 };
2747    /* Internationalized format string. */
2748 <  const char *yyformat = 0;
2748 >  const char *yyformat = YY_NULL;
2749    /* Arguments of yyformat. */
2750    char const *yyarg[YYERROR_VERBOSE_ARGS_MAXIMUM];
2751    /* Number of reported tokens (one for the "unexpected", one per
# Line 2865 | Line 2805 | yysyntax_error (YYSIZE_T *yymsg_alloc, c
2805                      break;
2806                    }
2807                  yyarg[yycount++] = yytname[yyx];
2808 <                yysize1 = yysize + yytnamerr (0, yytname[yyx]);
2809 <                if (! (yysize <= yysize1
2810 <                       && yysize1 <= YYSTACK_ALLOC_MAXIMUM))
2811 <                  return 2;
2812 <                yysize = yysize1;
2808 >                {
2809 >                  YYSIZE_T yysize1 = yysize + yytnamerr (YY_NULL, yytname[yyx]);
2810 >                  if (! (yysize <= yysize1
2811 >                         && yysize1 <= YYSTACK_ALLOC_MAXIMUM))
2812 >                    return 2;
2813 >                  yysize = yysize1;
2814 >                }
2815                }
2816          }
2817      }
# Line 2889 | Line 2831 | yysyntax_error (YYSIZE_T *yymsg_alloc, c
2831   # undef YYCASE_
2832      }
2833  
2834 <  yysize1 = yysize + yystrlen (yyformat);
2835 <  if (! (yysize <= yysize1 && yysize1 <= YYSTACK_ALLOC_MAXIMUM))
2836 <    return 2;
2837 <  yysize = yysize1;
2834 >  {
2835 >    YYSIZE_T yysize1 = yysize + yystrlen (yyformat);
2836 >    if (! (yysize <= yysize1 && yysize1 <= YYSTACK_ALLOC_MAXIMUM))
2837 >      return 2;
2838 >    yysize = yysize1;
2839 >  }
2840  
2841    if (*yymsg_alloc < yysize)
2842      {
# Line 2948 | Line 2892 | yydestruct (yymsg, yytype, yyvaluep)
2892      yymsg = "Deleting";
2893    YY_SYMBOL_PRINT (yymsg, yytype, yyvaluep, yylocationp);
2894  
2895 <  switch (yytype)
2952 <    {
2953 <
2954 <      default:
2955 <        break;
2956 <    }
2895 >  YYUSE (yytype);
2896   }
2897  
2898  
2960 /* Prevent warnings from -Wmissing-prototypes.  */
2961 #ifdef YYPARSE_PARAM
2962 #if defined __STDC__ || defined __cplusplus
2963 int yyparse (void *YYPARSE_PARAM);
2964 #else
2965 int yyparse ();
2966 #endif
2967 #else /* ! YYPARSE_PARAM */
2968 #if defined __STDC__ || defined __cplusplus
2969 int yyparse (void);
2970 #else
2971 int yyparse ();
2972 #endif
2973 #endif /* ! YYPARSE_PARAM */
2899  
2900  
2901   /* The lookahead symbol.  */
2902   int yychar;
2903  
2904 +
2905 + #ifndef YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
2906 + # define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
2907 + # define YY_IGNORE_MAYBE_UNINITIALIZED_END
2908 + #endif
2909 + #ifndef YY_INITIAL_VALUE
2910 + # define YY_INITIAL_VALUE(Value) /* Nothing. */
2911 + #endif
2912 +
2913   /* The semantic value of the lookahead symbol.  */
2914 < YYSTYPE yylval;
2914 > YYSTYPE yylval YY_INITIAL_VALUE(yyval_default);
2915  
2916   /* Number of syntax errors so far.  */
2917   int yynerrs;
# Line 3017 | Line 2951 | yyparse ()
2951         `yyss': related to states.
2952         `yyvs': related to semantic values.
2953  
2954 <       Refer to the stacks thru separate pointers, to allow yyoverflow
2954 >       Refer to the stacks through separate pointers, to allow yyoverflow
2955         to reallocate them elsewhere.  */
2956  
2957      /* The state stack.  */
# Line 3035 | Line 2969 | yyparse ()
2969    int yyn;
2970    int yyresult;
2971    /* Lookahead token as an internal (translated) token number.  */
2972 <  int yytoken;
2972 >  int yytoken = 0;
2973    /* The variables used to return semantic value and location from the
2974       action routines.  */
2975    YYSTYPE yyval;
# Line 3053 | Line 2987 | yyparse ()
2987       Keep to zero when no symbol should be popped.  */
2988    int yylen = 0;
2989  
2990 <  yytoken = 0;
2991 <  yyss = yyssa;
3058 <  yyvs = yyvsa;
2990 >  yyssp = yyss = yyssa;
2991 >  yyvsp = yyvs = yyvsa;
2992    yystacksize = YYINITDEPTH;
2993  
2994    YYDPRINTF ((stderr, "Starting parse\n"));
# Line 3064 | Line 2997 | yyparse ()
2997    yyerrstatus = 0;
2998    yynerrs = 0;
2999    yychar = YYEMPTY; /* Cause a token to be read.  */
3067
3068  /* Initialize stack pointers.
3069     Waste one element of value and location stack
3070     so that they stay on the same level as the state stack.
3071     The wasted elements are never initialized.  */
3072  yyssp = yyss;
3073  yyvsp = yyvs;
3074
3000    goto yysetstate;
3001  
3002   /*------------------------------------------------------------.
# Line 3212 | Line 3137 | yybackup:
3137    yychar = YYEMPTY;
3138  
3139    yystate = yyn;
3140 +  YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
3141    *++yyvsp = yylval;
3142 +  YY_IGNORE_MAYBE_UNINITIALIZED_END
3143  
3144    goto yynewstate;
3145  
# Line 3248 | Line 3175 | yyreduce:
3175    YY_REDUCE_PRINT (yyn);
3176    switch (yyn)
3177      {
3178 <        case 27:
3179 <
3180 < /* Line 1806 of yacc.c  */
3254 < #line 404 "ircd_parser.y"
3178 >        case 26:
3179 > /* Line 1787 of yacc.c  */
3180 > #line 393 "conf_parser.y"
3181      { (yyval.number) = 0; }
3182      break;
3183  
3184 <  case 29:
3185 <
3186 < /* Line 1806 of yacc.c  */
3261 < #line 406 "ircd_parser.y"
3184 >  case 28:
3185 > /* Line 1787 of yacc.c  */
3186 > #line 395 "conf_parser.y"
3187      {
3188                          (yyval.number) = (yyvsp[(1) - (2)].number) + (yyvsp[(2) - (2)].number);
3189                  }
3190      break;
3191  
3192 <  case 30:
3193 <
3194 < /* Line 1806 of yacc.c  */
3270 < #line 410 "ircd_parser.y"
3192 >  case 29:
3193 > /* Line 1787 of yacc.c  */
3194 > #line 399 "conf_parser.y"
3195      {
3196                          (yyval.number) = (yyvsp[(1) - (3)].number) + (yyvsp[(3) - (3)].number);
3197                  }
3198      break;
3199  
3200 <  case 31:
3201 <
3202 < /* Line 1806 of yacc.c  */
3279 < #line 414 "ircd_parser.y"
3200 >  case 30:
3201 > /* Line 1787 of yacc.c  */
3202 > #line 403 "conf_parser.y"
3203      {
3204                          (yyval.number) = (yyvsp[(1) - (3)].number) * 60 + (yyvsp[(3) - (3)].number);
3205                  }
3206      break;
3207  
3208 <  case 32:
3209 <
3210 < /* Line 1806 of yacc.c  */
3288 < #line 418 "ircd_parser.y"
3208 >  case 31:
3209 > /* Line 1787 of yacc.c  */
3210 > #line 407 "conf_parser.y"
3211      {
3212                          (yyval.number) = (yyvsp[(1) - (3)].number) * 60 * 60 + (yyvsp[(3) - (3)].number);
3213                  }
3214      break;
3215  
3216 <  case 33:
3217 <
3218 < /* Line 1806 of yacc.c  */
3297 < #line 422 "ircd_parser.y"
3216 >  case 32:
3217 > /* Line 1787 of yacc.c  */
3218 > #line 411 "conf_parser.y"
3219      {
3220                          (yyval.number) = (yyvsp[(1) - (3)].number) * 60 * 60 * 24 + (yyvsp[(3) - (3)].number);
3221                  }
3222      break;
3223  
3224 <  case 34:
3225 <
3226 < /* Line 1806 of yacc.c  */
3306 < #line 426 "ircd_parser.y"
3224 >  case 33:
3225 > /* Line 1787 of yacc.c  */
3226 > #line 415 "conf_parser.y"
3227      {
3228                          (yyval.number) = (yyvsp[(1) - (3)].number) * 60 * 60 * 24 * 7 + (yyvsp[(3) - (3)].number);
3229                  }
3230      break;
3231  
3232 +  case 34:
3233 + /* Line 1787 of yacc.c  */
3234 + #line 419 "conf_parser.y"
3235 +    {
3236 +                        (yyval.number) = (yyvsp[(1) - (3)].number) * 60 * 60 * 24 * 7 * 4 + (yyvsp[(3) - (3)].number);
3237 +                }
3238 +    break;
3239 +
3240    case 35:
3241 + /* Line 1787 of yacc.c  */
3242 + #line 423 "conf_parser.y"
3243 +    {
3244 +                        (yyval.number) = (yyvsp[(1) - (3)].number) * 60 * 60 * 24 * 365 + (yyvsp[(3) - (3)].number);
3245 +                }
3246 +    break;
3247  
3248 < /* Line 1806 of yacc.c  */
3249 < #line 431 "ircd_parser.y"
3248 >  case 36:
3249 > /* Line 1787 of yacc.c  */
3250 > #line 428 "conf_parser.y"
3251      { (yyval.number) = 0; }
3252      break;
3253  
3254 <  case 37:
3255 <
3256 < /* Line 1806 of yacc.c  */
3322 < #line 432 "ircd_parser.y"
3254 >  case 38:
3255 > /* Line 1787 of yacc.c  */
3256 > #line 429 "conf_parser.y"
3257      { (yyval.number) = (yyvsp[(1) - (2)].number) + (yyvsp[(2) - (2)].number); }
3258      break;
3259  
3260 <  case 38:
3261 <
3262 < /* Line 1806 of yacc.c  */
3329 < #line 433 "ircd_parser.y"
3260 >  case 39:
3261 > /* Line 1787 of yacc.c  */
3262 > #line 430 "conf_parser.y"
3263      { (yyval.number) = (yyvsp[(1) - (3)].number) + (yyvsp[(3) - (3)].number); }
3264      break;
3265  
3266 <  case 39:
3267 <
3268 < /* Line 1806 of yacc.c  */
3336 < #line 434 "ircd_parser.y"
3266 >  case 40:
3267 > /* Line 1787 of yacc.c  */
3268 > #line 431 "conf_parser.y"
3269      { (yyval.number) = (yyvsp[(1) - (3)].number) * 1024 + (yyvsp[(3) - (3)].number); }
3270      break;
3271  
3272 <  case 40:
3273 <
3274 < /* Line 1806 of yacc.c  */
3343 < #line 435 "ircd_parser.y"
3272 >  case 41:
3273 > /* Line 1787 of yacc.c  */
3274 > #line 432 "conf_parser.y"
3275      { (yyval.number) = (yyvsp[(1) - (3)].number) * 1024 * 1024 + (yyvsp[(3) - (3)].number); }
3276      break;
3277  
3278 <  case 47:
3279 <
3280 < /* Line 1806 of yacc.c  */
3350 < #line 449 "ircd_parser.y"
3278 >  case 48:
3279 > /* Line 1787 of yacc.c  */
3280 > #line 446 "conf_parser.y"
3281      {
3282    if (conf_parser_ctx.pass == 2)
3283      add_conf_module(libio_basename(yylval.string));
3284   }
3285      break;
3286  
3287 <  case 48:
3288 <
3289 < /* Line 1806 of yacc.c  */
3360 < #line 455 "ircd_parser.y"
3287 >  case 49:
3288 > /* Line 1787 of yacc.c  */
3289 > #line 452 "conf_parser.y"
3290      {
3291    if (conf_parser_ctx.pass == 2)
3292      mod_add_path(yylval.string);
3293   }
3294      break;
3295  
3296 <  case 65:
3297 <
3298 < /* Line 1806 of yacc.c  */
3370 < #line 475 "ircd_parser.y"
3296 >  case 75:
3297 > /* Line 1787 of yacc.c  */
3298 > #line 478 "conf_parser.y"
3299      {
3300   #ifdef HAVE_LIBCRYPTO
3301 <  if (conf_parser_ctx.boot && conf_parser_ctx.pass == 2)
3302 <    ServerInfo.tls_version = 0;
3301 >  if (conf_parser_ctx.pass == 2 && ServerInfo.client_ctx)
3302 >    SSL_CTX_clear_options(ServerInfo.client_ctx, SSL_OP_NO_SSLv3);
3303   #endif
3304   }
3305      break;
3306  
3307 <  case 66:
3308 <
3309 < /* Line 1806 of yacc.c  */
3382 < #line 481 "ircd_parser.y"
3307 >  case 76:
3308 > /* Line 1787 of yacc.c  */
3309 > #line 484 "conf_parser.y"
3310      {
3311   #ifdef HAVE_LIBCRYPTO
3312 <  if (conf_parser_ctx.boot && conf_parser_ctx.pass == 2)
3313 <  {
3387 <    if (!(ServerInfo.tls_version & CONF_SERVER_INFO_TLS_VERSION_SSLV3))
3388 <      SSL_CTX_set_options(ServerInfo.server_ctx, SSL_OP_NO_SSLv3);
3389 <    if (!(ServerInfo.tls_version & CONF_SERVER_INFO_TLS_VERSION_TLSV1))
3390 <      SSL_CTX_set_options(ServerInfo.server_ctx, SSL_OP_NO_TLSv1);
3391 <  }
3312 >  if (conf_parser_ctx.pass == 2 && ServerInfo.client_ctx)
3313 >    SSL_CTX_clear_options(ServerInfo.client_ctx, SSL_OP_NO_TLSv1);
3314   #endif
3315   }
3316      break;
3317  
3318 <  case 69:
3319 <
3320 < /* Line 1806 of yacc.c  */
3399 < #line 495 "ircd_parser.y"
3318 >  case 79:
3319 > /* Line 1787 of yacc.c  */
3320 > #line 493 "conf_parser.y"
3321      {
3322   #ifdef HAVE_LIBCRYPTO
3323 <  if (conf_parser_ctx.boot && conf_parser_ctx.pass == 2)
3324 <    ServerInfo.tls_version |= CONF_SERVER_INFO_TLS_VERSION_SSLV3;
3323 >  if (conf_parser_ctx.pass == 2 && ServerInfo.server_ctx)
3324 >    SSL_CTX_clear_options(ServerInfo.server_ctx, SSL_OP_NO_SSLv3);
3325   #endif
3326   }
3327      break;
3328  
3329 <  case 70:
3330 <
3331 < /* Line 1806 of yacc.c  */
3411 < #line 501 "ircd_parser.y"
3329 >  case 80:
3330 > /* Line 1787 of yacc.c  */
3331 > #line 499 "conf_parser.y"
3332      {
3333   #ifdef HAVE_LIBCRYPTO
3334 <  if (conf_parser_ctx.boot && conf_parser_ctx.pass == 2)
3335 <    ServerInfo.tls_version |= CONF_SERVER_INFO_TLS_VERSION_TLSV1;
3334 >  if (conf_parser_ctx.pass == 2 && ServerInfo.server_ctx)
3335 >    SSL_CTX_clear_options(ServerInfo.server_ctx, SSL_OP_NO_TLSv1);
3336   #endif
3337   }
3338      break;
3339  
3340 <  case 71:
3341 <
3342 < /* Line 1806 of yacc.c  */
3423 < #line 509 "ircd_parser.y"
3340 >  case 81:
3341 > /* Line 1787 of yacc.c  */
3342 > #line 507 "conf_parser.y"
3343      {
3344   #ifdef HAVE_LIBCRYPTO
3345    if (conf_parser_ctx.pass == 2 && ServerInfo.server_ctx)
3346    {
3347      if (!ServerInfo.rsa_private_key_file)
3348      {
3349 <      yyerror("No rsa_private_key_file specified, SSL disabled");
3349 >      conf_error_report("No rsa_private_key_file specified, SSL disabled");
3350        break;
3351      }
3352  
3353      if (SSL_CTX_use_certificate_file(ServerInfo.server_ctx, yylval.string,
3354 +                                     SSL_FILETYPE_PEM) <= 0 ||
3355 +        SSL_CTX_use_certificate_file(ServerInfo.client_ctx, yylval.string,
3356                                       SSL_FILETYPE_PEM) <= 0)
3357      {
3358 <      yyerror(ERR_lib_error_string(ERR_get_error()));
3358 >      report_crypto_errors();
3359 >      conf_error_report("Could not open/read certificate file");
3360        break;
3361      }
3362  
3363      if (SSL_CTX_use_PrivateKey_file(ServerInfo.server_ctx, ServerInfo.rsa_private_key_file,
3364 +                                    SSL_FILETYPE_PEM) <= 0 ||
3365 +        SSL_CTX_use_PrivateKey_file(ServerInfo.client_ctx, ServerInfo.rsa_private_key_file,
3366                                      SSL_FILETYPE_PEM) <= 0)
3367      {
3368 <      yyerror(ERR_lib_error_string(ERR_get_error()));
3368 >      report_crypto_errors();
3369 >      conf_error_report("Could not read RSA private key");
3370        break;
3371      }
3372  
3373 <    if (!SSL_CTX_check_private_key(ServerInfo.server_ctx))
3373 >    if (!SSL_CTX_check_private_key(ServerInfo.server_ctx) ||
3374 >        !SSL_CTX_check_private_key(ServerInfo.client_ctx))
3375      {
3376 <      yyerror(ERR_lib_error_string(ERR_get_error()));
3376 >      report_crypto_errors();
3377 >      conf_error_report("Could not read RSA private key");
3378        break;
3379      }
3380    }
# Line 3455 | Line 3382 | yyreduce:
3382   }
3383      break;
3384  
3385 <  case 72:
3386 <
3387 < /* Line 1806 of yacc.c  */
3461 < #line 543 "ircd_parser.y"
3385 >  case 82:
3386 > /* Line 1787 of yacc.c  */
3387 > #line 549 "conf_parser.y"
3388      {
3389   #ifdef HAVE_LIBCRYPTO
3390    if (conf_parser_ctx.pass == 1)
# Line 3477 | Line 3403 | yyreduce:
3403        ServerInfo.rsa_private_key_file = NULL;
3404      }
3405  
3406 <    DupString(ServerInfo.rsa_private_key_file, yylval.string);
3406 >    ServerInfo.rsa_private_key_file = xstrdup(yylval.string);
3407  
3408      if ((file = BIO_new_file(yylval.string, "r")) == NULL)
3409      {
3410 <      yyerror("File open failed, ignoring");
3410 >      conf_error_report("File open failed, ignoring");
3411        break;
3412      }
3413  
3414 <    ServerInfo.rsa_private_key = (RSA *)PEM_read_bio_RSAPrivateKey(file, NULL,
3489 <      0, NULL);
3414 >    ServerInfo.rsa_private_key = PEM_read_bio_RSAPrivateKey(file, NULL, 0, NULL);
3415  
3416      BIO_set_close(file, BIO_CLOSE);
3417      BIO_free(file);
3418  
3419      if (ServerInfo.rsa_private_key == NULL)
3420      {
3421 <      yyerror("Couldn't extract key, ignoring");
3421 >      conf_error_report("Couldn't extract key, ignoring");
3422        break;
3423      }
3424  
# Line 3502 | Line 3427 | yyreduce:
3427        RSA_free(ServerInfo.rsa_private_key);
3428        ServerInfo.rsa_private_key = NULL;
3429  
3430 <      yyerror("Invalid key, ignoring");
3430 >      conf_error_report("Invalid key, ignoring");
3431        break;
3432      }
3433  
# Line 3512 | Line 3437 | yyreduce:
3437        RSA_free(ServerInfo.rsa_private_key);
3438        ServerInfo.rsa_private_key = NULL;
3439  
3440 <      yyerror("Not a 2048 bit key, ignoring");
3440 >      conf_error_report("Not a 2048 bit key, ignoring");
3441      }
3442    }
3443   #endif
3444   }
3445      break;
3446  
3447 <  case 73:
3447 >  case 83:
3448 > /* Line 1787 of yacc.c  */
3449 > #line 608 "conf_parser.y"
3450 >    {
3451 > /* TBD - XXX: error reporting */
3452 > #ifdef HAVE_LIBCRYPTO
3453 >  if (conf_parser_ctx.pass == 2 && ServerInfo.server_ctx)
3454 >  {
3455 >    BIO *file = BIO_new_file(yylval.string, "r");
3456  
3457 < /* Line 1806 of yacc.c  */
3458 < #line 603 "ircd_parser.y"
3457 >    if (file)
3458 >    {
3459 >      DH *dh = PEM_read_bio_DHparams(file, NULL, NULL, NULL);
3460 >
3461 >      BIO_free(file);
3462 >
3463 >      if (dh)
3464 >      {
3465 >        if (DH_size(dh) < 128)
3466 >          conf_error_report("Ignoring serverinfo::ssl_dh_param_file -- need at least a 1024 bit DH prime size");
3467 >        else
3468 >          SSL_CTX_set_tmp_dh(ServerInfo.server_ctx, dh);
3469 >
3470 >        DH_free(dh);
3471 >      }
3472 >    }
3473 >  }
3474 > #endif
3475 > }
3476 >    break;
3477 >
3478 >  case 84:
3479 > /* Line 1787 of yacc.c  */
3480 > #line 636 "conf_parser.y"
3481 >    {
3482 > #ifdef HAVE_LIBCRYPTO
3483 >  if (conf_parser_ctx.pass == 2 && ServerInfo.server_ctx)
3484 >    SSL_CTX_set_cipher_list(ServerInfo.server_ctx, yylval.string);
3485 > #endif
3486 > }
3487 >    break;
3488 >
3489 >  case 85:
3490 > /* Line 1787 of yacc.c  */
3491 > #line 644 "conf_parser.y"
3492      {
3493    /* this isn't rehashable */
3494    if (conf_parser_ctx.pass == 2 && !ServerInfo.name)
3495    {
3496      if (valid_servname(yylval.string))
3497 <      DupString(ServerInfo.name, yylval.string);
3497 >      ServerInfo.name = xstrdup(yylval.string);
3498      else
3499      {
3500 <      ilog(LOG_TYPE_IRCD, "Ignoring serverinfo::name -- invalid name. Aborting.");
3500 >      conf_error_report("Ignoring serverinfo::name -- invalid name. Aborting.");
3501        exit(0);
3502      }
3503    }
3504   }
3505      break;
3506  
3507 <  case 74:
3508 <
3509 < /* Line 1806 of yacc.c  */
3544 < #line 618 "ircd_parser.y"
3507 >  case 86:
3508 > /* Line 1787 of yacc.c  */
3509 > #line 659 "conf_parser.y"
3510      {
3511    /* this isn't rehashable */
3512    if (conf_parser_ctx.pass == 2 && !ServerInfo.sid)
3513    {
3514      if (valid_sid(yylval.string))
3515 <      DupString(ServerInfo.sid, yylval.string);
3515 >      ServerInfo.sid = xstrdup(yylval.string);
3516      else
3517      {
3518 <      ilog(LOG_TYPE_IRCD, "Ignoring serverinfo::sid -- invalid SID. Aborting.");
3518 >      conf_error_report("Ignoring serverinfo::sid -- invalid SID. Aborting.");
3519        exit(0);
3520      }
3521    }
3522   }
3523      break;
3524  
3525 <  case 75:
3526 <
3527 < /* Line 1806 of yacc.c  */
3563 < #line 633 "ircd_parser.y"
3525 >  case 87:
3526 > /* Line 1787 of yacc.c  */
3527 > #line 674 "conf_parser.y"
3528      {
3529    if (conf_parser_ctx.pass == 2)
3530    {
3531      MyFree(ServerInfo.description);
3532 <    DupString(ServerInfo.description,yylval.string);
3532 >    ServerInfo.description = xstrdup(yylval.string);
3533    }
3534   }
3535      break;
3536  
3537 <  case 76:
3538 <
3539 < /* Line 1806 of yacc.c  */
3576 < #line 642 "ircd_parser.y"
3537 >  case 88:
3538 > /* Line 1787 of yacc.c  */
3539 > #line 683 "conf_parser.y"
3540      {
3541    if (conf_parser_ctx.pass == 2)
3542    {
# Line 3583 | Line 3546 | yyreduce:
3546        p = '\0';
3547  
3548      MyFree(ServerInfo.network_name);
3549 <    DupString(ServerInfo.network_name, yylval.string);
3549 >    ServerInfo.network_name = xstrdup(yylval.string);
3550    }
3551   }
3552      break;
3553  
3554 <  case 77:
3555 <
3556 < /* Line 1806 of yacc.c  */
3594 < #line 656 "ircd_parser.y"
3554 >  case 89:
3555 > /* Line 1787 of yacc.c  */
3556 > #line 697 "conf_parser.y"
3557      {
3558    if (conf_parser_ctx.pass == 2)
3559    {
3560      MyFree(ServerInfo.network_desc);
3561 <    DupString(ServerInfo.network_desc, yylval.string);
3561 >    ServerInfo.network_desc = xstrdup(yylval.string);
3562    }
3563   }
3564      break;
3565  
3566 <  case 78:
3567 <
3568 < /* Line 1806 of yacc.c  */
3607 < #line 665 "ircd_parser.y"
3566 >  case 90:
3567 > /* Line 1787 of yacc.c  */
3568 > #line 706 "conf_parser.y"
3569      {
3570    if (conf_parser_ctx.pass == 2 && *yylval.string != '*')
3571    {
# Line 3633 | Line 3594 | yyreduce:
3594   }
3595      break;
3596  
3597 <  case 79:
3598 <
3599 < /* Line 1806 of yacc.c  */
3639 < #line 693 "ircd_parser.y"
3597 >  case 91:
3598 > /* Line 1787 of yacc.c  */
3599 > #line 734 "conf_parser.y"
3600      {
3601   #ifdef IPV6
3602    if (conf_parser_ctx.pass == 2 && *yylval.string != '*')
# Line 3667 | Line 3627 | yyreduce:
3627   }
3628      break;
3629  
3630 <  case 80:
3631 <
3632 < /* Line 1806 of yacc.c  */
3673 < #line 723 "ircd_parser.y"
3630 >  case 92:
3631 > /* Line 1787 of yacc.c  */
3632 > #line 764 "conf_parser.y"
3633      {
3634 <  if (conf_parser_ctx.pass == 2)
3634 >  if (conf_parser_ctx.pass != 2)
3635 >    break;
3636 >
3637 >  if ((yyvsp[(3) - (4)].number) < MAXCLIENTS_MIN)
3638    {
3639 <    recalc_fdlimit(NULL);
3639 >    char buf[IRCD_BUFSIZE];
3640  
3641 <    if ((yyvsp[(3) - (4)].number) < MAXCLIENTS_MIN)
3642 <    {
3643 <      char buf[IRCD_BUFSIZE];
3644 <      ircsprintf(buf, "MAXCLIENTS too low, setting to %d", MAXCLIENTS_MIN);
3645 <      yyerror(buf);
3646 <    }
3647 <    else if ((yyvsp[(3) - (4)].number) > MAXCLIENTS_MAX)
3641 >    snprintf(buf, sizeof(buf), "MAXCLIENTS too low, setting to %d", MAXCLIENTS_MIN);
3642 >    conf_error_report(buf);
3643 >    ServerInfo.max_clients = MAXCLIENTS_MIN;
3644 >  }
3645 >  else if ((yyvsp[(3) - (4)].number) > MAXCLIENTS_MAX)
3646 >  {
3647 >    char buf[IRCD_BUFSIZE];
3648 >
3649 >    snprintf(buf, sizeof(buf), "MAXCLIENTS too high, setting to %d", MAXCLIENTS_MAX);
3650 >    conf_error_report(buf);
3651 >    ServerInfo.max_clients = MAXCLIENTS_MAX;
3652 >  }
3653 >  else
3654 >    ServerInfo.max_clients = (yyvsp[(3) - (4)].number);
3655 > }
3656 >    break;
3657 >
3658 >  case 93:
3659 > /* Line 1787 of yacc.c  */
3660 > #line 789 "conf_parser.y"
3661      {
3662 <      char buf[IRCD_BUFSIZE];
3663 <      ircsprintf(buf, "MAXCLIENTS too high, setting to %d", MAXCLIENTS_MAX);
3664 <      yyerror(buf);
3665 <    }
3666 <    else
3667 <      ServerInfo.max_clients = (yyvsp[(3) - (4)].number);
3662 >  if (conf_parser_ctx.pass != 2)
3663 >    break;
3664 >
3665 >  if ((yyvsp[(3) - (4)].number) < 9)
3666 >  {
3667 >    conf_error_report("max_nick_length too low, setting to 9");
3668 >    ServerInfo.max_nick_length = 9;
3669    }
3670 +  else if ((yyvsp[(3) - (4)].number) > NICKLEN)
3671 +  {
3672 +    char buf[IRCD_BUFSIZE];
3673 +
3674 +    snprintf(buf, sizeof(buf), "max_nick_length too high, setting to %d", NICKLEN);
3675 +    conf_error_report(buf);
3676 +    ServerInfo.max_nick_length = NICKLEN;
3677 +  }
3678 +  else
3679 +    ServerInfo.max_nick_length = (yyvsp[(3) - (4)].number);
3680   }
3681      break;
3682  
3683 <  case 81:
3683 >  case 94:
3684 > /* Line 1787 of yacc.c  */
3685 > #line 811 "conf_parser.y"
3686 >    {
3687 >  if (conf_parser_ctx.pass != 2)
3688 >    break;
3689 >
3690 >  if ((yyvsp[(3) - (4)].number) < 80)
3691 >  {
3692 >    conf_error_report("max_topic_length too low, setting to 80");
3693 >    ServerInfo.max_topic_length = 80;
3694 >  }
3695 >  else if ((yyvsp[(3) - (4)].number) > TOPICLEN)
3696 >  {
3697 >    char buf[IRCD_BUFSIZE];
3698 >
3699 >    snprintf(buf, sizeof(buf), "max_topic_length too high, setting to %d", TOPICLEN);
3700 >    conf_error_report(buf);
3701 >    ServerInfo.max_topic_length = TOPICLEN;
3702 >  }
3703 >  else
3704 >    ServerInfo.max_topic_length = (yyvsp[(3) - (4)].number);
3705 > }
3706 >    break;
3707  
3708 < /* Line 1806 of yacc.c  */
3709 < #line 746 "ircd_parser.y"
3708 >  case 95:
3709 > /* Line 1787 of yacc.c  */
3710 > #line 833 "conf_parser.y"
3711      {
3712    if (conf_parser_ctx.pass == 2)
3713      ServerInfo.hub = yylval.number;
3714   }
3715      break;
3716  
3717 <  case 89:
3718 <
3719 < /* Line 1806 of yacc.c  */
3710 < #line 761 "ircd_parser.y"
3717 >  case 103:
3718 > /* Line 1787 of yacc.c  */
3719 > #line 848 "conf_parser.y"
3720      {
3721    if (conf_parser_ctx.pass == 2)
3722    {
3723      MyFree(AdminInfo.name);
3724 <    DupString(AdminInfo.name, yylval.string);
3724 >    AdminInfo.name = xstrdup(yylval.string);
3725    }
3726   }
3727      break;
3728  
3729 <  case 90:
3730 <
3731 < /* Line 1806 of yacc.c  */
3723 < #line 770 "ircd_parser.y"
3729 >  case 104:
3730 > /* Line 1787 of yacc.c  */
3731 > #line 857 "conf_parser.y"
3732      {
3733    if (conf_parser_ctx.pass == 2)
3734    {
3735      MyFree(AdminInfo.email);
3736 <    DupString(AdminInfo.email, yylval.string);
3736 >    AdminInfo.email = xstrdup(yylval.string);
3737    }
3738   }
3739      break;
3740  
3741 <  case 91:
3742 <
3743 < /* Line 1806 of yacc.c  */
3736 < #line 779 "ircd_parser.y"
3741 >  case 105:
3742 > /* Line 1787 of yacc.c  */
3743 > #line 866 "conf_parser.y"
3744      {
3745    if (conf_parser_ctx.pass == 2)
3746    {
3747      MyFree(AdminInfo.description);
3748 <    DupString(AdminInfo.description, yylval.string);
3748 >    AdminInfo.description = xstrdup(yylval.string);
3749    }
3750   }
3751      break;
3752  
3753 <  case 99:
3754 <
3755 < /* Line 1806 of yacc.c  */
3749 < #line 797 "ircd_parser.y"
3753 >  case 112:
3754 > /* Line 1787 of yacc.c  */
3755 > #line 884 "conf_parser.y"
3756      {
3757    if (conf_parser_ctx.pass == 2)
3758      ConfigLoggingEntry.use_logging = yylval.number;
3759   }
3760      break;
3761  
3762 <  case 100:
3763 <
3764 < /* Line 1806 of yacc.c  */
3759 < #line 803 "ircd_parser.y"
3762 >  case 113:
3763 > /* Line 1787 of yacc.c  */
3764 > #line 890 "conf_parser.y"
3765      {
3766    if (conf_parser_ctx.pass == 2)
3767 <    ConfigLoggingEntry.timestamp = yylval.number;
3767 >    reset_block_state();
3768   }
3769      break;
3770  
3771 <  case 101:
3772 <
3773 < /* Line 1806 of yacc.c  */
3769 < #line 809 "ircd_parser.y"
3771 >  case 114:
3772 > /* Line 1787 of yacc.c  */
3773 > #line 894 "conf_parser.y"
3774      {
3775 <  lfile[0] = '\0';
3772 <  ltype = 0;
3773 <  lsize = 0;
3774 < }
3775 >  if (conf_parser_ctx.pass != 2)
3776      break;
3777  
3778 <  case 102:
3779 <
3780 < /* Line 1806 of yacc.c  */
3780 < #line 814 "ircd_parser.y"
3781 <    {
3782 <  if (conf_parser_ctx.pass == 2 && ltype > 0)
3783 <    log_add_file(ltype, lsize, lfile);
3778 >  if (block_state.type.value && block_state.file.buf[0])
3779 >    log_set_file(block_state.type.value, block_state.size.value,
3780 >                 block_state.file.buf);
3781   }
3782      break;
3783  
3784 <  case 109:
3785 <
3786 < /* Line 1806 of yacc.c  */
3790 < #line 826 "ircd_parser.y"
3784 >  case 121:
3785 > /* Line 1787 of yacc.c  */
3786 > #line 910 "conf_parser.y"
3787      {
3788 <  strlcpy(lfile, yylval.string, sizeof(lfile));
3793 < }
3788 >  if (conf_parser_ctx.pass != 2)
3789      break;
3790  
3791 <  case 110:
3797 <
3798 < /* Line 1806 of yacc.c  */
3799 < #line 831 "ircd_parser.y"
3800 <    {
3801 <  lsize = (yyvsp[(3) - (4)].number);
3791 >  strlcpy(block_state.file.buf, yylval.string, sizeof(block_state.file.buf));
3792   }
3793      break;
3794  
3795 <  case 111:
3796 <
3797 < /* Line 1806 of yacc.c  */
3808 < #line 834 "ircd_parser.y"
3795 >  case 122:
3796 > /* Line 1787 of yacc.c  */
3797 > #line 918 "conf_parser.y"
3798      {
3799 <  lsize = 0;
3799 >  block_state.size.value = (yyvsp[(3) - (4)].number);
3800   }
3801      break;
3802  
3803 <  case 112:
3804 <
3805 < /* Line 1806 of yacc.c  */
3817 < #line 839 "ircd_parser.y"
3803 >  case 123:
3804 > /* Line 1787 of yacc.c  */
3805 > #line 921 "conf_parser.y"
3806      {
3807 <  if (conf_parser_ctx.pass == 2)
3820 <    ltype = 0;
3807 >  block_state.size.value = 0;
3808   }
3809      break;
3810  
3811 <  case 116:
3812 <
3813 < /* Line 1806 of yacc.c  */
3827 < #line 846 "ircd_parser.y"
3811 >  case 124:
3812 > /* Line 1787 of yacc.c  */
3813 > #line 926 "conf_parser.y"
3814      {
3815    if (conf_parser_ctx.pass == 2)
3816 <    ltype = LOG_TYPE_USER;
3816 >    block_state.type.value = 0;
3817   }
3818      break;
3819  
3820 <  case 117:
3821 <
3822 < /* Line 1806 of yacc.c  */
3837 < #line 850 "ircd_parser.y"
3820 >  case 128:
3821 > /* Line 1787 of yacc.c  */
3822 > #line 933 "conf_parser.y"
3823      {
3824    if (conf_parser_ctx.pass == 2)
3825 <    ltype = LOG_TYPE_OPER;
3825 >    block_state.type.value = LOG_TYPE_USER;
3826   }
3827      break;
3828  
3829 <  case 118:
3830 <
3831 < /* Line 1806 of yacc.c  */
3847 < #line 854 "ircd_parser.y"
3829 >  case 129:
3830 > /* Line 1787 of yacc.c  */
3831 > #line 937 "conf_parser.y"
3832      {
3833    if (conf_parser_ctx.pass == 2)
3834 <    ltype = LOG_TYPE_GLINE;
3834 >    block_state.type.value = LOG_TYPE_OPER;
3835   }
3836      break;
3837  
3838 <  case 119:
3839 <
3840 < /* Line 1806 of yacc.c  */
3857 < #line 858 "ircd_parser.y"
3838 >  case 130:
3839 > /* Line 1787 of yacc.c  */
3840 > #line 941 "conf_parser.y"
3841      {
3842    if (conf_parser_ctx.pass == 2)
3843 <    ltype = LOG_TYPE_DLINE;
3843 >    block_state.type.value = LOG_TYPE_GLINE;
3844   }
3845      break;
3846  
3847 <  case 120:
3848 <
3849 < /* Line 1806 of yacc.c  */
3867 < #line 862 "ircd_parser.y"
3847 >  case 131:
3848 > /* Line 1787 of yacc.c  */
3849 > #line 945 "conf_parser.y"
3850      {
3851    if (conf_parser_ctx.pass == 2)
3852 <    ltype = LOG_TYPE_KLINE;
3852 >    block_state.type.value = LOG_TYPE_DLINE;
3853   }
3854      break;
3855  
3856 <  case 121:
3857 <
3858 < /* Line 1806 of yacc.c  */
3877 < #line 866 "ircd_parser.y"
3856 >  case 132:
3857 > /* Line 1787 of yacc.c  */
3858 > #line 949 "conf_parser.y"
3859      {
3860    if (conf_parser_ctx.pass == 2)
3861 <    ltype = LOG_TYPE_KILL;
3861 >    block_state.type.value = LOG_TYPE_KLINE;
3862   }
3863      break;
3864  
3865 <  case 122:
3866 <
3867 < /* Line 1806 of yacc.c  */
3887 < #line 870 "ircd_parser.y"
3865 >  case 133:
3866 > /* Line 1787 of yacc.c  */
3867 > #line 953 "conf_parser.y"
3868      {
3869    if (conf_parser_ctx.pass == 2)
3870 <    ltype = LOG_TYPE_DEBUG;
3870 >    block_state.type.value = LOG_TYPE_KILL;
3871   }
3872      break;
3873  
3874 <  case 123:
3875 <
3876 < /* Line 1806 of yacc.c  */
3897 < #line 880 "ircd_parser.y"
3874 >  case 134:
3875 > /* Line 1787 of yacc.c  */
3876 > #line 957 "conf_parser.y"
3877      {
3878    if (conf_parser_ctx.pass == 2)
3879 <  {
3901 <    yy_conf = make_conf_item(OPER_TYPE);
3902 <    yy_aconf = map_to_conf(yy_conf);
3903 <    SetConfEncrypted(yy_aconf); /* Yes, the default is encrypted */
3904 <  }
3905 <  else
3906 <  {
3907 <    MyFree(class_name);
3908 <    class_name = NULL;
3909 <  }
3879 >    block_state.type.value = LOG_TYPE_DEBUG;
3880   }
3881      break;
3882  
3883 <  case 124:
3884 <
3885 < /* Line 1806 of yacc.c  */
3916 < #line 893 "ircd_parser.y"
3883 >  case 135:
3884 > /* Line 1787 of yacc.c  */
3885 > #line 967 "conf_parser.y"
3886      {
3887 <  if (conf_parser_ctx.pass == 2)
3888 <  {
3920 <    struct CollectItem *yy_tmp;
3921 <    dlink_node *ptr;
3922 <    dlink_node *next_ptr;
3923 <
3924 <    conf_add_class_to_conf(yy_conf, class_name);
3887 >  if (conf_parser_ctx.pass != 2)
3888 >    break;
3889  
3890 <    /* Now, make sure there is a copy of the "base" given oper
3891 <     * block in each of the collected copies
3892 <     */
3890 >  reset_block_state();
3891 >  block_state.flags.value |= CONF_FLAGS_ENCRYPTED;
3892 > }
3893 >    break;
3894  
3895 <    DLINK_FOREACH_SAFE(ptr, next_ptr, col_conf_list.head)
3895 >  case 136:
3896 > /* Line 1787 of yacc.c  */
3897 > #line 974 "conf_parser.y"
3898      {
3899 <      struct AccessItem *new_aconf;
3933 <      struct ConfItem *new_conf;
3934 <      yy_tmp = ptr->data;
3935 <
3936 <      new_conf = make_conf_item(OPER_TYPE);
3937 <      new_aconf = (struct AccessItem *)map_to_conf(new_conf);
3899 >  dlink_node *ptr = NULL;
3900  
3901 <      new_aconf->flags = yy_aconf->flags;
3902 <
3941 <      if (yy_conf->name != NULL)
3942 <        DupString(new_conf->name, yy_conf->name);
3943 <      if (yy_tmp->user != NULL)
3944 <        DupString(new_aconf->user, yy_tmp->user);
3945 <      else
3946 <        DupString(new_aconf->user, "*");
3947 <      if (yy_tmp->host != NULL)
3948 <        DupString(new_aconf->host, yy_tmp->host);
3949 <      else
3950 <        DupString(new_aconf->host, "*");
3901 >  if (conf_parser_ctx.pass != 2)
3902 >    break;
3903  
3904 <      new_aconf->type = parse_netmask(new_aconf->host, &new_aconf->ipnum,
3905 <                                     &new_aconf->bits);
3904 >  if (!block_state.name.buf[0])
3905 >    break;
3906 > #ifdef HAVE_LIBCRYPTO
3907 >  if (!(block_state.file.buf[0] ||
3908 >        block_state.rpass.buf[0]))
3909 >    break;
3910 > #else
3911 >  if (!block_state.rpass.buf[0])
3912 >    break;
3913 > #endif
3914  
3915 <      conf_add_class_to_conf(new_conf, class_name);
3916 <      if (yy_aconf->passwd != NULL)
3917 <        DupString(new_aconf->passwd, yy_aconf->passwd);
3915 >  DLINK_FOREACH(ptr, block_state.mask.list.head)
3916 >  {
3917 >    struct MaskItem *conf = NULL;
3918 >    struct split_nuh_item nuh;
3919  
3920 <      new_aconf->port = yy_aconf->port;
3921 < #ifdef HAVE_LIBCRYPTO
3922 <      if (yy_aconf->rsa_public_key_file != NULL)
3923 <      {
3924 <        BIO *file;
3920 >    nuh.nuhmask  = ptr->data;
3921 >    nuh.nickptr  = NULL;
3922 >    nuh.userptr  = block_state.user.buf;
3923 >    nuh.hostptr  = block_state.host.buf;
3924 >    nuh.nicksize = 0;
3925 >    nuh.usersize = sizeof(block_state.user.buf);
3926 >    nuh.hostsize = sizeof(block_state.host.buf);
3927 >    split_nuh(&nuh);
3928  
3929 <        DupString(new_aconf->rsa_public_key_file,
3930 <                  yy_aconf->rsa_public_key_file);
3929 >    conf        = conf_make(CONF_OPER);
3930 >    conf->name  = xstrdup(block_state.name.buf);
3931 >    conf->user  = xstrdup(block_state.user.buf);
3932 >    conf->host  = xstrdup(block_state.host.buf);
3933 >
3934 >    if (block_state.rpass.buf[0])
3935 >      conf->passwd = xstrdup(block_state.rpass.buf);
3936 >
3937 >    conf->flags = block_state.flags.value;
3938 >    conf->modes = block_state.modes.value;
3939 >    conf->port  = block_state.port.value;
3940 >    conf->htype = parse_netmask(conf->host, &conf->addr, &conf->bits);
3941  
3942 <        file = BIO_new_file(yy_aconf->rsa_public_key_file, "r");
3969 <        new_aconf->rsa_public_key = (RSA *)PEM_read_bio_RSA_PUBKEY(file,
3970 <                                                           NULL, 0, NULL);
3971 <        BIO_set_close(file, BIO_CLOSE);
3972 <        BIO_free(file);
3973 <      }
3974 < #endif
3942 >    conf_add_class_to_conf(conf, block_state.class.buf);
3943  
3944   #ifdef HAVE_LIBCRYPTO
3945 <      if (yy_tmp->name && (yy_tmp->passwd || yy_aconf->rsa_public_key)
3946 <          && yy_tmp->host)
3947 < #else
3948 <      if (yy_tmp->name && yy_tmp->passwd && yy_tmp->host)
3949 < #endif
3945 >    if (block_state.file.buf[0])
3946 >    {
3947 >      BIO *file = NULL;
3948 >      RSA *pkey = NULL;
3949 >
3950 >      if ((file = BIO_new_file(block_state.file.buf, "r")) == NULL)
3951        {
3952 <        conf_add_class_to_conf(new_conf, class_name);
3953 <        if (yy_tmp->name != NULL)
3985 <          DupString(new_conf->name, yy_tmp->name);
3952 >        conf_error_report("Ignoring rsa_public_key_file -- file doesn't exist");
3953 >        break;
3954        }
3955  
3956 <      dlinkDelete(&yy_tmp->node, &col_conf_list);
3957 <      free_collect_item(yy_tmp);
3990 <    }
3991 <
3992 <    yy_conf = NULL;
3993 <    yy_aconf = NULL;
3956 >      if ((pkey = PEM_read_bio_RSA_PUBKEY(file, NULL, 0, NULL)) == NULL)
3957 >        conf_error_report("Ignoring rsa_public_key_file -- Key invalid; check key syntax.");
3958  
3959 <
3960 <    MyFree(class_name);
3961 <    class_name = NULL;
3959 >      conf->rsa_public_key = pkey;
3960 >      BIO_set_close(file, BIO_CLOSE);
3961 >      BIO_free(file);
3962 >    }
3963 > #endif /* HAVE_LIBCRYPTO */
3964    }
3965   }
3966      break;
3967  
3968 <  case 136:
3969 <
3970 < /* Line 1806 of yacc.c  */
4005 < #line 983 "ircd_parser.y"
3968 >  case 148:
3969 > /* Line 1787 of yacc.c  */
3970 > #line 1049 "conf_parser.y"
3971      {
3972    if (conf_parser_ctx.pass == 2)
3973 <  {
4009 <    if (strlen(yylval.string) > OPERNICKLEN)
4010 <      yylval.string[OPERNICKLEN] = '\0';
4011 <
4012 <    MyFree(yy_conf->name);
4013 <    DupString(yy_conf->name, yylval.string);
4014 <  }
3973 >    strlcpy(block_state.name.buf, yylval.string, sizeof(block_state.name.buf));
3974   }
3975      break;
3976  
3977 <  case 137:
3978 <
3979 < /* Line 1806 of yacc.c  */
4021 < #line 995 "ircd_parser.y"
3977 >  case 149:
3978 > /* Line 1787 of yacc.c  */
3979 > #line 1055 "conf_parser.y"
3980      {
3981    if (conf_parser_ctx.pass == 2)
3982 <  {
4025 <    struct split_nuh_item nuh;
4026 <
4027 <    nuh.nuhmask  = yylval.string;
4028 <    nuh.nickptr  = NULL;
4029 <    nuh.userptr  = userbuf;
4030 <    nuh.hostptr  = hostbuf;
4031 <
4032 <    nuh.nicksize = 0;
4033 <    nuh.usersize = sizeof(userbuf);
4034 <    nuh.hostsize = sizeof(hostbuf);
4035 <
4036 <    split_nuh(&nuh);
4037 <
4038 <    if (yy_aconf->user == NULL)
4039 <    {
4040 <      DupString(yy_aconf->user, userbuf);
4041 <      DupString(yy_aconf->host, hostbuf);
4042 <
4043 <      yy_aconf->type = parse_netmask(yy_aconf->host, &yy_aconf->ipnum,
4044 <                                    &yy_aconf->bits);
4045 <    }
4046 <    else
4047 <    {
4048 <      struct CollectItem *yy_tmp = MyMalloc(sizeof(struct CollectItem));
4049 <
4050 <      DupString(yy_tmp->user, userbuf);
4051 <      DupString(yy_tmp->host, hostbuf);
4052 <
4053 <      dlinkAdd(yy_tmp, &yy_tmp->node, &col_conf_list);
4054 <    }
4055 <  }
3982 >    dlinkAdd(xstrdup(yylval.string), make_dlink_node(), &block_state.mask.list);
3983   }
3984      break;
3985  
3986 <  case 138:
3987 <
3988 < /* Line 1806 of yacc.c  */
4062 < #line 1032 "ircd_parser.y"
3986 >  case 150:
3987 > /* Line 1787 of yacc.c  */
3988 > #line 1061 "conf_parser.y"
3989      {
3990    if (conf_parser_ctx.pass == 2)
3991 <  {
4066 <    if (yy_aconf->passwd != NULL)
4067 <      memset(yy_aconf->passwd, 0, strlen(yy_aconf->passwd));
4068 <
4069 <    MyFree(yy_aconf->passwd);
4070 <    DupString(yy_aconf->passwd, yylval.string);
4071 <  }
3991 >    strlcpy(block_state.rpass.buf, yylval.string, sizeof(block_state.rpass.buf));
3992   }
3993      break;
3994  
3995 <  case 139:
3996 <
3997 < /* Line 1806 of yacc.c  */
4078 < #line 1044 "ircd_parser.y"
3995 >  case 151:
3996 > /* Line 1787 of yacc.c  */
3997 > #line 1067 "conf_parser.y"
3998      {
3999    if (conf_parser_ctx.pass == 2)
4000    {
4001      if (yylval.number)
4002 <      SetConfEncrypted(yy_aconf);
4002 >      block_state.flags.value |= CONF_FLAGS_ENCRYPTED;
4003      else
4004 <      ClearConfEncrypted(yy_aconf);
4004 >      block_state.flags.value &= ~CONF_FLAGS_ENCRYPTED;
4005    }
4006   }
4007      break;
4008  
4009 <  case 140:
4010 <
4011 < /* Line 1806 of yacc.c  */
4093 < #line 1055 "ircd_parser.y"
4009 >  case 152:
4010 > /* Line 1787 of yacc.c  */
4011 > #line 1078 "conf_parser.y"
4012      {
4095 #ifdef HAVE_LIBCRYPTO
4013    if (conf_parser_ctx.pass == 2)
4014 <  {
4015 <    BIO *file;
4016 <
4100 <    if (yy_aconf->rsa_public_key != NULL)
4101 <    {
4102 <      RSA_free(yy_aconf->rsa_public_key);
4103 <      yy_aconf->rsa_public_key = NULL;
4104 <    }
4105 <
4106 <    if (yy_aconf->rsa_public_key_file != NULL)
4107 <    {
4108 <      MyFree(yy_aconf->rsa_public_key_file);
4109 <      yy_aconf->rsa_public_key_file = NULL;
4110 <    }
4111 <
4112 <    DupString(yy_aconf->rsa_public_key_file, yylval.string);
4113 <    file = BIO_new_file(yylval.string, "r");
4114 <
4115 <    if (file == NULL)
4116 <    {
4117 <      yyerror("Ignoring rsa_public_key_file -- file doesn't exist");
4118 <      break;
4119 <    }
4120 <
4121 <    yy_aconf->rsa_public_key = (RSA *)PEM_read_bio_RSA_PUBKEY(file, NULL, 0, NULL);
4014 >    strlcpy(block_state.file.buf, yylval.string, sizeof(block_state.file.buf));
4015 > }
4016 >    break;
4017  
4018 <    if (yy_aconf->rsa_public_key == NULL)
4018 >  case 153:
4019 > /* Line 1787 of yacc.c  */
4020 > #line 1084 "conf_parser.y"
4021      {
4022 <      yyerror("Ignoring rsa_public_key_file -- Key invalid; check key syntax.");
4023 <      break;
4127 <    }
4128 <
4129 <    BIO_set_close(file, BIO_CLOSE);
4130 <    BIO_free(file);
4131 <  }
4132 < #endif /* HAVE_LIBCRYPTO */
4022 >  if (conf_parser_ctx.pass == 2)
4023 >    strlcpy(block_state.class.buf, yylval.string, sizeof(block_state.class.buf));
4024   }
4025      break;
4026  
4027 <  case 141:
4028 <
4029 < /* Line 1806 of yacc.c  */
4139 < #line 1097 "ircd_parser.y"
4027 >  case 154:
4028 > /* Line 1787 of yacc.c  */
4029 > #line 1090 "conf_parser.y"
4030      {
4031    if (conf_parser_ctx.pass == 2)
4032 <  {
4143 <    MyFree(class_name);
4144 <    DupString(class_name, yylval.string);
4145 <  }
4032 >    block_state.modes.value = 0;
4033   }
4034      break;
4035  
4036 <  case 142:
4037 <
4038 < /* Line 1806 of yacc.c  */
4152 < #line 1106 "ircd_parser.y"
4036 >  case 158:
4037 > /* Line 1787 of yacc.c  */
4038 > #line 1097 "conf_parser.y"
4039      {
4040    if (conf_parser_ctx.pass == 2)
4041 <    yy_aconf->modes = 0;
4041 >    block_state.modes.value |= UMODE_BOTS;
4042   }
4043      break;
4044  
4045 <  case 146:
4046 <
4047 < /* Line 1806 of yacc.c  */
4162 < #line 1113 "ircd_parser.y"
4045 >  case 159:
4046 > /* Line 1787 of yacc.c  */
4047 > #line 1101 "conf_parser.y"
4048      {
4049    if (conf_parser_ctx.pass == 2)
4050 <    yy_aconf->modes |= UMODE_BOTS;
4050 >    block_state.modes.value |= UMODE_CCONN;
4051   }
4052      break;
4053  
4054 <  case 147:
4055 <
4056 < /* Line 1806 of yacc.c  */
4172 < #line 1117 "ircd_parser.y"
4054 >  case 160:
4055 > /* Line 1787 of yacc.c  */
4056 > #line 1105 "conf_parser.y"
4057      {
4058    if (conf_parser_ctx.pass == 2)
4059 <    yy_aconf->modes |= UMODE_CCONN;
4059 >    block_state.modes.value |= UMODE_CCONN_FULL;
4060   }
4061      break;
4062  
4063 <  case 148:
4064 <
4065 < /* Line 1806 of yacc.c  */
4182 < #line 1121 "ircd_parser.y"
4063 >  case 161:
4064 > /* Line 1787 of yacc.c  */
4065 > #line 1109 "conf_parser.y"
4066      {
4067    if (conf_parser_ctx.pass == 2)
4068 <    yy_aconf->modes |= UMODE_CCONN_FULL;
4068 >    block_state.modes.value |= UMODE_DEAF;
4069   }
4070      break;
4071  
4072 <  case 149:
4073 <
4074 < /* Line 1806 of yacc.c  */
4192 < #line 1125 "ircd_parser.y"
4072 >  case 162:
4073 > /* Line 1787 of yacc.c  */
4074 > #line 1113 "conf_parser.y"
4075      {
4076    if (conf_parser_ctx.pass == 2)
4077 <    yy_aconf->modes |= UMODE_DEAF;
4077 >    block_state.modes.value |= UMODE_DEBUG;
4078   }
4079      break;
4080  
4081 <  case 150:
4082 <
4083 < /* Line 1806 of yacc.c  */
4202 < #line 1129 "ircd_parser.y"
4081 >  case 163:
4082 > /* Line 1787 of yacc.c  */
4083 > #line 1117 "conf_parser.y"
4084      {
4085    if (conf_parser_ctx.pass == 2)
4086 <    yy_aconf->modes |= UMODE_DEBUG;
4086 >    block_state.modes.value |= UMODE_FULL;
4087   }
4088      break;
4089  
4090 <  case 151:
4091 <
4092 < /* Line 1806 of yacc.c  */
4212 < #line 1133 "ircd_parser.y"
4090 >  case 164:
4091 > /* Line 1787 of yacc.c  */
4092 > #line 1121 "conf_parser.y"
4093      {
4094    if (conf_parser_ctx.pass == 2)
4095 <    yy_aconf->modes |= UMODE_FULL;
4095 >    block_state.modes.value |= UMODE_HIDDEN;
4096   }
4097      break;
4098  
4099 <  case 152:
4100 <
4101 < /* Line 1806 of yacc.c  */
4222 < #line 1137 "ircd_parser.y"
4099 >  case 165:
4100 > /* Line 1787 of yacc.c  */
4101 > #line 1125 "conf_parser.y"
4102      {
4103    if (conf_parser_ctx.pass == 2)
4104 <    yy_aconf->modes |= UMODE_HIDDEN;
4104 >    block_state.modes.value |= UMODE_SKILL;
4105   }
4106      break;
4107  
4108 <  case 153:
4109 <
4110 < /* Line 1806 of yacc.c  */
4232 < #line 1141 "ircd_parser.y"
4108 >  case 166:
4109 > /* Line 1787 of yacc.c  */
4110 > #line 1129 "conf_parser.y"
4111      {
4112    if (conf_parser_ctx.pass == 2)
4113 <    yy_aconf->modes |= UMODE_SKILL;
4113 >    block_state.modes.value |= UMODE_NCHANGE;
4114   }
4115      break;
4116  
4117 <  case 154:
4118 <
4119 < /* Line 1806 of yacc.c  */
4242 < #line 1145 "ircd_parser.y"
4117 >  case 167:
4118 > /* Line 1787 of yacc.c  */
4119 > #line 1133 "conf_parser.y"
4120      {
4121    if (conf_parser_ctx.pass == 2)
4122 <    yy_aconf->modes |= UMODE_NCHANGE;
4122 >    block_state.modes.value |= UMODE_REJ;
4123   }
4124      break;
4125  
4126 <  case 155:
4127 <
4128 < /* Line 1806 of yacc.c  */
4252 < #line 1149 "ircd_parser.y"
4126 >  case 168:
4127 > /* Line 1787 of yacc.c  */
4128 > #line 1137 "conf_parser.y"
4129      {
4130    if (conf_parser_ctx.pass == 2)
4131 <    yy_aconf->modes |= UMODE_REJ;
4131 >    block_state.modes.value |= UMODE_UNAUTH;
4132   }
4133      break;
4134  
4135 <  case 156:
4136 <
4137 < /* Line 1806 of yacc.c  */
4262 < #line 1153 "ircd_parser.y"
4135 >  case 169:
4136 > /* Line 1787 of yacc.c  */
4137 > #line 1141 "conf_parser.y"
4138      {
4139    if (conf_parser_ctx.pass == 2)
4140 <    yy_aconf->modes |= UMODE_UNAUTH;
4140 >    block_state.modes.value |= UMODE_SPY;
4141   }
4142      break;
4143  
4144 <  case 157:
4145 <
4146 < /* Line 1806 of yacc.c  */
4272 < #line 1157 "ircd_parser.y"
4144 >  case 170:
4145 > /* Line 1787 of yacc.c  */
4146 > #line 1145 "conf_parser.y"
4147      {
4148    if (conf_parser_ctx.pass == 2)
4149 <    yy_aconf->modes |= UMODE_SPY;
4149 >    block_state.modes.value |= UMODE_EXTERNAL;
4150   }
4151      break;
4152  
4153 <  case 158:
4154 <
4155 < /* Line 1806 of yacc.c  */
4282 < #line 1161 "ircd_parser.y"
4153 >  case 171:
4154 > /* Line 1787 of yacc.c  */
4155 > #line 1149 "conf_parser.y"
4156      {
4157    if (conf_parser_ctx.pass == 2)
4158 <    yy_aconf->modes |= UMODE_EXTERNAL;
4158 >    block_state.modes.value |= UMODE_OPERWALL;
4159   }
4160      break;
4161  
4162 <  case 159:
4163 <
4164 < /* Line 1806 of yacc.c  */
4292 < #line 1165 "ircd_parser.y"
4162 >  case 172:
4163 > /* Line 1787 of yacc.c  */
4164 > #line 1153 "conf_parser.y"
4165      {
4166    if (conf_parser_ctx.pass == 2)
4167 <    yy_aconf->modes |= UMODE_OPERWALL;
4167 >    block_state.modes.value |= UMODE_SERVNOTICE;
4168   }
4169      break;
4170  
4171 <  case 160:
4172 <
4173 < /* Line 1806 of yacc.c  */
4302 < #line 1169 "ircd_parser.y"
4171 >  case 173:
4172 > /* Line 1787 of yacc.c  */
4173 > #line 1157 "conf_parser.y"
4174      {
4175    if (conf_parser_ctx.pass == 2)
4176 <    yy_aconf->modes |= UMODE_SERVNOTICE;
4176 >    block_state.modes.value |= UMODE_INVISIBLE;
4177   }
4178      break;
4179  
4180 <  case 161:
4181 <
4182 < /* Line 1806 of yacc.c  */
4312 < #line 1173 "ircd_parser.y"
4180 >  case 174:
4181 > /* Line 1787 of yacc.c  */
4182 > #line 1161 "conf_parser.y"
4183      {
4184    if (conf_parser_ctx.pass == 2)
4185 <    yy_aconf->modes |= UMODE_INVISIBLE;
4185 >    block_state.modes.value |= UMODE_WALLOP;
4186   }
4187      break;
4188  
4189 <  case 162:
4190 <
4191 < /* Line 1806 of yacc.c  */
4322 < #line 1177 "ircd_parser.y"
4189 >  case 175:
4190 > /* Line 1787 of yacc.c  */
4191 > #line 1165 "conf_parser.y"
4192      {
4193    if (conf_parser_ctx.pass == 2)
4194 <    yy_aconf->modes |= UMODE_WALLOP;
4194 >    block_state.modes.value |= UMODE_SOFTCALLERID;
4195   }
4196      break;
4197  
4198 <  case 163:
4199 <
4200 < /* Line 1806 of yacc.c  */
4332 < #line 1181 "ircd_parser.y"
4198 >  case 176:
4199 > /* Line 1787 of yacc.c  */
4200 > #line 1169 "conf_parser.y"
4201      {
4202    if (conf_parser_ctx.pass == 2)
4203 <    yy_aconf->modes |= UMODE_SOFTCALLERID;
4203 >    block_state.modes.value |= UMODE_CALLERID;
4204   }
4205      break;
4206  
4207 <  case 164:
4208 <
4209 < /* Line 1806 of yacc.c  */
4342 < #line 1185 "ircd_parser.y"
4207 >  case 177:
4208 > /* Line 1787 of yacc.c  */
4209 > #line 1173 "conf_parser.y"
4210      {
4211    if (conf_parser_ctx.pass == 2)
4212 <    yy_aconf->modes |= UMODE_CALLERID;
4212 >    block_state.modes.value |= UMODE_LOCOPS;
4213   }
4214      break;
4215  
4216 <  case 165:
4217 <
4218 < /* Line 1806 of yacc.c  */
4352 < #line 1189 "ircd_parser.y"
4216 >  case 178:
4217 > /* Line 1787 of yacc.c  */
4218 > #line 1177 "conf_parser.y"
4219      {
4220    if (conf_parser_ctx.pass == 2)
4221 <    yy_aconf->modes |= UMODE_LOCOPS;
4221 >    block_state.modes.value |= UMODE_REGONLY;
4222   }
4223      break;
4224  
4225 <  case 166:
4226 <
4227 < /* Line 1806 of yacc.c  */
4362 < #line 1195 "ircd_parser.y"
4225 >  case 179:
4226 > /* Line 1787 of yacc.c  */
4227 > #line 1183 "conf_parser.y"
4228      {
4229    if (conf_parser_ctx.pass == 2)
4230 <    yy_aconf->port = 0;
4230 >    block_state.port.value = 0;
4231   }
4232      break;
4233  
4234 <  case 170:
4235 <
4236 < /* Line 1806 of yacc.c  */
4372 < #line 1202 "ircd_parser.y"
4234 >  case 183:
4235 > /* Line 1787 of yacc.c  */
4236 > #line 1190 "conf_parser.y"
4237      {
4238    if (conf_parser_ctx.pass == 2)
4239 <    yy_aconf->port |= OPER_FLAG_GLOBAL_KILL;
4239 >    block_state.port.value |= OPER_FLAG_GLOBAL_KILL;
4240   }
4241      break;
4242  
4243 <  case 171:
4244 <
4245 < /* Line 1806 of yacc.c  */
4382 < #line 1206 "ircd_parser.y"
4243 >  case 184:
4244 > /* Line 1787 of yacc.c  */
4245 > #line 1194 "conf_parser.y"
4246      {
4247    if (conf_parser_ctx.pass == 2)
4248 <    yy_aconf->port |= OPER_FLAG_REMOTE;
4248 >    block_state.port.value |= OPER_FLAG_REMOTE;
4249   }
4250      break;
4251  
4252 <  case 172:
4253 <
4254 < /* Line 1806 of yacc.c  */
4392 < #line 1210 "ircd_parser.y"
4252 >  case 185:
4253 > /* Line 1787 of yacc.c  */
4254 > #line 1198 "conf_parser.y"
4255      {
4256    if (conf_parser_ctx.pass == 2)
4257 <    yy_aconf->port |= OPER_FLAG_K;
4257 >    block_state.port.value |= OPER_FLAG_K;
4258   }
4259      break;
4260  
4261 <  case 173:
4262 <
4263 < /* Line 1806 of yacc.c  */
4402 < #line 1214 "ircd_parser.y"
4261 >  case 186:
4262 > /* Line 1787 of yacc.c  */
4263 > #line 1202 "conf_parser.y"
4264      {
4265    if (conf_parser_ctx.pass == 2)
4266 <    yy_aconf->port |= OPER_FLAG_UNKLINE;
4266 >    block_state.port.value |= OPER_FLAG_UNKLINE;
4267   }
4268      break;
4269  
4270 <  case 174:
4271 <
4272 < /* Line 1806 of yacc.c  */
4412 < #line 1218 "ircd_parser.y"
4270 >  case 187:
4271 > /* Line 1787 of yacc.c  */
4272 > #line 1206 "conf_parser.y"
4273      {
4274    if (conf_parser_ctx.pass == 2)
4275 <    yy_aconf->port |= OPER_FLAG_DLINE;
4275 >    block_state.port.value |= OPER_FLAG_DLINE;
4276   }
4277      break;
4278  
4279 <  case 175:
4280 <
4281 < /* Line 1806 of yacc.c  */
4422 < #line 1222 "ircd_parser.y"
4279 >  case 188:
4280 > /* Line 1787 of yacc.c  */
4281 > #line 1210 "conf_parser.y"
4282      {
4283    if (conf_parser_ctx.pass == 2)
4284 <    yy_aconf->port |= OPER_FLAG_UNDLINE;
4284 >    block_state.port.value |= OPER_FLAG_UNDLINE;
4285   }
4286      break;
4287  
4288 <  case 176:
4289 <
4290 < /* Line 1806 of yacc.c  */
4432 < #line 1226 "ircd_parser.y"
4288 >  case 189:
4289 > /* Line 1787 of yacc.c  */
4290 > #line 1214 "conf_parser.y"
4291      {
4292    if (conf_parser_ctx.pass == 2)
4293 <    yy_aconf->port |= OPER_FLAG_X;
4293 >    block_state.port.value |= OPER_FLAG_X;
4294   }
4295      break;
4296  
4297 <  case 177:
4298 <
4299 < /* Line 1806 of yacc.c  */
4442 < #line 1230 "ircd_parser.y"
4297 >  case 190:
4298 > /* Line 1787 of yacc.c  */
4299 > #line 1218 "conf_parser.y"
4300      {
4301    if (conf_parser_ctx.pass == 2)
4302 <    yy_aconf->port |= OPER_FLAG_GLINE;
4302 >    block_state.port.value |= OPER_FLAG_GLINE;
4303   }
4304      break;
4305  
4306 <  case 178:
4307 <
4308 < /* Line 1806 of yacc.c  */
4452 < #line 1234 "ircd_parser.y"
4306 >  case 191:
4307 > /* Line 1787 of yacc.c  */
4308 > #line 1222 "conf_parser.y"
4309      {
4310    if (conf_parser_ctx.pass == 2)
4311 <    yy_aconf->port |= OPER_FLAG_DIE;
4311 >    block_state.port.value |= OPER_FLAG_DIE;
4312   }
4313      break;
4314  
4315 <  case 179:
4316 <
4317 < /* Line 1806 of yacc.c  */
4462 < #line 1238 "ircd_parser.y"
4315 >  case 192:
4316 > /* Line 1787 of yacc.c  */
4317 > #line 1226 "conf_parser.y"
4318      {
4319    if (conf_parser_ctx.pass == 2)
4320 <    yy_aconf->port |= OPER_FLAG_RESTART;
4320 >    block_state.port.value |= OPER_FLAG_RESTART;
4321   }
4322      break;
4323  
4324 <  case 180:
4325 <
4326 < /* Line 1806 of yacc.c  */
4472 < #line 1242 "ircd_parser.y"
4324 >  case 193:
4325 > /* Line 1787 of yacc.c  */
4326 > #line 1230 "conf_parser.y"
4327      {
4328    if (conf_parser_ctx.pass == 2)
4329 <    yy_aconf->port |= OPER_FLAG_REHASH;
4329 >    block_state.port.value |= OPER_FLAG_REHASH;
4330   }
4331      break;
4332  
4333 <  case 181:
4334 <
4335 < /* Line 1806 of yacc.c  */
4482 < #line 1246 "ircd_parser.y"
4333 >  case 194:
4334 > /* Line 1787 of yacc.c  */
4335 > #line 1234 "conf_parser.y"
4336      {
4337    if (conf_parser_ctx.pass == 2)
4338 <    yy_aconf->port |= OPER_FLAG_ADMIN;
4338 >    block_state.port.value |= OPER_FLAG_ADMIN;
4339   }
4340      break;
4341  
4342 <  case 182:
4343 <
4344 < /* Line 1806 of yacc.c  */
4492 < #line 1250 "ircd_parser.y"
4342 >  case 195:
4343 > /* Line 1787 of yacc.c  */
4344 > #line 1238 "conf_parser.y"
4345      {
4346    if (conf_parser_ctx.pass == 2)
4347 <    yy_aconf->port |= OPER_FLAG_N;
4347 >    block_state.port.value |= OPER_FLAG_OPERWALL;
4348   }
4349      break;
4350  
4351 <  case 183:
4352 <
4353 < /* Line 1806 of yacc.c  */
4502 < #line 1254 "ircd_parser.y"
4351 >  case 196:
4352 > /* Line 1787 of yacc.c  */
4353 > #line 1242 "conf_parser.y"
4354      {
4355    if (conf_parser_ctx.pass == 2)
4356 <    yy_aconf->port |= OPER_FLAG_OPERWALL;
4356 >    block_state.port.value |= OPER_FLAG_GLOBOPS;
4357   }
4358      break;
4359  
4360 <  case 184:
4361 <
4362 < /* Line 1806 of yacc.c  */
4512 < #line 1258 "ircd_parser.y"
4360 >  case 197:
4361 > /* Line 1787 of yacc.c  */
4362 > #line 1246 "conf_parser.y"
4363      {
4364    if (conf_parser_ctx.pass == 2)
4365 <    yy_aconf->port |= OPER_FLAG_GLOBOPS;
4365 >    block_state.port.value |= OPER_FLAG_OPER_SPY;
4366   }
4367      break;
4368  
4369 <  case 185:
4370 <
4371 < /* Line 1806 of yacc.c  */
4522 < #line 1262 "ircd_parser.y"
4369 >  case 198:
4370 > /* Line 1787 of yacc.c  */
4371 > #line 1250 "conf_parser.y"
4372      {
4373    if (conf_parser_ctx.pass == 2)
4374 <    yy_aconf->port |= OPER_FLAG_OPER_SPY;
4374 >    block_state.port.value |= OPER_FLAG_REMOTEBAN;
4375   }
4376      break;
4377  
4378 <  case 186:
4379 <
4380 < /* Line 1806 of yacc.c  */
4532 < #line 1266 "ircd_parser.y"
4378 >  case 199:
4379 > /* Line 1787 of yacc.c  */
4380 > #line 1254 "conf_parser.y"
4381      {
4382    if (conf_parser_ctx.pass == 2)
4383 <    yy_aconf->port |= OPER_FLAG_REMOTEBAN;
4383 >    block_state.port.value |= OPER_FLAG_SET;
4384   }
4385      break;
4386  
4387 <  case 187:
4388 <
4389 < /* Line 1806 of yacc.c  */
4542 < #line 1270 "ircd_parser.y"
4387 >  case 200:
4388 > /* Line 1787 of yacc.c  */
4389 > #line 1258 "conf_parser.y"
4390      {
4391    if (conf_parser_ctx.pass == 2)
4392 <    yy_aconf->port |= OPER_FLAG_MODULE;
4392 >    block_state.port.value |= OPER_FLAG_MODULE;
4393   }
4394      break;
4395  
4396 <  case 188:
4397 <
4398 < /* Line 1806 of yacc.c  */
4552 < #line 1280 "ircd_parser.y"
4396 >  case 201:
4397 > /* Line 1787 of yacc.c  */
4398 > #line 1268 "conf_parser.y"
4399      {
4400 <  if (conf_parser_ctx.pass == 1)
4555 <  {
4556 <    yy_conf = make_conf_item(CLASS_TYPE);
4557 <    yy_class = map_to_conf(yy_conf);
4558 <  }
4559 < }
4400 >  if (conf_parser_ctx.pass != 1)
4401      break;
4402  
4403 <  case 189:
4403 >  reset_block_state();
4404  
4405 < /* Line 1806 of yacc.c  */
4406 < #line 1287 "ircd_parser.y"
4407 <    {
4408 <  if (conf_parser_ctx.pass == 1)
4409 <  {
4410 <    struct ConfItem *cconf = NULL;
4411 <    struct ClassItem *class = NULL;
4405 >  block_state.ping_freq.value = DEFAULT_PINGFREQUENCY;
4406 >  block_state.con_freq.value  = DEFAULT_CONNECTFREQUENCY;
4407 >  block_state.max_total.value = MAXIMUM_LINKS_DEFAULT;
4408 >  block_state.max_sendq.value = DEFAULT_SENDQ;
4409 >  block_state.max_recvq.value = DEFAULT_RECVQ;
4410 > }
4411 >    break;
4412  
4413 <    if (yy_class_name == NULL)
4414 <      delete_conf_item(yy_conf);
4415 <    else
4413 >  case 202:
4414 > /* Line 1787 of yacc.c  */
4415 > #line 1280 "conf_parser.y"
4416      {
4417 <      cconf = find_exact_name_conf(CLASS_TYPE, NULL, yy_class_name, NULL, NULL);
4417 >  struct ClassItem *class = NULL;
4418  
4419 <      if (cconf != NULL)                /* The class existed already */
4420 <      {
4580 <        int user_count = 0;
4419 >  if (conf_parser_ctx.pass != 1)
4420 >    break;
4421  
4422 <        rebuild_cidr_class(cconf, yy_class);
4422 >  if (!block_state.class.buf[0])
4423 >    break;
4424  
4425 <        class = map_to_conf(cconf);
4425 >  if (!(class = class_find(block_state.class.buf, 0)))
4426 >    class = class_make();
4427  
4428 <        user_count = class->curr_user_count;
4429 <        memcpy(class, yy_class, sizeof(*class));
4430 <        class->curr_user_count = user_count;
4431 <        class->active = 1;
4428 >  class->active = 1;
4429 >  MyFree(class->name);
4430 >  class->name = xstrdup(block_state.class.buf);
4431 >  class->ping_freq = block_state.ping_freq.value;
4432 >  class->max_perip = block_state.max_perip.value;
4433 >  class->con_freq = block_state.con_freq.value;
4434 >  class->max_total = block_state.max_total.value;
4435 >  class->max_global = block_state.max_global.value;
4436 >  class->max_local = block_state.max_local.value;
4437 >  class->max_ident = block_state.max_ident.value;
4438 >  class->max_sendq = block_state.max_sendq.value;
4439 >  class->max_recvq = block_state.max_recvq.value;
4440  
4441 <        delete_conf_item(yy_conf);
4441 >  if (block_state.min_idle.value > block_state.max_idle.value)
4442 >  {
4443 >    block_state.min_idle.value = 0;
4444 >    block_state.max_idle.value = 0;
4445 >    block_state.flags.value &= ~CLASS_FLAGS_FAKE_IDLE;
4446 >  }
4447  
4448 <        MyFree(cconf->name);            /* Allows case change of class name */
4449 <        cconf->name = yy_class_name;
4450 <      }
4596 <      else      /* Brand new class */
4597 <      {
4598 <        MyFree(yy_conf->name);          /* just in case it was allocated */
4599 <        yy_conf->name = yy_class_name;
4600 <        yy_class->active = 1;
4601 <      }
4602 <    }
4448 >  class->flags = block_state.flags.value;
4449 >  class->min_idle = block_state.min_idle.value;
4450 >  class->max_idle = block_state.max_idle.value;
4451  
4452 <    yy_class_name = NULL;
4453 <  }
4452 >  if (class->number_per_cidr && block_state.number_per_cidr.value)
4453 >    if ((class->cidr_bitlen_ipv4 && block_state.cidr_bitlen_ipv4.value) ||
4454 >        (class->cidr_bitlen_ipv6 && block_state.cidr_bitlen_ipv6.value))
4455 >      if ((class->cidr_bitlen_ipv4 != block_state.cidr_bitlen_ipv4.value) ||
4456 >          (class->cidr_bitlen_ipv6 != block_state.cidr_bitlen_ipv6.value))
4457 >        rebuild_cidr_list(class);
4458 >
4459 >  class->cidr_bitlen_ipv4 = block_state.cidr_bitlen_ipv4.value;
4460 >  class->cidr_bitlen_ipv6 = block_state.cidr_bitlen_ipv6.value;
4461 >  class->number_per_cidr = block_state.number_per_cidr.value;
4462   }
4463      break;
4464  
4465 <  case 206:
4466 <
4467 < /* Line 1806 of yacc.c  */
4612 < #line 1345 "ircd_parser.y"
4465 >  case 222:
4466 > /* Line 1787 of yacc.c  */
4467 > #line 1346 "conf_parser.y"
4468      {
4469    if (conf_parser_ctx.pass == 1)
4470 <  {
4616 <    MyFree(yy_class_name);
4617 <    DupString(yy_class_name, yylval.string);
4618 <  }
4470 >    strlcpy(block_state.class.buf, yylval.string, sizeof(block_state.class.buf));
4471   }
4472      break;
4473  
4474 <  case 207:
4475 <
4476 < /* Line 1806 of yacc.c  */
4625 < #line 1354 "ircd_parser.y"
4474 >  case 223:
4475 > /* Line 1787 of yacc.c  */
4476 > #line 1352 "conf_parser.y"
4477      {
4478    if (conf_parser_ctx.pass == 1)
4479 <    PingFreq(yy_class) = (yyvsp[(3) - (4)].number);
4479 >    block_state.ping_freq.value = (yyvsp[(3) - (4)].number);
4480   }
4481      break;
4482  
4483 <  case 208:
4484 <
4485 < /* Line 1806 of yacc.c  */
4635 < #line 1360 "ircd_parser.y"
4483 >  case 224:
4484 > /* Line 1787 of yacc.c  */
4485 > #line 1358 "conf_parser.y"
4486      {
4487    if (conf_parser_ctx.pass == 1)
4488 <    PingWarning(yy_class) = (yyvsp[(3) - (4)].number);
4488 >    block_state.max_perip.value = (yyvsp[(3) - (4)].number);
4489   }
4490      break;
4491  
4492 <  case 209:
4493 <
4494 < /* Line 1806 of yacc.c  */
4645 < #line 1366 "ircd_parser.y"
4492 >  case 225:
4493 > /* Line 1787 of yacc.c  */
4494 > #line 1364 "conf_parser.y"
4495      {
4496    if (conf_parser_ctx.pass == 1)
4497 <    MaxPerIp(yy_class) = (yyvsp[(3) - (4)].number);
4497 >    block_state.con_freq.value = (yyvsp[(3) - (4)].number);
4498   }
4499      break;
4500  
4501 <  case 210:
4502 <
4503 < /* Line 1806 of yacc.c  */
4655 < #line 1372 "ircd_parser.y"
4501 >  case 226:
4502 > /* Line 1787 of yacc.c  */
4503 > #line 1370 "conf_parser.y"
4504      {
4505    if (conf_parser_ctx.pass == 1)
4506 <    ConFreq(yy_class) = (yyvsp[(3) - (4)].number);
4506 >    block_state.max_total.value = (yyvsp[(3) - (4)].number);
4507   }
4508      break;
4509  
4510 <  case 211:
4511 <
4512 < /* Line 1806 of yacc.c  */
4665 < #line 1378 "ircd_parser.y"
4510 >  case 227:
4511 > /* Line 1787 of yacc.c  */
4512 > #line 1376 "conf_parser.y"
4513      {
4514    if (conf_parser_ctx.pass == 1)
4515 <    MaxTotal(yy_class) = (yyvsp[(3) - (4)].number);
4515 >    block_state.max_global.value = (yyvsp[(3) - (4)].number);
4516   }
4517      break;
4518  
4519 <  case 212:
4520 <
4521 < /* Line 1806 of yacc.c  */
4675 < #line 1384 "ircd_parser.y"
4519 >  case 228:
4520 > /* Line 1787 of yacc.c  */
4521 > #line 1382 "conf_parser.y"
4522      {
4523    if (conf_parser_ctx.pass == 1)
4524 <    MaxGlobal(yy_class) = (yyvsp[(3) - (4)].number);
4524 >    block_state.max_local.value = (yyvsp[(3) - (4)].number);
4525   }
4526      break;
4527  
4528 <  case 213:
4529 <
4530 < /* Line 1806 of yacc.c  */
4685 < #line 1390 "ircd_parser.y"
4528 >  case 229:
4529 > /* Line 1787 of yacc.c  */
4530 > #line 1388 "conf_parser.y"
4531      {
4532    if (conf_parser_ctx.pass == 1)
4533 <    MaxLocal(yy_class) = (yyvsp[(3) - (4)].number);
4533 >    block_state.max_ident.value = (yyvsp[(3) - (4)].number);
4534   }
4535      break;
4536  
4537 <  case 214:
4538 <
4539 < /* Line 1806 of yacc.c  */
4695 < #line 1396 "ircd_parser.y"
4537 >  case 230:
4538 > /* Line 1787 of yacc.c  */
4539 > #line 1394 "conf_parser.y"
4540      {
4541    if (conf_parser_ctx.pass == 1)
4542 <    MaxIdent(yy_class) = (yyvsp[(3) - (4)].number);
4542 >    block_state.max_sendq.value = (yyvsp[(3) - (4)].number);
4543   }
4544      break;
4545  
4546 <  case 215:
4547 <
4548 < /* Line 1806 of yacc.c  */
4705 < #line 1402 "ircd_parser.y"
4546 >  case 231:
4547 > /* Line 1787 of yacc.c  */
4548 > #line 1400 "conf_parser.y"
4549      {
4550    if (conf_parser_ctx.pass == 1)
4551 <    MaxSendq(yy_class) = (yyvsp[(3) - (4)].number);
4551 >    if ((yyvsp[(3) - (4)].number) >= CLIENT_FLOOD_MIN && (yyvsp[(3) - (4)].number) <= CLIENT_FLOOD_MAX)
4552 >      block_state.max_recvq.value = (yyvsp[(3) - (4)].number);
4553   }
4554      break;
4555  
4556 <  case 216:
4557 <
4558 < /* Line 1806 of yacc.c  */
4715 < #line 1408 "ircd_parser.y"
4556 >  case 232:
4557 > /* Line 1787 of yacc.c  */
4558 > #line 1407 "conf_parser.y"
4559      {
4560    if (conf_parser_ctx.pass == 1)
4561 <    CidrBitlenIPV4(yy_class) = (yyvsp[(3) - (4)].number);
4561 >    block_state.cidr_bitlen_ipv4.value = (yyvsp[(3) - (4)].number) > 32 ? 32 : (yyvsp[(3) - (4)].number);
4562   }
4563      break;
4564  
4565 <  case 217:
4566 <
4567 < /* Line 1806 of yacc.c  */
4725 < #line 1414 "ircd_parser.y"
4565 >  case 233:
4566 > /* Line 1787 of yacc.c  */
4567 > #line 1413 "conf_parser.y"
4568      {
4569    if (conf_parser_ctx.pass == 1)
4570 <    CidrBitlenIPV6(yy_class) = (yyvsp[(3) - (4)].number);
4570 >    block_state.cidr_bitlen_ipv6.value = (yyvsp[(3) - (4)].number) > 128 ? 128 : (yyvsp[(3) - (4)].number);
4571   }
4572      break;
4573  
4574 <  case 218:
4575 <
4576 < /* Line 1806 of yacc.c  */
4735 < #line 1420 "ircd_parser.y"
4574 >  case 234:
4575 > /* Line 1787 of yacc.c  */
4576 > #line 1419 "conf_parser.y"
4577      {
4578    if (conf_parser_ctx.pass == 1)
4579 <    NumberPerCidr(yy_class) = (yyvsp[(3) - (4)].number);
4579 >    block_state.number_per_cidr.value = (yyvsp[(3) - (4)].number);
4580   }
4581      break;
4582  
4583 <  case 219:
4584 <
4585 < /* Line 1806 of yacc.c  */
4745 < #line 1429 "ircd_parser.y"
4583 >  case 235:
4584 > /* Line 1787 of yacc.c  */
4585 > #line 1425 "conf_parser.y"
4586      {
4587 <  if (conf_parser_ctx.pass == 2)
4748 <  {
4749 <    listener_address = NULL;
4750 <    listener_flags = 0;
4751 <  }
4752 < }
4587 >  if (conf_parser_ctx.pass != 1)
4588      break;
4589  
4590 <  case 220:
4590 >  block_state.min_idle.value = (yyvsp[(3) - (4)].number);
4591 >  block_state.flags.value |= CLASS_FLAGS_FAKE_IDLE;
4592 > }
4593 >    break;
4594  
4595 < /* Line 1806 of yacc.c  */
4596 < #line 1436 "ircd_parser.y"
4595 >  case 236:
4596 > /* Line 1787 of yacc.c  */
4597 > #line 1434 "conf_parser.y"
4598      {
4599 <  if (conf_parser_ctx.pass == 2)
4600 <  {
4601 <    MyFree(listener_address);
4602 <    listener_address = NULL;
4603 <  }
4599 >  if (conf_parser_ctx.pass != 1)
4600 >    break;
4601 >
4602 >  block_state.max_idle.value = (yyvsp[(3) - (4)].number);
4603 >  block_state.flags.value |= CLASS_FLAGS_FAKE_IDLE;
4604   }
4605      break;
4606  
4607 <  case 221:
4607 >  case 237:
4608 > /* Line 1787 of yacc.c  */
4609 > #line 1443 "conf_parser.y"
4610 >    {
4611 >  if (conf_parser_ctx.pass == 1)
4612 >    block_state.flags.value &= CLASS_FLAGS_FAKE_IDLE;
4613 > }
4614 >    break;
4615  
4616 < /* Line 1806 of yacc.c  */
4617 < #line 1445 "ircd_parser.y"
4616 >  case 241:
4617 > /* Line 1787 of yacc.c  */
4618 > #line 1450 "conf_parser.y"
4619      {
4620 <  listener_flags = 0;
4620 >  if (conf_parser_ctx.pass == 1)
4621 >    block_state.flags.value |= CLASS_FLAGS_RANDOM_IDLE;
4622   }
4623      break;
4624  
4625 <  case 225:
4625 >  case 242:
4626 > /* Line 1787 of yacc.c  */
4627 > #line 1454 "conf_parser.y"
4628 >    {
4629 >  if (conf_parser_ctx.pass == 1)
4630 >    block_state.flags.value |= CLASS_FLAGS_HIDE_IDLE_FROM_OPERS;
4631 > }
4632 >    break;
4633  
4634 < /* Line 1806 of yacc.c  */
4635 < #line 1451 "ircd_parser.y"
4634 >  case 243:
4635 > /* Line 1787 of yacc.c  */
4636 > #line 1464 "conf_parser.y"
4637      {
4638    if (conf_parser_ctx.pass == 2)
4639 <    listener_flags |= LISTENER_SSL;
4639 >    reset_block_state();
4640   }
4641      break;
4642  
4643 <  case 226:
4643 >  case 245:
4644 > /* Line 1787 of yacc.c  */
4645 > #line 1470 "conf_parser.y"
4646 >    {
4647 >  block_state.flags.value = 0;
4648 > }
4649 >    break;
4650  
4651 < /* Line 1806 of yacc.c  */
4652 < #line 1455 "ircd_parser.y"
4651 >  case 249:
4652 > /* Line 1787 of yacc.c  */
4653 > #line 1476 "conf_parser.y"
4654      {
4655    if (conf_parser_ctx.pass == 2)
4656 <    listener_flags |= LISTENER_HIDDEN;
4656 >    block_state.flags.value |= LISTENER_SSL;
4657   }
4658      break;
4659  
4660 <  case 227:
4661 <
4662 < /* Line 1806 of yacc.c  */
4800 < #line 1459 "ircd_parser.y"
4660 >  case 250:
4661 > /* Line 1787 of yacc.c  */
4662 > #line 1480 "conf_parser.y"
4663      {
4664    if (conf_parser_ctx.pass == 2)
4665 <    listener_flags |= LISTENER_SERVER;
4665 >    block_state.flags.value |= LISTENER_HIDDEN;
4666   }
4667      break;
4668  
4669 <  case 235:
4670 <
4671 < /* Line 1806 of yacc.c  */
4672 < #line 1469 "ircd_parser.y"
4673 <    { listener_flags = 0; }
4669 >  case 251:
4670 > /* Line 1787 of yacc.c  */
4671 > #line 1484 "conf_parser.y"
4672 >    {
4673 >  if (conf_parser_ctx.pass == 2)
4674 >   block_state.flags.value |= LISTENER_SERVER;
4675 > }
4676      break;
4677  
4678 <  case 239:
4678 >  case 259:
4679 > /* Line 1787 of yacc.c  */
4680 > #line 1492 "conf_parser.y"
4681 >    { block_state.flags.value = 0; }
4682 >    break;
4683  
4684 < /* Line 1806 of yacc.c  */
4685 < #line 1474 "ircd_parser.y"
4684 >  case 263:
4685 > /* Line 1787 of yacc.c  */
4686 > #line 1497 "conf_parser.y"
4687      {
4688    if (conf_parser_ctx.pass == 2)
4689    {
4690 <    if ((listener_flags & LISTENER_SSL))
4690 >    if (block_state.flags.value & LISTENER_SSL)
4691   #ifdef HAVE_LIBCRYPTO
4692        if (!ServerInfo.server_ctx)
4693   #endif
4694        {
4695 <        yyerror("SSL not available - port closed");
4695 >        conf_error_report("SSL not available - port closed");
4696          break;
4697        }
4698 <    add_listener((yyvsp[(1) - (1)].number), listener_address, listener_flags);
4698 >    add_listener((yyvsp[(1) - (1)].number), block_state.addr.buf, block_state.flags.value);
4699    }
4700   }
4701      break;
4702  
4703 <  case 240:
4704 <
4705 < /* Line 1806 of yacc.c  */
4837 < #line 1488 "ircd_parser.y"
4703 >  case 264:
4704 > /* Line 1787 of yacc.c  */
4705 > #line 1511 "conf_parser.y"
4706      {
4707    if (conf_parser_ctx.pass == 2)
4708    {
4709      int i;
4710  
4711 <    if ((listener_flags & LISTENER_SSL))
4711 >    if (block_state.flags.value & LISTENER_SSL)
4712   #ifdef HAVE_LIBCRYPTO
4713        if (!ServerInfo.server_ctx)
4714   #endif
4715        {
4716 <        yyerror("SSL not available - port closed");
4716 >        conf_error_report("SSL not available - port closed");
4717          break;
4718        }
4719  
4720      for (i = (yyvsp[(1) - (3)].number); i <= (yyvsp[(3) - (3)].number); ++i)
4721 <      add_listener(i, listener_address, listener_flags);
4721 >      add_listener(i, block_state.addr.buf, block_state.flags.value);
4722    }
4723   }
4724      break;
4725  
4726 <  case 241:
4727 <
4728 < /* Line 1806 of yacc.c  */
4861 < #line 1508 "ircd_parser.y"
4726 >  case 265:
4727 > /* Line 1787 of yacc.c  */
4728 > #line 1531 "conf_parser.y"
4729      {
4730    if (conf_parser_ctx.pass == 2)
4731 <  {
4865 <    MyFree(listener_address);
4866 <    DupString(listener_address, yylval.string);
4867 <  }
4731 >    strlcpy(block_state.addr.buf, yylval.string, sizeof(block_state.addr.buf));
4732   }
4733      break;
4734  
4735 <  case 242:
4736 <
4737 < /* Line 1806 of yacc.c  */
4874 < #line 1517 "ircd_parser.y"
4735 >  case 266:
4736 > /* Line 1787 of yacc.c  */
4737 > #line 1537 "conf_parser.y"
4738      {
4739    if (conf_parser_ctx.pass == 2)
4740 <  {
4878 <    MyFree(listener_address);
4879 <    DupString(listener_address, yylval.string);
4880 <  }
4740 >    strlcpy(block_state.addr.buf, yylval.string, sizeof(block_state.addr.buf));
4741   }
4742      break;
4743  
4744 <  case 243:
4745 <
4746 < /* Line 1806 of yacc.c  */
4887 < #line 1529 "ircd_parser.y"
4744 >  case 267:
4745 > /* Line 1787 of yacc.c  */
4746 > #line 1546 "conf_parser.y"
4747      {
4748    if (conf_parser_ctx.pass == 2)
4749 <  {
4891 <    yy_conf = make_conf_item(CLIENT_TYPE);
4892 <    yy_aconf = map_to_conf(yy_conf);
4893 <  }
4894 <  else
4895 <  {
4896 <    MyFree(class_name);
4897 <    class_name = NULL;
4898 <  }
4749 >    reset_block_state();
4750   }
4751      break;
4752  
4753 <  case 244:
4754 <
4755 < /* Line 1806 of yacc.c  */
4905 < #line 1541 "ircd_parser.y"
4906 <    {
4907 <  if (conf_parser_ctx.pass == 2)
4908 <  {
4909 <    struct CollectItem *yy_tmp = NULL;
4910 <    dlink_node *ptr = NULL, *next_ptr = NULL;
4911 <
4912 <    if (yy_aconf->user && yy_aconf->host)
4913 <    {
4914 <      conf_add_class_to_conf(yy_conf, class_name);
4915 <      add_conf_by_address(CONF_CLIENT, yy_aconf);
4916 <    }
4917 <    else
4918 <      delete_conf_item(yy_conf);
4919 <
4920 <    /* copy over settings from first struct */
4921 <    DLINK_FOREACH_SAFE(ptr, next_ptr, col_conf_list.head)
4753 >  case 268:
4754 > /* Line 1787 of yacc.c  */
4755 > #line 1550 "conf_parser.y"
4756      {
4757 <      struct AccessItem *new_aconf;
4924 <      struct ConfItem *new_conf;
4925 <
4926 <      new_conf = make_conf_item(CLIENT_TYPE);
4927 <      new_aconf = map_to_conf(new_conf);
4928 <
4929 <      yy_tmp = ptr->data;
4930 <
4931 <      assert(yy_tmp->user && yy_tmp->host);
4932 <
4933 <      if (yy_aconf->passwd != NULL)
4934 <        DupString(new_aconf->passwd, yy_aconf->passwd);
4935 <      if (yy_conf->name != NULL)
4936 <        DupString(new_conf->name, yy_conf->name);
4937 <      if (yy_aconf->passwd != NULL)
4938 <        DupString(new_aconf->passwd, yy_aconf->passwd);
4939 <
4940 <      new_aconf->flags = yy_aconf->flags;
4941 <      new_aconf->port  = yy_aconf->port;
4757 >  dlink_node *ptr = NULL;
4758  
4759 <      DupString(new_aconf->user, yy_tmp->user);
4944 <      collapse(new_aconf->user);
4945 <
4946 <      DupString(new_aconf->host, yy_tmp->host);
4947 <      collapse(new_aconf->host);
4948 <
4949 <      conf_add_class_to_conf(new_conf, class_name);
4950 <      add_conf_by_address(CONF_CLIENT, new_aconf);
4951 <      dlinkDelete(&yy_tmp->node, &col_conf_list);
4952 <      free_collect_item(yy_tmp);
4953 <    }
4954 <
4955 <    MyFree(class_name);
4956 <    class_name = NULL;
4957 <    yy_conf = NULL;
4958 <    yy_aconf = NULL;
4959 <  }
4960 < }
4759 >  if (conf_parser_ctx.pass != 2)
4760      break;
4761  
4762 <  case 256:
4964 <
4965 < /* Line 1806 of yacc.c  */
4966 < #line 1603 "ircd_parser.y"
4967 <    {
4968 <  if (conf_parser_ctx.pass == 2)
4762 >  DLINK_FOREACH(ptr, block_state.mask.list.head)
4763    {
4764 <    struct CollectItem *yy_tmp = NULL;
4764 >    struct MaskItem *conf = NULL;
4765      struct split_nuh_item nuh;
4766  
4767 <    nuh.nuhmask  = yylval.string;
4767 >    nuh.nuhmask  = ptr->data;
4768      nuh.nickptr  = NULL;
4769 <    nuh.userptr  = userbuf;
4770 <    nuh.hostptr  = hostbuf;
4977 <
4769 >    nuh.userptr  = block_state.user.buf;
4770 >    nuh.hostptr  = block_state.host.buf;
4771      nuh.nicksize = 0;
4772 <    nuh.usersize = sizeof(userbuf);
4773 <    nuh.hostsize = sizeof(hostbuf);
4981 <
4772 >    nuh.usersize = sizeof(block_state.user.buf);
4773 >    nuh.hostsize = sizeof(block_state.host.buf);
4774      split_nuh(&nuh);
4775  
4776 <    if (yy_aconf->user == NULL)
4777 <    {
4778 <      DupString(yy_aconf->user, userbuf);
4987 <      DupString(yy_aconf->host, hostbuf);
4988 <    }
4989 <    else
4990 <    {
4991 <      yy_tmp = MyMalloc(sizeof(struct CollectItem));
4776 >    conf        = conf_make(CONF_CLIENT);
4777 >    conf->user  = xstrdup(collapse(block_state.user.buf));
4778 >    conf->host  = xstrdup(collapse(block_state.host.buf));
4779  
4780 <      DupString(yy_tmp->user, userbuf);
4781 <      DupString(yy_tmp->host, hostbuf);
4780 >    if (block_state.rpass.buf[0])
4781 >      conf->passwd = xstrdup(block_state.rpass.buf);
4782 >    if (block_state.name.buf[0])
4783 >      conf->passwd = xstrdup(block_state.name.buf);
4784  
4785 <      dlinkAdd(yy_tmp, &yy_tmp->node, &col_conf_list);
4786 <    }
4785 >    conf->flags = block_state.flags.value;
4786 >    conf->port  = block_state.port.value;
4787 >
4788 >    conf_add_class_to_conf(conf, block_state.class.buf);
4789 >    add_conf_by_address(CONF_CLIENT, conf);
4790    }
4791   }
4792      break;
4793  
4794 <  case 257:
4795 <
4796 < /* Line 1806 of yacc.c  */
5005 < #line 1640 "ircd_parser.y"
4794 >  case 280:
4795 > /* Line 1787 of yacc.c  */
4796 > #line 1593 "conf_parser.y"
4797      {
4798    if (conf_parser_ctx.pass == 2)
4799 <  {
5009 <    /* be paranoid */
5010 <    if (yy_aconf->passwd != NULL)
5011 <      memset(yy_aconf->passwd, 0, strlen(yy_aconf->passwd));
5012 <
5013 <    MyFree(yy_aconf->passwd);
5014 <    DupString(yy_aconf->passwd, yylval.string);
5015 <  }
4799 >    dlinkAdd(xstrdup(yylval.string), make_dlink_node(), &block_state.mask.list);
4800   }
4801      break;
4802  
4803 <  case 258:
4804 <
4805 < /* Line 1806 of yacc.c  */
5022 < #line 1653 "ircd_parser.y"
4803 >  case 281:
4804 > /* Line 1787 of yacc.c  */
4805 > #line 1599 "conf_parser.y"
4806      {
4807    if (conf_parser_ctx.pass == 2)
4808 <  {
5026 <    MyFree(class_name);
5027 <    DupString(class_name, yylval.string);
5028 <  }
4808 >    strlcpy(block_state.rpass.buf, yylval.string, sizeof(block_state.rpass.buf));
4809   }
4810      break;
4811  
4812 <  case 259:
4812 >  case 282:
4813 > /* Line 1787 of yacc.c  */
4814 > #line 1605 "conf_parser.y"
4815 >    {
4816 >  if (conf_parser_ctx.pass == 2)
4817 >    strlcpy(block_state.class.buf, yylval.string, sizeof(block_state.class.buf));
4818 > }
4819 >    break;
4820  
4821 < /* Line 1806 of yacc.c  */
4822 < #line 1662 "ircd_parser.y"
4821 >  case 283:
4822 > /* Line 1787 of yacc.c  */
4823 > #line 1611 "conf_parser.y"
4824      {
4825    if (conf_parser_ctx.pass == 2)
4826    {
4827      if (yylval.number)
4828 <      SetConfEncrypted(yy_aconf);
4828 >      block_state.flags.value |= CONF_FLAGS_ENCRYPTED;
4829      else
4830 <      ClearConfEncrypted(yy_aconf);
4830 >      block_state.flags.value &= ~CONF_FLAGS_ENCRYPTED;
4831    }
4832   }
4833      break;
4834  
4835 <  case 260:
4836 <
4837 < /* Line 1806 of yacc.c  */
5050 < #line 1673 "ircd_parser.y"
4835 >  case 284:
4836 > /* Line 1787 of yacc.c  */
4837 > #line 1622 "conf_parser.y"
4838      {
4839 +  if (conf_parser_ctx.pass == 2)
4840 +    block_state.flags.value &= CONF_FLAGS_ENCRYPTED;
4841   }
4842      break;
4843  
4844 <  case 264:
4845 <
4846 < /* Line 1806 of yacc.c  */
5058 < #line 1678 "ircd_parser.y"
4844 >  case 288:
4845 > /* Line 1787 of yacc.c  */
4846 > #line 1629 "conf_parser.y"
4847      {
4848    if (conf_parser_ctx.pass == 2)
4849 <    yy_aconf->flags |= CONF_FLAGS_SPOOF_NOTICE;
4849 >    block_state.flags.value |= CONF_FLAGS_SPOOF_NOTICE;
4850   }
4851      break;
4852  
4853 <  case 265:
4854 <
4855 < /* Line 1806 of yacc.c  */
5068 < #line 1682 "ircd_parser.y"
4853 >  case 289:
4854 > /* Line 1787 of yacc.c  */
4855 > #line 1633 "conf_parser.y"
4856      {
4857    if (conf_parser_ctx.pass == 2)
4858 <    yy_aconf->flags |= CONF_FLAGS_NOLIMIT;
4858 >    block_state.flags.value |= CONF_FLAGS_NOLIMIT;
4859   }
4860      break;
4861  
4862 <  case 266:
4863 <
4864 < /* Line 1806 of yacc.c  */
5078 < #line 1686 "ircd_parser.y"
4862 >  case 290:
4863 > /* Line 1787 of yacc.c  */
4864 > #line 1637 "conf_parser.y"
4865      {
4866    if (conf_parser_ctx.pass == 2)
4867 <    yy_aconf->flags |= CONF_FLAGS_EXEMPTKLINE;
4867 >    block_state.flags.value |= CONF_FLAGS_EXEMPTKLINE;
4868   }
4869      break;
4870  
4871 <  case 267:
4872 <
4873 < /* Line 1806 of yacc.c  */
5088 < #line 1690 "ircd_parser.y"
4871 >  case 291:
4872 > /* Line 1787 of yacc.c  */
4873 > #line 1641 "conf_parser.y"
4874      {
4875    if (conf_parser_ctx.pass == 2)
4876 <    yy_aconf->flags |= CONF_FLAGS_NEED_IDENTD;
4876 >    block_state.flags.value |= CONF_FLAGS_NEED_IDENTD;
4877   }
4878      break;
4879  
4880 <  case 268:
4881 <
4882 < /* Line 1806 of yacc.c  */
5098 < #line 1694 "ircd_parser.y"
4880 >  case 292:
4881 > /* Line 1787 of yacc.c  */
4882 > #line 1645 "conf_parser.y"
4883      {
4884    if (conf_parser_ctx.pass == 2)
4885 <    yy_aconf->flags |= CONF_FLAGS_CAN_FLOOD;
4885 >    block_state.flags.value |= CONF_FLAGS_CAN_FLOOD;
4886   }
4887      break;
4888  
4889 <  case 269:
4890 <
4891 < /* Line 1806 of yacc.c  */
5108 < #line 1698 "ircd_parser.y"
4889 >  case 293:
4890 > /* Line 1787 of yacc.c  */
4891 > #line 1649 "conf_parser.y"
4892      {
4893    if (conf_parser_ctx.pass == 2)
4894 <    yy_aconf->flags |= CONF_FLAGS_NO_TILDE;
4894 >    block_state.flags.value |= CONF_FLAGS_NO_TILDE;
4895   }
4896      break;
4897  
4898 <  case 270:
4899 <
4900 < /* Line 1806 of yacc.c  */
5118 < #line 1702 "ircd_parser.y"
4898 >  case 294:
4899 > /* Line 1787 of yacc.c  */
4900 > #line 1653 "conf_parser.y"
4901      {
4902    if (conf_parser_ctx.pass == 2)
4903 <    yy_aconf->flags |= CONF_FLAGS_EXEMPTGLINE;
4903 >    block_state.flags.value |= CONF_FLAGS_EXEMPTGLINE;
4904   }
4905      break;
4906  
4907 <  case 271:
4908 <
4909 < /* Line 1806 of yacc.c  */
5128 < #line 1706 "ircd_parser.y"
4907 >  case 295:
4908 > /* Line 1787 of yacc.c  */
4909 > #line 1657 "conf_parser.y"
4910      {
4911    if (conf_parser_ctx.pass == 2)
4912 <    yy_aconf->flags |= CONF_FLAGS_EXEMPTRESV;
4912 >    block_state.flags.value |= CONF_FLAGS_EXEMPTRESV;
4913   }
4914      break;
4915  
4916 <  case 272:
4917 <
4918 < /* Line 1806 of yacc.c  */
5138 < #line 1710 "ircd_parser.y"
4916 >  case 296:
4917 > /* Line 1787 of yacc.c  */
4918 > #line 1661 "conf_parser.y"
4919      {
4920    if (conf_parser_ctx.pass == 2)
4921 <    yy_aconf->flags |= CONF_FLAGS_NEED_PASSWORD;
4921 >    block_state.flags.value |= CONF_FLAGS_WEBIRC;
4922   }
4923      break;
4924  
4925 <  case 273:
4926 <
4927 < /* Line 1806 of yacc.c  */
5148 < #line 1717 "ircd_parser.y"
4925 >  case 297:
4926 > /* Line 1787 of yacc.c  */
4927 > #line 1665 "conf_parser.y"
4928      {
4929    if (conf_parser_ctx.pass == 2)
4930 <  {
5152 <    MyFree(yy_conf->name);
5153 <
5154 <    if (strlen(yylval.string) < HOSTLEN)
5155 <    {    
5156 <      DupString(yy_conf->name, yylval.string);
5157 <      yy_aconf->flags |= CONF_FLAGS_SPOOF_IP;
5158 <    }
5159 <    else
5160 <    {
5161 <      ilog(LOG_TYPE_IRCD, "Spoofs must be less than %d..ignoring it", HOSTLEN);
5162 <      yy_conf->name = NULL;
5163 <    }
5164 <  }
4930 >    block_state.flags.value |= CONF_FLAGS_NEED_PASSWORD;
4931   }
4932      break;
4933  
4934 <  case 274:
4935 <
4936 < /* Line 1806 of yacc.c  */
5171 < #line 1736 "ircd_parser.y"
4934 >  case 298:
4935 > /* Line 1787 of yacc.c  */
4936 > #line 1671 "conf_parser.y"
4937      {
4938 <  if (conf_parser_ctx.pass == 2)
4938 >  if (conf_parser_ctx.pass != 2)
4939 >    break;
4940 >
4941 >  if (strlen(yylval.string) <= HOSTLEN && valid_hostname(yylval.string))
4942    {
4943 <    yy_aconf->flags |= CONF_FLAGS_REDIR;
4944 <    MyFree(yy_conf->name);
5177 <    DupString(yy_conf->name, yylval.string);
4943 >    strlcpy(block_state.name.buf, yylval.string, sizeof(block_state.name.buf));
4944 >    block_state.flags.value |= CONF_FLAGS_SPOOF_IP;
4945    }
4946 +  else
4947 +    ilog(LOG_TYPE_IRCD, "Spoof either is too long or contains invalid characters. Ignoring it.");
4948   }
4949      break;
4950  
4951 <  case 275:
4952 <
4953 < /* Line 1806 of yacc.c  */
5185 < #line 1746 "ircd_parser.y"
4951 >  case 299:
4952 > /* Line 1787 of yacc.c  */
4953 > #line 1685 "conf_parser.y"
4954      {
4955 <  if (conf_parser_ctx.pass == 2)
5188 <  {
5189 <    yy_aconf->flags |= CONF_FLAGS_REDIR;
5190 <    yy_aconf->port = (yyvsp[(3) - (4)].number);
5191 <  }
5192 < }
4955 >  if (conf_parser_ctx.pass != 2)
4956      break;
4957  
4958 <  case 276:
4958 >  strlcpy(block_state.name.buf, yylval.string, sizeof(block_state.name.buf));
4959 >  block_state.flags.value |= CONF_FLAGS_REDIR;
4960 > }
4961 >    break;
4962  
4963 < /* Line 1806 of yacc.c  */
4964 < #line 1759 "ircd_parser.y"
4963 >  case 300:
4964 > /* Line 1787 of yacc.c  */
4965 > #line 1694 "conf_parser.y"
4966      {
4967 <  if (conf_parser_ctx.pass == 2)
5201 <  {
5202 <    MyFree(resv_reason);
5203 <    resv_reason = NULL;
5204 <  }
5205 < }
4967 >  if (conf_parser_ctx.pass != 2)
4968      break;
4969  
4970 <  case 277:
4970 >  block_state.flags.value |= CONF_FLAGS_REDIR;
4971 >  block_state.port.value = (yyvsp[(3) - (4)].number);
4972 > }
4973 >    break;
4974  
4975 < /* Line 1806 of yacc.c  */
4976 < #line 1766 "ircd_parser.y"
4975 >  case 301:
4976 > /* Line 1787 of yacc.c  */
4977 > #line 1707 "conf_parser.y"
4978      {
4979 <  if (conf_parser_ctx.pass == 2)
4980 <  {
4981 <    MyFree(resv_reason);
4982 <    resv_reason = NULL;
4983 <  }
4979 >  if (conf_parser_ctx.pass != 2)
4980 >    break;
4981 >
4982 >  reset_block_state();
4983 >  strlcpy(block_state.rpass.buf, CONF_NOREASON, sizeof(block_state.rpass.buf));
4984   }
4985      break;
4986  
4987 <  case 284:
4987 >  case 302:
4988 > /* Line 1787 of yacc.c  */
4989 > #line 1714 "conf_parser.y"
4990 >    {
4991 >  if (conf_parser_ctx.pass != 2)
4992 >    break;
4993  
4994 < /* Line 1806 of yacc.c  */
4995 < #line 1778 "ircd_parser.y"
4994 >  create_resv(block_state.name.buf, block_state.rpass.buf, &block_state.mask.list);
4995 > }
4996 >    break;
4997 >
4998 >  case 309:
4999 > /* Line 1787 of yacc.c  */
5000 > #line 1725 "conf_parser.y"
5001      {
5002    if (conf_parser_ctx.pass == 2)
5003 <  {
5228 <    MyFree(resv_reason);
5229 <    DupString(resv_reason, yylval.string);
5230 <  }
5003 >    strlcpy(block_state.name.buf, yylval.string, sizeof(block_state.name.buf));
5004   }
5005      break;
5006  
5007 <  case 285:
5008 <
5009 < /* Line 1806 of yacc.c  */
5237 < #line 1787 "ircd_parser.y"
5007 >  case 310:
5008 > /* Line 1787 of yacc.c  */
5009 > #line 1731 "conf_parser.y"
5010      {
5011    if (conf_parser_ctx.pass == 2)
5012 <  {
5241 <    if (IsChanPrefix(*yylval.string))
5242 <    {
5243 <      char def_reason[] = "No reason";
5244 <
5245 <      create_channel_resv(yylval.string, resv_reason != NULL ? resv_reason : def_reason, 1);
5246 <    }
5247 <  }
5248 <  /* ignore it for now.. but we really should make a warning if
5249 <   * its an erroneous name --fl_ */
5012 >    strlcpy(block_state.rpass.buf, yylval.string, sizeof(block_state.rpass.buf));
5013   }
5014      break;
5015  
5016 <  case 286:
5017 <
5018 < /* Line 1806 of yacc.c  */
5256 < #line 1802 "ircd_parser.y"
5016 >  case 311:
5017 > /* Line 1787 of yacc.c  */
5018 > #line 1737 "conf_parser.y"
5019      {
5020    if (conf_parser_ctx.pass == 2)
5021 <  {
5260 <    char def_reason[] = "No reason";
5261 <
5262 <    create_nick_resv(yylval.string, resv_reason != NULL ? resv_reason : def_reason, 1);
5263 <  }
5021 >    dlinkAdd(xstrdup(yylval.string), make_dlink_node(), &block_state.mask.list);
5022   }
5023      break;
5024  
5025 <  case 292:
5026 <
5027 < /* Line 1806 of yacc.c  */
5270 < #line 1820 "ircd_parser.y"
5025 >  case 317:
5026 > /* Line 1787 of yacc.c  */
5027 > #line 1752 "conf_parser.y"
5028      {
5029    if (conf_parser_ctx.pass == 2)
5030    {
5031      if (valid_servname(yylval.string))
5032      {
5033 <      yy_conf = make_conf_item(SERVICE_TYPE);
5034 <      DupString(yy_conf->name, yylval.string);
5033 >      struct MaskItem *conf = conf_make(CONF_SERVICE);
5034 >      conf->name = xstrdup(yylval.string);
5035      }
5036    }
5037   }
5038      break;
5039  
5040 <  case 293:
5041 <
5042 < /* Line 1806 of yacc.c  */
5286 < #line 1835 "ircd_parser.y"
5040 >  case 318:
5041 > /* Line 1787 of yacc.c  */
5042 > #line 1767 "conf_parser.y"
5043      {
5044 <  if (conf_parser_ctx.pass == 2)
5289 <  {
5290 <    yy_conf = make_conf_item(ULINE_TYPE);
5291 <    yy_match_item = map_to_conf(yy_conf);
5292 <    yy_match_item->action = SHARED_ALL;
5293 <  }
5294 < }
5044 >  if (conf_parser_ctx.pass != 2)
5045      break;
5046  
5047 <  case 294:
5047 >  reset_block_state();
5048  
5049 < /* Line 1806 of yacc.c  */
5050 < #line 1843 "ircd_parser.y"
5051 <    {
5052 <  if (conf_parser_ctx.pass == 2)
5303 <  {
5304 <    yy_conf = NULL;
5305 <  }
5049 >  strlcpy(block_state.name.buf, "*", sizeof(block_state.name.buf));
5050 >  strlcpy(block_state.user.buf, "*", sizeof(block_state.user.buf));
5051 >  strlcpy(block_state.host.buf, "*", sizeof(block_state.host.buf));
5052 >  block_state.flags.value = SHARED_ALL;
5053   }
5054      break;
5055  
5056 <  case 301:
5056 >  case 319:
5057 > /* Line 1787 of yacc.c  */
5058 > #line 1778 "conf_parser.y"
5059 >    {
5060 >  struct MaskItem *conf = NULL;
5061 >
5062 >  if (conf_parser_ctx.pass != 2)
5063 >    break;
5064 >
5065 >  conf = conf_make(CONF_ULINE);
5066 >  conf->flags = block_state.flags.value;
5067 >  conf->name = xstrdup(block_state.name.buf);
5068 >  conf->user = xstrdup(block_state.user.buf);
5069 >  conf->user = xstrdup(block_state.host.buf);
5070 > }
5071 >    break;
5072  
5073 < /* Line 1806 of yacc.c  */
5074 < #line 1854 "ircd_parser.y"
5073 >  case 326:
5074 > /* Line 1787 of yacc.c  */
5075 > #line 1795 "conf_parser.y"
5076      {
5077    if (conf_parser_ctx.pass == 2)
5078 <  {
5316 <    MyFree(yy_conf->name);
5317 <    DupString(yy_conf->name, yylval.string);
5318 <  }
5078 >    strlcpy(block_state.name.buf, yylval.string, sizeof(block_state.name.buf));
5079   }
5080      break;
5081  
5082 <  case 302:
5083 <
5084 < /* Line 1806 of yacc.c  */
5325 < #line 1863 "ircd_parser.y"
5082 >  case 327:
5083 > /* Line 1787 of yacc.c  */
5084 > #line 1801 "conf_parser.y"
5085      {
5086    if (conf_parser_ctx.pass == 2)
5087    {
# Line 5330 | Line 5089 | yyreduce:
5089  
5090      nuh.nuhmask  = yylval.string;
5091      nuh.nickptr  = NULL;
5092 <    nuh.userptr  = userbuf;
5093 <    nuh.hostptr  = hostbuf;
5092 >    nuh.userptr  = block_state.user.buf;
5093 >    nuh.hostptr  = block_state.host.buf;
5094  
5095      nuh.nicksize = 0;
5096 <    nuh.usersize = sizeof(userbuf);
5097 <    nuh.hostsize = sizeof(hostbuf);
5096 >    nuh.usersize = sizeof(block_state.user.buf);
5097 >    nuh.hostsize = sizeof(block_state.host.buf);
5098  
5099      split_nuh(&nuh);
5341
5342    DupString(yy_match_item->user, userbuf);
5343    DupString(yy_match_item->host, hostbuf);
5100    }
5101   }
5102      break;
5103  
5104 <  case 303:
5105 <
5106 < /* Line 1806 of yacc.c  */
5351 < #line 1885 "ircd_parser.y"
5104 >  case 328:
5105 > /* Line 1787 of yacc.c  */
5106 > #line 1820 "conf_parser.y"
5107      {
5108    if (conf_parser_ctx.pass == 2)
5109 <    yy_match_item->action = 0;
5109 >    block_state.flags.value = 0;
5110   }
5111      break;
5112  
5113 <  case 307:
5114 <
5115 < /* Line 1806 of yacc.c  */
5361 < #line 1892 "ircd_parser.y"
5113 >  case 332:
5114 > /* Line 1787 of yacc.c  */
5115 > #line 1827 "conf_parser.y"
5116      {
5117    if (conf_parser_ctx.pass == 2)
5118 <    yy_match_item->action |= SHARED_KLINE;
5118 >    block_state.flags.value |= SHARED_KLINE;
5119   }
5120      break;
5121  
5122 <  case 308:
5123 <
5124 < /* Line 1806 of yacc.c  */
5371 < #line 1896 "ircd_parser.y"
5122 >  case 333:
5123 > /* Line 1787 of yacc.c  */
5124 > #line 1831 "conf_parser.y"
5125      {
5126    if (conf_parser_ctx.pass == 2)
5127 <    yy_match_item->action |= SHARED_UNKLINE;
5127 >    block_state.flags.value |= SHARED_UNKLINE;
5128   }
5129      break;
5130  
5131 <  case 309:
5132 <
5133 < /* Line 1806 of yacc.c  */
5381 < #line 1900 "ircd_parser.y"
5131 >  case 334:
5132 > /* Line 1787 of yacc.c  */
5133 > #line 1835 "conf_parser.y"
5134      {
5135    if (conf_parser_ctx.pass == 2)
5136 <    yy_match_item->action |= SHARED_DLINE;
5136 >    block_state.flags.value |= SHARED_DLINE;
5137   }
5138      break;
5139  
5140 <  case 310:
5141 <
5142 < /* Line 1806 of yacc.c  */
5391 < #line 1904 "ircd_parser.y"
5140 >  case 335:
5141 > /* Line 1787 of yacc.c  */
5142 > #line 1839 "conf_parser.y"
5143      {
5144    if (conf_parser_ctx.pass == 2)
5145 <    yy_match_item->action |= SHARED_UNDLINE;
5145 >    block_state.flags.value |= SHARED_UNDLINE;
5146   }
5147      break;
5148  
5149 <  case 311:
5150 <
5151 < /* Line 1806 of yacc.c  */
5401 < #line 1908 "ircd_parser.y"
5149 >  case 336:
5150 > /* Line 1787 of yacc.c  */
5151 > #line 1843 "conf_parser.y"
5152      {
5153    if (conf_parser_ctx.pass == 2)
5154 <    yy_match_item->action |= SHARED_XLINE;
5154 >    block_state.flags.value |= SHARED_XLINE;
5155   }
5156      break;
5157  
5158 <  case 312:
5159 <
5160 < /* Line 1806 of yacc.c  */
5411 < #line 1912 "ircd_parser.y"
5158 >  case 337:
5159 > /* Line 1787 of yacc.c  */
5160 > #line 1847 "conf_parser.y"
5161      {
5162    if (conf_parser_ctx.pass == 2)
5163 <    yy_match_item->action |= SHARED_UNXLINE;
5163 >    block_state.flags.value |= SHARED_UNXLINE;
5164   }
5165      break;
5166  
5167 <  case 313:
5168 <
5169 < /* Line 1806 of yacc.c  */
5421 < #line 1916 "ircd_parser.y"
5167 >  case 338:
5168 > /* Line 1787 of yacc.c  */
5169 > #line 1851 "conf_parser.y"
5170      {
5171    if (conf_parser_ctx.pass == 2)
5172 <    yy_match_item->action |= SHARED_RESV;
5172 >    block_state.flags.value |= SHARED_RESV;
5173   }
5174      break;
5175  
5176 <  case 314:
5177 <
5178 < /* Line 1806 of yacc.c  */
5431 < #line 1920 "ircd_parser.y"
5176 >  case 339:
5177 > /* Line 1787 of yacc.c  */
5178 > #line 1855 "conf_parser.y"
5179      {
5180    if (conf_parser_ctx.pass == 2)
5181 <    yy_match_item->action |= SHARED_UNRESV;
5181 >    block_state.flags.value |= SHARED_UNRESV;
5182   }
5183      break;
5184  
5185 <  case 315:
5186 <
5187 < /* Line 1806 of yacc.c  */
5441 < #line 1924 "ircd_parser.y"
5185 >  case 340:
5186 > /* Line 1787 of yacc.c  */
5187 > #line 1859 "conf_parser.y"
5188      {
5189    if (conf_parser_ctx.pass == 2)
5190 <    yy_match_item->action |= SHARED_LOCOPS;
5190 >    block_state.flags.value |= SHARED_LOCOPS;
5191   }
5192      break;
5193  
5194 <  case 316:
5195 <
5196 < /* Line 1806 of yacc.c  */
5451 < #line 1928 "ircd_parser.y"
5194 >  case 341:
5195 > /* Line 1787 of yacc.c  */
5196 > #line 1863 "conf_parser.y"
5197      {
5198    if (conf_parser_ctx.pass == 2)
5199 <    yy_match_item->action = SHARED_ALL;
5199 >    block_state.flags.value = SHARED_ALL;
5200   }
5201      break;
5202  
5203 <  case 317:
5204 <
5205 < /* Line 1806 of yacc.c  */
5461 < #line 1937 "ircd_parser.y"
5203 >  case 342:
5204 > /* Line 1787 of yacc.c  */
5205 > #line 1872 "conf_parser.y"
5206      {
5207 <  if (conf_parser_ctx.pass == 2)
5464 <  {
5465 <    yy_conf = make_conf_item(CLUSTER_TYPE);
5466 <    yy_conf->flags = SHARED_ALL;
5467 <  }
5468 < }
5207 >  if (conf_parser_ctx.pass != 2)
5208      break;
5209  
5210 <  case 318:
5210 >  reset_block_state();
5211  
5212 < /* Line 1806 of yacc.c  */
5213 < #line 1944 "ircd_parser.y"
5475 <    {
5476 <  if (conf_parser_ctx.pass == 2)
5477 <  {
5478 <    if (yy_conf->name == NULL)
5479 <      DupString(yy_conf->name, "*");
5480 <    yy_conf = NULL;
5481 <  }
5212 >  strlcpy(block_state.name.buf, "*", sizeof(block_state.name.buf));
5213 >  block_state.flags.value = SHARED_ALL;
5214   }
5215      break;
5216  
5217 <  case 324:
5218 <
5219 < /* Line 1806 of yacc.c  */
5488 < #line 1957 "ircd_parser.y"
5217 >  case 343:
5218 > /* Line 1787 of yacc.c  */
5219 > #line 1881 "conf_parser.y"
5220      {
5221 <  if (conf_parser_ctx.pass == 2)
5491 <    DupString(yy_conf->name, yylval.string);
5492 < }
5493 <    break;
5221 >  struct MaskItem *conf = NULL;
5222  
5223 <  case 325:
5223 >  if (conf_parser_ctx.pass != 2)
5224 >    break;
5225  
5226 < /* Line 1806 of yacc.c  */
5227 < #line 1963 "ircd_parser.y"
5228 <    {
5500 <  if (conf_parser_ctx.pass == 2)
5501 <    yy_conf->flags = 0;
5226 >  conf = conf_make(CONF_CLUSTER);
5227 >  conf->flags = block_state.flags.value;
5228 >  conf->name = xstrdup(block_state.name.buf);
5229   }
5230      break;
5231  
5232 <  case 329:
5233 <
5234 < /* Line 1806 of yacc.c  */
5508 < #line 1970 "ircd_parser.y"
5232 >  case 349:
5233 > /* Line 1787 of yacc.c  */
5234 > #line 1896 "conf_parser.y"
5235      {
5236    if (conf_parser_ctx.pass == 2)
5237 <    yy_conf->flags |= SHARED_KLINE;
5237 >    strlcpy(block_state.name.buf, yylval.string, sizeof(block_state.name.buf));
5238   }
5239      break;
5240  
5241 <  case 330:
5242 <
5243 < /* Line 1806 of yacc.c  */
5518 < #line 1974 "ircd_parser.y"
5241 >  case 350:
5242 > /* Line 1787 of yacc.c  */
5243 > #line 1902 "conf_parser.y"
5244      {
5245    if (conf_parser_ctx.pass == 2)
5246 <    yy_conf->flags |= SHARED_UNKLINE;
5246 >    block_state.flags.value = 0;
5247   }
5248      break;
5249  
5250 <  case 331:
5251 <
5252 < /* Line 1806 of yacc.c  */
5528 < #line 1978 "ircd_parser.y"
5250 >  case 354:
5251 > /* Line 1787 of yacc.c  */
5252 > #line 1909 "conf_parser.y"
5253      {
5254    if (conf_parser_ctx.pass == 2)
5255 <    yy_conf->flags |= SHARED_DLINE;
5255 >    block_state.flags.value |= SHARED_KLINE;
5256   }
5257      break;
5258  
5259 <  case 332:
5260 <
5261 < /* Line 1806 of yacc.c  */
5538 < #line 1982 "ircd_parser.y"
5259 >  case 355:
5260 > /* Line 1787 of yacc.c  */
5261 > #line 1913 "conf_parser.y"
5262      {
5263    if (conf_parser_ctx.pass == 2)
5264 <    yy_conf->flags |= SHARED_UNDLINE;
5264 >    block_state.flags.value |= SHARED_UNKLINE;
5265   }
5266      break;
5267  
5268 <  case 333:
5269 <
5270 < /* Line 1806 of yacc.c  */
5548 < #line 1986 "ircd_parser.y"
5268 >  case 356:
5269 > /* Line 1787 of yacc.c  */
5270 > #line 1917 "conf_parser.y"
5271      {
5272    if (conf_parser_ctx.pass == 2)
5273 <    yy_conf->flags |= SHARED_XLINE;
5273 >    block_state.flags.value |= SHARED_DLINE;
5274   }
5275      break;
5276  
5277 <  case 334:
5278 <
5279 < /* Line 1806 of yacc.c  */
5558 < #line 1990 "ircd_parser.y"
5277 >  case 357:
5278 > /* Line 1787 of yacc.c  */
5279 > #line 1921 "conf_parser.y"
5280      {
5281    if (conf_parser_ctx.pass == 2)
5282 <    yy_conf->flags |= SHARED_UNXLINE;
5282 >    block_state.flags.value |= SHARED_UNDLINE;
5283   }
5284      break;
5285  
5286 <  case 335:
5287 <
5288 < /* Line 1806 of yacc.c  */
5568 < #line 1994 "ircd_parser.y"
5286 >  case 358:
5287 > /* Line 1787 of yacc.c  */
5288 > #line 1925 "conf_parser.y"
5289      {
5290    if (conf_parser_ctx.pass == 2)
5291 <    yy_conf->flags |= SHARED_RESV;
5291 >    block_state.flags.value |= SHARED_XLINE;
5292   }
5293      break;
5294  
5295 <  case 336:
5296 <
5297 < /* Line 1806 of yacc.c  */
5578 < #line 1998 "ircd_parser.y"
5295 >  case 359:
5296 > /* Line 1787 of yacc.c  */
5297 > #line 1929 "conf_parser.y"
5298      {
5299    if (conf_parser_ctx.pass == 2)
5300 <    yy_conf->flags |= SHARED_UNRESV;
5300 >    block_state.flags.value |= SHARED_UNXLINE;
5301   }
5302      break;
5303  
5304 <  case 337:
5305 <
5306 < /* Line 1806 of yacc.c  */
5588 < #line 2002 "ircd_parser.y"
5304 >  case 360:
5305 > /* Line 1787 of yacc.c  */
5306 > #line 1933 "conf_parser.y"
5307      {
5308    if (conf_parser_ctx.pass == 2)
5309 <    yy_conf->flags |= SHARED_LOCOPS;
5309 >    block_state.flags.value |= SHARED_RESV;
5310   }
5311      break;
5312  
5313 <  case 338:
5314 <
5315 < /* Line 1806 of yacc.c  */
5598 < #line 2006 "ircd_parser.y"
5313 >  case 361:
5314 > /* Line 1787 of yacc.c  */
5315 > #line 1937 "conf_parser.y"
5316      {
5317    if (conf_parser_ctx.pass == 2)
5318 <    yy_conf->flags = SHARED_ALL;
5318 >    block_state.flags.value |= SHARED_UNRESV;
5319   }
5320      break;
5321  
5322 <  case 339:
5323 <
5324 < /* Line 1806 of yacc.c  */
5608 < #line 2015 "ircd_parser.y"
5322 >  case 362:
5323 > /* Line 1787 of yacc.c  */
5324 > #line 1941 "conf_parser.y"
5325      {
5326    if (conf_parser_ctx.pass == 2)
5327 <  {
5612 <    yy_conf = make_conf_item(SERVER_TYPE);
5613 <    yy_aconf = map_to_conf(yy_conf);
5614 <
5615 <    /* defaults */
5616 <    yy_aconf->port = PORTNUM;
5617 <  }
5618 <  else
5619 <  {
5620 <    MyFree(class_name);
5621 <    class_name = NULL;
5622 <  }
5327 >    block_state.flags.value |= SHARED_LOCOPS;
5328   }
5329      break;
5330  
5331 <  case 340:
5332 <
5333 < /* Line 1806 of yacc.c  */
5629 < #line 2030 "ircd_parser.y"
5331 >  case 363:
5332 > /* Line 1787 of yacc.c  */
5333 > #line 1945 "conf_parser.y"
5334      {
5335    if (conf_parser_ctx.pass == 2)
5336 <  {
5337 <    struct CollectItem *yy_hconf=NULL;
5338 <    struct CollectItem *yy_lconf=NULL;
5635 <    dlink_node *ptr = NULL, *next_ptr = NULL;
5336 >    block_state.flags.value = SHARED_ALL;
5337 > }
5338 >    break;
5339  
5340 <    if (yy_aconf->host &&
5341 <        yy_aconf->passwd && yy_aconf->spasswd)
5342 <    {
5640 <      if (conf_add_server(yy_conf, class_name) == -1)
5641 <      {
5642 <        delete_conf_item(yy_conf);
5643 <        yy_conf = NULL;
5644 <        yy_aconf = NULL;
5645 <      }
5646 <    }
5647 <    else
5340 >  case 364:
5341 > /* Line 1787 of yacc.c  */
5342 > #line 1954 "conf_parser.y"
5343      {
5649      /* Even if yy_conf ->name is NULL
5650       * should still unhook any hub/leaf confs still pending
5651       */
5652      unhook_hub_leaf_confs();
5653
5654      if (yy_conf->name != NULL)
5655      {
5656        if (yy_aconf->host == NULL)
5657          yyerror("Ignoring connect block -- missing host");
5658        else if (!yy_aconf->passwd || !yy_aconf->spasswd)
5659          yyerror("Ignoring connect block -- missing password");
5660      }
5661
5662
5663      /* XXX
5664       * This fixes a try_connections() core (caused by invalid class_ptr
5665       * pointers) reported by metalrock. That's an ugly fix, but there
5666       * is currently no better way. The entire config subsystem needs an
5667       * rewrite ASAP. make_conf_item() shouldn't really add things onto
5668       * a doubly linked list immediately without any sanity checks!  -Michael
5669       */
5670      delete_conf_item(yy_conf);
5344  
5345 <      yy_aconf = NULL;
5346 <      yy_conf = NULL;
5674 <    }
5675 <
5676 <      /*
5677 <       * yy_conf is still pointing at the server that is having
5678 <       * a connect block built for it. This means, y_aconf->name
5679 <       * points to the actual irc name this server will be known as.
5680 <       * Now this new server has a set or even just one hub_mask (or leaf_mask)
5681 <       * given in the link list at yy_hconf. Fill in the HUB confs
5682 <       * from this link list now.
5683 <       */        
5684 <      DLINK_FOREACH_SAFE(ptr, next_ptr, hub_conf_list.head)
5685 <      {
5686 <        struct ConfItem *new_hub_conf;
5687 <        struct MatchItem *match_item;
5688 <
5689 <        yy_hconf = ptr->data;
5690 <
5691 <        /* yy_conf == NULL is a fatal error for this connect block! */
5692 <        if ((yy_conf != NULL) && (yy_conf->name != NULL))
5693 <        {
5694 <          new_hub_conf = make_conf_item(HUB_TYPE);
5695 <          match_item = (struct MatchItem *)map_to_conf(new_hub_conf);
5696 <          DupString(new_hub_conf->name, yy_conf->name);
5697 <          if (yy_hconf->user != NULL)
5698 <            DupString(match_item->user, yy_hconf->user);
5699 <          else
5700 <            DupString(match_item->user, "*");
5701 <          if (yy_hconf->host != NULL)
5702 <            DupString(match_item->host, yy_hconf->host);
5703 <          else
5704 <            DupString(match_item->host, "*");
5705 <        }
5706 <        dlinkDelete(&yy_hconf->node, &hub_conf_list);
5707 <        free_collect_item(yy_hconf);
5708 <      }
5709 <
5710 <      /* Ditto for the LEAF confs */
5711 <
5712 <      DLINK_FOREACH_SAFE(ptr, next_ptr, leaf_conf_list.head)
5713 <      {
5714 <        struct ConfItem *new_leaf_conf;
5715 <        struct MatchItem *match_item;
5716 <
5717 <        yy_lconf = ptr->data;
5345 >  if (conf_parser_ctx.pass != 2)
5346 >    break;
5347  
5348 <        if ((yy_conf != NULL) && (yy_conf->name != NULL))
5349 <        {
5721 <          new_leaf_conf = make_conf_item(LEAF_TYPE);
5722 <          match_item = (struct MatchItem *)map_to_conf(new_leaf_conf);
5723 <          DupString(new_leaf_conf->name, yy_conf->name);
5724 <          if (yy_lconf->user != NULL)
5725 <            DupString(match_item->user, yy_lconf->user);
5726 <          else
5727 <            DupString(match_item->user, "*");
5728 <          if (yy_lconf->host != NULL)
5729 <            DupString(match_item->host, yy_lconf->host);
5730 <          else
5731 <            DupString(match_item->host, "*");
5732 <        }
5733 <        dlinkDelete(&yy_lconf->node, &leaf_conf_list);
5734 <        free_collect_item(yy_lconf);
5735 <      }
5736 <      MyFree(class_name);
5737 <      class_name = NULL;
5738 <      yy_conf = NULL;
5739 <      yy_aconf = NULL;
5740 <  }
5348 >  reset_block_state();
5349 >  block_state.port.value = PORTNUM;
5350   }
5351      break;
5352  
5353 <  case 356:
5354 <
5355 < /* Line 1806 of yacc.c  */
5747 < #line 2152 "ircd_parser.y"
5353 >  case 365:
5354 > /* Line 1787 of yacc.c  */
5355 > #line 1962 "conf_parser.y"
5356      {
5357 <  if (conf_parser_ctx.pass == 2)
5358 <  {
5751 <    if (yy_conf->name != NULL)
5752 <      yyerror("Multiple connect name entry");
5357 >  struct MaskItem *conf = NULL;
5358 >  struct addrinfo hints, *res;
5359  
5360 <    MyFree(yy_conf->name);
5755 <    DupString(yy_conf->name, yylval.string);
5756 <  }
5757 < }
5360 >  if (conf_parser_ctx.pass != 2)
5361      break;
5362  
5363 <  case 357:
5363 >  if (!block_state.name.buf[0] ||
5364 >      !block_state.host.buf[0])
5365 >    break;
5366  
5367 < /* Line 1806 of yacc.c  */
5368 < #line 2164 "ircd_parser.y"
5764 <    {
5765 <  if (conf_parser_ctx.pass == 2)
5766 <  {
5767 <    MyFree(yy_aconf->host);
5768 <    DupString(yy_aconf->host, yylval.string);
5769 <  }
5770 < }
5367 >  if (!(block_state.rpass.buf[0] ||
5368 >        block_state.spass.buf[0]))
5369      break;
5370  
5371 <  case 358:
5371 >  if (has_wildcards(block_state.name.buf) ||
5372 >      has_wildcards(block_state.host.buf))
5373 >    break;
5374  
5375 < /* Line 1806 of yacc.c  */
5376 < #line 2173 "ircd_parser.y"
5377 <    {
5378 <  if (conf_parser_ctx.pass == 2)
5379 <  {
5380 <    struct addrinfo hints, *res;
5375 >  conf = conf_make(CONF_SERVER);
5376 >  conf->port = block_state.port.value;
5377 >  conf->flags = block_state.flags.value;
5378 >  conf->aftype = block_state.aftype.value;
5379 >  conf->host = xstrdup(block_state.host.buf);
5380 >  conf->name = xstrdup(block_state.name.buf);
5381 >  conf->passwd = xstrdup(block_state.rpass.buf);
5382 >  conf->spasswd = xstrdup(block_state.spass.buf);
5383 >  conf->cipher_list = xstrdup(block_state.ciph.buf);
5384 >
5385 >  dlinkMoveList(&block_state.leaf.list, &conf->leaf_list);
5386 >  dlinkMoveList(&block_state.hub.list, &conf->hub_list);
5387  
5388 +  if (block_state.bind.buf[0])
5389 +  {
5390      memset(&hints, 0, sizeof(hints));
5391  
5392      hints.ai_family   = AF_UNSPEC;
5393      hints.ai_socktype = SOCK_STREAM;
5394      hints.ai_flags    = AI_PASSIVE | AI_NUMERICHOST;
5395  
5396 <    if (getaddrinfo(yylval.string, NULL, &hints, &res))
5397 <      ilog(LOG_TYPE_IRCD, "Invalid netmask for server vhost(%s)", yylval.string);
5396 >    if (getaddrinfo(block_state.bind.buf, NULL, &hints, &res))
5397 >      ilog(LOG_TYPE_IRCD, "Invalid netmask for server vhost(%s)", block_state.bind.buf);
5398      else
5399      {
5400        assert(res != NULL);
5401  
5402 <      memcpy(&yy_aconf->my_ipnum, res->ai_addr, res->ai_addrlen);
5403 <      yy_aconf->my_ipnum.ss.ss_family = res->ai_family;
5404 <      yy_aconf->my_ipnum.ss_len = res->ai_addrlen;
5402 >      memcpy(&conf->bind, res->ai_addr, res->ai_addrlen);
5403 >      conf->bind.ss.ss_family = res->ai_family;
5404 >      conf->bind.ss_len = res->ai_addrlen;
5405        freeaddrinfo(res);
5406      }
5407    }
5408 +
5409 +  conf_add_class_to_conf(conf, block_state.class.buf);
5410 +  lookup_confhost(conf);
5411   }
5412      break;
5413  
5414 <  case 359:
5415 <
5416 < /* Line 1806 of yacc.c  */
5806 < #line 2199 "ircd_parser.y"
5414 >  case 382:
5415 > /* Line 1787 of yacc.c  */
5416 > #line 2028 "conf_parser.y"
5417      {
5418    if (conf_parser_ctx.pass == 2)
5419 <  {
5810 <    if ((yyvsp[(3) - (4)].string)[0] == ':')
5811 <      yyerror("Server passwords cannot begin with a colon");
5812 <    else if (strchr((yyvsp[(3) - (4)].string), ' ') != NULL)
5813 <      yyerror("Server passwords cannot contain spaces");
5814 <    else {
5815 <      if (yy_aconf->spasswd != NULL)
5816 <        memset(yy_aconf->spasswd, 0, strlen(yy_aconf->spasswd));
5817 <
5818 <      MyFree(yy_aconf->spasswd);
5819 <      DupString(yy_aconf->spasswd, yylval.string);
5820 <    }
5821 <  }
5419 >    strlcpy(block_state.name.buf, yylval.string, sizeof(block_state.name.buf));
5420   }
5421      break;
5422  
5423 <  case 360:
5424 <
5425 < /* Line 1806 of yacc.c  */
5828 < #line 2217 "ircd_parser.y"
5423 >  case 383:
5424 > /* Line 1787 of yacc.c  */
5425 > #line 2034 "conf_parser.y"
5426      {
5427    if (conf_parser_ctx.pass == 2)
5428 <  {
5832 <    if ((yyvsp[(3) - (4)].string)[0] == ':')
5833 <      yyerror("Server passwords cannot begin with a colon");
5834 <    else if (strchr((yyvsp[(3) - (4)].string), ' ') != NULL)
5835 <      yyerror("Server passwords cannot contain spaces");
5836 <    else {
5837 <      if (yy_aconf->passwd != NULL)
5838 <        memset(yy_aconf->passwd, 0, strlen(yy_aconf->passwd));
5839 <
5840 <      MyFree(yy_aconf->passwd);
5841 <      DupString(yy_aconf->passwd, yylval.string);
5842 <    }
5843 <  }
5428 >    strlcpy(block_state.host.buf, yylval.string, sizeof(block_state.host.buf));
5429   }
5430      break;
5431  
5432 <  case 361:
5433 <
5434 < /* Line 1806 of yacc.c  */
5850 < #line 2235 "ircd_parser.y"
5432 >  case 384:
5433 > /* Line 1787 of yacc.c  */
5434 > #line 2040 "conf_parser.y"
5435      {
5436    if (conf_parser_ctx.pass == 2)
5437 <    yy_aconf->port = (yyvsp[(3) - (4)].number);
5437 >    strlcpy(block_state.bind.buf, yylval.string, sizeof(block_state.bind.buf));
5438   }
5439      break;
5440  
5441 <  case 362:
5442 <
5443 < /* Line 1806 of yacc.c  */
5860 < #line 2241 "ircd_parser.y"
5441 >  case 385:
5442 > /* Line 1787 of yacc.c  */
5443 > #line 2046 "conf_parser.y"
5444      {
5445 <  if (conf_parser_ctx.pass == 2)
5446 <    yy_aconf->aftype = AF_INET;
5445 >  if (conf_parser_ctx.pass != 2)
5446 >    break;
5447 >
5448 >  if ((yyvsp[(3) - (4)].string)[0] == ':')
5449 >    conf_error_report("Server passwords cannot begin with a colon");
5450 >  else if (strchr((yyvsp[(3) - (4)].string), ' ') != NULL)
5451 >    conf_error_report("Server passwords cannot contain spaces");
5452 >  else
5453 >    strlcpy(block_state.spass.buf, yylval.string, sizeof(block_state.spass.buf));
5454   }
5455      break;
5456  
5457 <  case 363:
5457 >  case 386:
5458 > /* Line 1787 of yacc.c  */
5459 > #line 2059 "conf_parser.y"
5460 >    {
5461 >  if (conf_parser_ctx.pass != 2)
5462 >    break;
5463 >
5464 >  if ((yyvsp[(3) - (4)].string)[0] == ':')
5465 >    conf_error_report("Server passwords cannot begin with a colon");
5466 >  else if (strchr((yyvsp[(3) - (4)].string), ' ') != NULL)
5467 >    conf_error_report("Server passwords cannot contain spaces");
5468 >  else
5469 >    strlcpy(block_state.rpass.buf, yylval.string, sizeof(block_state.rpass.buf));
5470 > }
5471 >    break;
5472  
5473 < /* Line 1806 of yacc.c  */
5474 < #line 2245 "ircd_parser.y"
5473 >  case 387:
5474 > /* Line 1787 of yacc.c  */
5475 > #line 2072 "conf_parser.y"
5476      {
5872 #ifdef IPV6
5477    if (conf_parser_ctx.pass == 2)
5478 <    yy_aconf->aftype = AF_INET6;
5875 < #endif
5478 >    block_state.port.value = (yyvsp[(3) - (4)].number);
5479   }
5480      break;
5481  
5482 <  case 364:
5483 <
5484 < /* Line 1806 of yacc.c  */
5882 < #line 2253 "ircd_parser.y"
5482 >  case 388:
5483 > /* Line 1787 of yacc.c  */
5484 > #line 2078 "conf_parser.y"
5485      {
5486 +  if (conf_parser_ctx.pass == 2)
5487 +    block_state.aftype.value = AF_INET;
5488   }
5489      break;
5490  
5491 <  case 368:
5492 <
5493 < /* Line 1806 of yacc.c  */
5890 < #line 2258 "ircd_parser.y"
5491 >  case 389:
5492 > /* Line 1787 of yacc.c  */
5493 > #line 2082 "conf_parser.y"
5494      {
5495 + #ifdef IPV6
5496    if (conf_parser_ctx.pass == 2)
5497 <    SetConfAllowAutoConn(yy_aconf);
5497 >    block_state.aftype.value = AF_INET6;
5498 > #endif
5499   }
5500      break;
5501  
5502 <  case 369:
5502 >  case 390:
5503 > /* Line 1787 of yacc.c  */
5504 > #line 2090 "conf_parser.y"
5505 >    {
5506 >  block_state.flags.value &= CONF_FLAGS_ENCRYPTED;
5507 > }
5508 >    break;
5509  
5510 < /* Line 1806 of yacc.c  */
5511 < #line 2262 "ircd_parser.y"
5510 >  case 394:
5511 > /* Line 1787 of yacc.c  */
5512 > #line 2096 "conf_parser.y"
5513      {
5514    if (conf_parser_ctx.pass == 2)
5515 <    SetConfAwayBurst(yy_aconf);
5515 >    block_state.flags.value |= CONF_FLAGS_ALLOW_AUTO_CONN;
5516   }
5517      break;
5518  
5519 <  case 370:
5520 <
5521 < /* Line 1806 of yacc.c  */
5910 < #line 2266 "ircd_parser.y"
5519 >  case 395:
5520 > /* Line 1787 of yacc.c  */
5521 > #line 2100 "conf_parser.y"
5522      {
5523    if (conf_parser_ctx.pass == 2)
5524 <    SetConfTopicBurst(yy_aconf);
5524 >    block_state.flags.value |= CONF_FLAGS_SSL;
5525   }
5526      break;
5527  
5528 <  case 371:
5529 <
5530 < /* Line 1806 of yacc.c  */
5920 < #line 2272 "ircd_parser.y"
5528 >  case 396:
5529 > /* Line 1787 of yacc.c  */
5530 > #line 2106 "conf_parser.y"
5531      {
5532    if (conf_parser_ctx.pass == 2)
5533    {
5534      if (yylval.number)
5535 <      yy_aconf->flags |= CONF_FLAGS_ENCRYPTED;
5535 >      block_state.flags.value |= CONF_FLAGS_ENCRYPTED;
5536      else
5537 <      yy_aconf->flags &= ~CONF_FLAGS_ENCRYPTED;
5537 >      block_state.flags.value &= ~CONF_FLAGS_ENCRYPTED;
5538    }
5539   }
5540      break;
5541  
5542 <  case 372:
5543 <
5544 < /* Line 1806 of yacc.c  */
5935 < #line 2283 "ircd_parser.y"
5542 >  case 397:
5543 > /* Line 1787 of yacc.c  */
5544 > #line 2117 "conf_parser.y"
5545      {
5546    if (conf_parser_ctx.pass == 2)
5547 <  {
5939 <    struct CollectItem *yy_tmp;
5940 <
5941 <    yy_tmp = (struct CollectItem *)MyMalloc(sizeof(struct CollectItem));
5942 <    DupString(yy_tmp->host, yylval.string);
5943 <    DupString(yy_tmp->user, "*");
5944 <    dlinkAdd(yy_tmp, &yy_tmp->node, &hub_conf_list);
5945 <  }
5547 >    dlinkAdd(xstrdup(yylval.string), make_dlink_node(), &block_state.hub.list);
5548   }
5549      break;
5550  
5551 <  case 373:
5552 <
5553 < /* Line 1806 of yacc.c  */
5952 < #line 2296 "ircd_parser.y"
5551 >  case 398:
5552 > /* Line 1787 of yacc.c  */
5553 > #line 2123 "conf_parser.y"
5554      {
5555    if (conf_parser_ctx.pass == 2)
5556 <  {
5956 <    struct CollectItem *yy_tmp;
5957 <
5958 <    yy_tmp = (struct CollectItem *)MyMalloc(sizeof(struct CollectItem));
5959 <    DupString(yy_tmp->host, yylval.string);
5960 <    DupString(yy_tmp->user, "*");
5961 <    dlinkAdd(yy_tmp, &yy_tmp->node, &leaf_conf_list);
5962 <  }
5556 >    dlinkAdd(xstrdup(yylval.string), make_dlink_node(), &block_state.leaf.list);
5557   }
5558      break;
5559  
5560 <  case 374:
5561 <
5562 < /* Line 1806 of yacc.c  */
5969 < #line 2309 "ircd_parser.y"
5560 >  case 399:
5561 > /* Line 1787 of yacc.c  */
5562 > #line 2129 "conf_parser.y"
5563      {
5564    if (conf_parser_ctx.pass == 2)
5565 <  {
5973 <    MyFree(class_name);
5974 <    DupString(class_name, yylval.string);
5975 <  }
5565 >    strlcpy(block_state.class.buf, yylval.string, sizeof(block_state.class.buf));
5566   }
5567      break;
5568  
5569 <  case 375:
5570 <
5571 < /* Line 1806 of yacc.c  */
5982 < #line 2321 "ircd_parser.y"
5569 >  case 400:
5570 > /* Line 1787 of yacc.c  */
5571 > #line 2135 "conf_parser.y"
5572      {
5573 + #ifdef HAVE_LIBCRYPTO
5574    if (conf_parser_ctx.pass == 2)
5575 <  {
5576 <    userbuf[0] = hostbuf[0] = reasonbuf[0] = '\0';
5577 <    regex_ban = 0;
5578 <  }
5575 >    strlcpy(block_state.ciph.buf, yylval.string, sizeof(block_state.ciph.buf));
5576 > #else
5577 >  if (conf_parser_ctx.pass == 2)
5578 >    conf_error_report("Ignoring connect::ciphers -- no OpenSSL support");
5579 > #endif
5580   }
5581      break;
5582  
5583 <  case 376:
5584 <
5585 < /* Line 1806 of yacc.c  */
5995 < #line 2328 "ircd_parser.y"
5583 >  case 401:
5584 > /* Line 1787 of yacc.c  */
5585 > #line 2150 "conf_parser.y"
5586      {
5587    if (conf_parser_ctx.pass == 2)
5588 <  {
5589 <    if (userbuf[0] && hostbuf[0])
5588 >    reset_block_state();
5589 > }
5590 >    break;
5591 >
5592 >  case 402:
5593 > /* Line 1787 of yacc.c  */
5594 > #line 2154 "conf_parser.y"
5595      {
5596 <      if (regex_ban)
6002 <      {
6003 < #ifdef HAVE_LIBPCRE
6004 <        void *exp_user = NULL;
6005 <        void *exp_host = NULL;
6006 <        const char *errptr = NULL;
5596 >  struct MaskItem *conf = NULL;
5597  
5598 <        if (!(exp_user = ircd_pcre_compile(userbuf, &errptr)) ||
5599 <            !(exp_host = ircd_pcre_compile(hostbuf, &errptr)))
6010 <        {
6011 <          ilog(LOG_TYPE_IRCD, "Failed to add regular expression based K-Line: %s",
6012 <               errptr);
6013 <          break;
6014 <        }
5598 >  if (conf_parser_ctx.pass != 2)
5599 >    break;
5600  
5601 <        yy_aconf = map_to_conf(make_conf_item(RKLINE_TYPE));
5602 <        yy_aconf->regexuser = exp_user;
5603 <        yy_aconf->regexhost = exp_host;
5601 >  if (!block_state.user.buf[0] ||
5602 >      !block_state.host.buf[0])
5603 >    break;
5604  
6020        DupString(yy_aconf->user, userbuf);
6021        DupString(yy_aconf->host, hostbuf);
5605  
5606 <        if (reasonbuf[0])
5607 <          DupString(yy_aconf->reason, reasonbuf);
5608 <        else
5609 <          DupString(yy_aconf->reason, "No reason");
5606 >  if (block_state.port.value == 1)
5607 >  {
5608 > #ifdef HAVE_LIBPCRE
5609 >    void *exp_user = NULL;
5610 >    void *exp_host = NULL;
5611 >    const char *errptr = NULL;
5612 >
5613 >    if (!(exp_user = ircd_pcre_compile(block_state.user.buf, &errptr)) ||
5614 >        !(exp_host = ircd_pcre_compile(block_state.host.buf, &errptr)))
5615 >    {
5616 >      ilog(LOG_TYPE_IRCD, "Failed to add regular expression based K-Line: %s",
5617 >           errptr);
5618 >      break;
5619 >    }
5620 >
5621 >    conf = conf_make(CONF_RKLINE);
5622 >    conf->regexuser = exp_user;
5623 >    conf->regexhost = exp_host;
5624 >
5625 >    conf->user = xstrdup(block_state.user.buf);
5626 >    conf->host = xstrdup(block_state.host.buf);
5627 >
5628 >    if (block_state.rpass.buf[0])
5629 >      conf->reason = xstrdup(block_state.rpass.buf);
5630 >    else
5631 >      conf->reason = xstrdup(CONF_NOREASON);
5632   #else
5633 <        ilog(LOG_TYPE_IRCD, "Failed to add regular expression based K-Line: no PCRE support");
5634 <        break;
5633 >    ilog(LOG_TYPE_IRCD, "Failed to add regular expression based K-Line: no PCRE support");
5634 >    break;
5635   #endif
5636 <      }
5637 <      else
5638 <      {
5639 <        yy_aconf = map_to_conf(make_conf_item(KLINE_TYPE));
6035 <
6036 <        DupString(yy_aconf->user, userbuf);
6037 <        DupString(yy_aconf->host, hostbuf);
5636 >  }
5637 >  else
5638 >  {
5639 >    conf = conf_make(CONF_KLINE);
5640  
5641 <        if (reasonbuf[0])
5642 <          DupString(yy_aconf->reason, reasonbuf);
6041 <        else
6042 <          DupString(yy_aconf->reason, "No reason");
6043 <        add_conf_by_address(CONF_KILL, yy_aconf);
6044 <      }
6045 <    }
5641 >    conf->user = xstrdup(block_state.user.buf);
5642 >    conf->host = xstrdup(block_state.host.buf);
5643  
5644 <    yy_aconf = NULL;
5644 >    if (block_state.rpass.buf[0])
5645 >      conf->reason = xstrdup(block_state.rpass.buf);
5646 >    else
5647 >      conf->reason = xstrdup(CONF_NOREASON);
5648 >    add_conf_by_address(CONF_KLINE, conf);
5649    }
5650   }
5651      break;
5652  
5653 <  case 377:
5654 <
5655 < /* Line 1806 of yacc.c  */
6055 < #line 2384 "ircd_parser.y"
5653 >  case 403:
5654 > /* Line 1787 of yacc.c  */
5655 > #line 2212 "conf_parser.y"
5656      {
5657 +  if (conf_parser_ctx.pass == 2)
5658 +    block_state.port.value = 0;
5659   }
5660      break;
5661  
5662 <  case 381:
5663 <
5664 < /* Line 1806 of yacc.c  */
6063 < #line 2389 "ircd_parser.y"
5662 >  case 407:
5663 > /* Line 1787 of yacc.c  */
5664 > #line 2219 "conf_parser.y"
5665      {
5666    if (conf_parser_ctx.pass == 2)
5667 <    regex_ban = 1;
5667 >    block_state.port.value = 1;
5668   }
5669      break;
5670  
5671 <  case 388:
5672 <
5673 < /* Line 1806 of yacc.c  */
6073 < #line 2398 "ircd_parser.y"
5671 >  case 414:
5672 > /* Line 1787 of yacc.c  */
5673 > #line 2228 "conf_parser.y"
5674      {
5675 +
5676    if (conf_parser_ctx.pass == 2)
5677    {
5678      struct split_nuh_item nuh;
5679  
5680      nuh.nuhmask  = yylval.string;
5681      nuh.nickptr  = NULL;
5682 <    nuh.userptr  = userbuf;
5683 <    nuh.hostptr  = hostbuf;
5682 >    nuh.userptr  = block_state.user.buf;
5683 >    nuh.hostptr  = block_state.host.buf;
5684  
5685      nuh.nicksize = 0;
5686 <    nuh.usersize = sizeof(userbuf);
5687 <    nuh.hostsize = sizeof(hostbuf);
5686 >    nuh.usersize = sizeof(block_state.user.buf);
5687 >    nuh.hostsize = sizeof(block_state.host.buf);
5688  
5689      split_nuh(&nuh);
5690    }
5691   }
5692      break;
5693  
5694 <  case 389:
5695 <
5696 < /* Line 1806 of yacc.c  */
6096 < #line 2417 "ircd_parser.y"
5694 >  case 415:
5695 > /* Line 1787 of yacc.c  */
5696 > #line 2248 "conf_parser.y"
5697      {
5698    if (conf_parser_ctx.pass == 2)
5699 <    strlcpy(reasonbuf, yylval.string, sizeof(reasonbuf));
5699 >    strlcpy(block_state.rpass.buf, yylval.string, sizeof(block_state.rpass.buf));
5700   }
5701      break;
5702  
5703 <  case 390:
5704 <
5705 < /* Line 1806 of yacc.c  */
6106 < #line 2426 "ircd_parser.y"
5703 >  case 416:
5704 > /* Line 1787 of yacc.c  */
5705 > #line 2257 "conf_parser.y"
5706      {
5707    if (conf_parser_ctx.pass == 2)
5708 <    hostbuf[0] = reasonbuf[0] = '\0';
5708 >    reset_block_state();
5709   }
5710      break;
5711  
5712 <  case 391:
5713 <
5714 < /* Line 1806 of yacc.c  */
6116 < #line 2430 "ircd_parser.y"
5712 >  case 417:
5713 > /* Line 1787 of yacc.c  */
5714 > #line 2261 "conf_parser.y"
5715      {
5716 <  if (conf_parser_ctx.pass == 2)
5716 >  struct MaskItem *conf = NULL;
5717 >
5718 >  if (conf_parser_ctx.pass != 2)
5719 >    break;
5720 >
5721 >  if (!block_state.addr.buf[0])
5722 >    break;
5723 >
5724 >  if (parse_netmask(block_state.addr.buf, NULL, NULL) != HM_HOST)
5725    {
5726 <    if (hostbuf[0] && parse_netmask(hostbuf, NULL, NULL) != HM_HOST)
5727 <    {
6122 <      yy_aconf = map_to_conf(make_conf_item(DLINE_TYPE));
6123 <      DupString(yy_aconf->host, hostbuf);
5726 >    conf = conf_make(CONF_DLINE);
5727 >    conf->host = xstrdup(block_state.addr.buf);
5728  
5729 <      if (reasonbuf[0])
5730 <        DupString(yy_aconf->reason, reasonbuf);
5731 <      else
5732 <        DupString(yy_aconf->reason, "No reason");
5733 <      add_conf_by_address(CONF_DLINE, yy_aconf);
6130 <      yy_aconf = NULL;
6131 <    }
5729 >    if (block_state.rpass.buf[0])
5730 >      conf->reason = xstrdup(block_state.rpass.buf);
5731 >    else
5732 >      conf->reason = xstrdup(CONF_NOREASON);
5733 >    add_conf_by_address(CONF_DLINE, conf);
5734    }
5735   }
5736      break;
5737  
5738 <  case 397:
5739 <
5740 < /* Line 1806 of yacc.c  */
6139 < #line 2452 "ircd_parser.y"
5738 >  case 423:
5739 > /* Line 1787 of yacc.c  */
5740 > #line 2287 "conf_parser.y"
5741      {
5742    if (conf_parser_ctx.pass == 2)
5743 <    strlcpy(hostbuf, yylval.string, sizeof(hostbuf));
5743 >    strlcpy(block_state.addr.buf, yylval.string, sizeof(block_state.addr.buf));
5744   }
5745      break;
5746  
5747 <  case 398:
5748 <
5749 < /* Line 1806 of yacc.c  */
6149 < #line 2458 "ircd_parser.y"
5747 >  case 424:
5748 > /* Line 1787 of yacc.c  */
5749 > #line 2293 "conf_parser.y"
5750      {
5751    if (conf_parser_ctx.pass == 2)
5752 <    strlcpy(reasonbuf, yylval.string, sizeof(reasonbuf));
5752 >    strlcpy(block_state.rpass.buf, yylval.string, sizeof(block_state.rpass.buf));
5753   }
5754      break;
5755  
5756 <  case 404:
5757 <
5758 < /* Line 1806 of yacc.c  */
6159 < #line 2472 "ircd_parser.y"
5756 >  case 430:
5757 > /* Line 1787 of yacc.c  */
5758 > #line 2307 "conf_parser.y"
5759      {
5760    if (conf_parser_ctx.pass == 2)
5761    {
5762      if (yylval.string[0] && parse_netmask(yylval.string, NULL, NULL) != HM_HOST)
5763      {
5764 <      yy_aconf = map_to_conf(make_conf_item(EXEMPTDLINE_TYPE));
5765 <      DupString(yy_aconf->host, yylval.string);
5764 >      struct MaskItem *conf = conf_make(CONF_EXEMPT);
5765 >      conf->host = xstrdup(yylval.string);
5766  
5767 <      add_conf_by_address(CONF_EXEMPTDLINE, yy_aconf);
6169 <      yy_aconf = NULL;
5767 >      add_conf_by_address(CONF_EXEMPT, conf);
5768      }
5769    }
5770   }
5771      break;
5772  
5773 <  case 405:
5774 <
5775 < /* Line 1806 of yacc.c  */
6178 < #line 2490 "ircd_parser.y"
5773 >  case 431:
5774 > /* Line 1787 of yacc.c  */
5775 > #line 2324 "conf_parser.y"
5776      {
5777    if (conf_parser_ctx.pass == 2)
5778 <  {
6182 <    regex_ban = 0;
6183 <    reasonbuf[0] = gecos_name[0] = '\0';
6184 <  }
5778 >    reset_block_state();
5779   }
5780      break;
5781  
5782 <  case 406:
5783 <
5784 < /* Line 1806 of yacc.c  */
6191 < #line 2497 "ircd_parser.y"
5782 >  case 432:
5783 > /* Line 1787 of yacc.c  */
5784 > #line 2328 "conf_parser.y"
5785      {
5786 <  if (conf_parser_ctx.pass == 2)
5786 >  struct MaskItem *conf = NULL;
5787 >
5788 >  if (conf_parser_ctx.pass != 2)
5789 >    break;
5790 >
5791 >  if (!block_state.name.buf[0])
5792 >    break;
5793 >
5794 >  if (block_state.port.value == 1)
5795    {
6195    if (gecos_name[0])
6196    {
6197      if (regex_ban)
6198      {
5796   #ifdef HAVE_LIBPCRE
5797 <        void *exp_p = NULL;
5798 <        const char *errptr = NULL;
5797 >    void *exp_p = NULL;
5798 >    const char *errptr = NULL;
5799  
5800 <        if (!(exp_p = ircd_pcre_compile(gecos_name, &errptr)))
5801 <        {
5802 <          ilog(LOG_TYPE_IRCD, "Failed to add regular expression based X-Line: %s",
5803 <               errptr);
5804 <          break;
5805 <        }
5800 >    if (!(exp_p = ircd_pcre_compile(block_state.name.buf, &errptr)))
5801 >    {
5802 >      ilog(LOG_TYPE_IRCD, "Failed to add regular expression based X-Line: %s",
5803 >           errptr);
5804 >      break;
5805 >    }
5806  
5807 <        yy_conf = make_conf_item(RXLINE_TYPE);
5808 <        yy_conf->regexpname = exp_p;
5807 >    conf = conf_make(CONF_RXLINE);
5808 >    conf->regexuser = exp_p;
5809   #else
5810 <        ilog(LOG_TYPE_IRCD, "Failed to add regular expression based X-Line: no PCRE support");
5811 <        break;
5810 >    conf_error_report("Failed to add regular expression based X-Line: no PCRE support");
5811 >    break;
5812   #endif
5813 <      }
5814 <      else
5815 <        yy_conf = make_conf_item(XLINE_TYPE);
5813 >  }
5814 >  else
5815 >    conf = conf_make(CONF_XLINE);
5816  
5817 <      yy_match_item = map_to_conf(yy_conf);
6221 <      DupString(yy_conf->name, gecos_name);
5817 >  conf->name = xstrdup(block_state.name.buf);
5818  
5819 <      if (reasonbuf[0])
5820 <        DupString(yy_match_item->reason, reasonbuf);
5821 <      else
5822 <        DupString(yy_match_item->reason, "No reason");
6227 <    }
6228 <  }
5819 >  if (block_state.rpass.buf[0])
5820 >    conf->reason = xstrdup(block_state.rpass.buf);
5821 >  else
5822 >    conf->reason = xstrdup(CONF_NOREASON);
5823   }
5824      break;
5825  
5826 <  case 407:
5827 <
5828 < /* Line 1806 of yacc.c  */
6235 < #line 2537 "ircd_parser.y"
5826 >  case 433:
5827 > /* Line 1787 of yacc.c  */
5828 > #line 2369 "conf_parser.y"
5829      {
5830 +  if (conf_parser_ctx.pass == 2)
5831 +    block_state.port.value = 0;
5832   }
5833      break;
5834  
5835 <  case 411:
5836 <
5837 < /* Line 1806 of yacc.c  */
6243 < #line 2542 "ircd_parser.y"
5835 >  case 437:
5836 > /* Line 1787 of yacc.c  */
5837 > #line 2376 "conf_parser.y"
5838      {
5839    if (conf_parser_ctx.pass == 2)
5840 <    regex_ban = 1;
5840 >    block_state.port.value = 1;
5841   }
5842      break;
5843  
5844 <  case 418:
5845 <
5846 < /* Line 1806 of yacc.c  */
6253 < #line 2551 "ircd_parser.y"
5844 >  case 444:
5845 > /* Line 1787 of yacc.c  */
5846 > #line 2385 "conf_parser.y"
5847      {
5848    if (conf_parser_ctx.pass == 2)
5849 <    strlcpy(gecos_name, yylval.string, sizeof(gecos_name));
5849 >    strlcpy(block_state.name.buf, yylval.string, sizeof(block_state.name.buf));
5850   }
5851      break;
5852  
5853 <  case 419:
5854 <
5855 < /* Line 1806 of yacc.c  */
6263 < #line 2557 "ircd_parser.y"
5853 >  case 445:
5854 > /* Line 1787 of yacc.c  */
5855 > #line 2391 "conf_parser.y"
5856      {
5857    if (conf_parser_ctx.pass == 2)
5858 <    strlcpy(reasonbuf, yylval.string, sizeof(reasonbuf));
5858 >    strlcpy(block_state.rpass.buf, yylval.string, sizeof(block_state.rpass.buf));
5859   }
5860      break;
5861  
5862 <  case 475:
5863 <
5864 < /* Line 1806 of yacc.c  */
6273 < #line 2601 "ircd_parser.y"
5862 >  case 498:
5863 > /* Line 1787 of yacc.c  */
5864 > #line 2435 "conf_parser.y"
5865      {
5866    ConfigFileEntry.max_watch = (yyvsp[(3) - (4)].number);
5867   }
5868      break;
5869  
5870 <  case 476:
5871 <
5872 < /* Line 1806 of yacc.c  */
6282 < #line 2606 "ircd_parser.y"
5870 >  case 499:
5871 > /* Line 1787 of yacc.c  */
5872 > #line 2440 "conf_parser.y"
5873      {
5874 <  ConfigFileEntry.gline_min_cidr = (yyvsp[(3) - (4)].number);
5874 >  if (conf_parser_ctx.pass == 2)
5875 >    ConfigFileEntry.glines = yylval.number;
5876   }
5877      break;
5878  
5879 <  case 477:
5880 <
5881 < /* Line 1806 of yacc.c  */
6291 < #line 2611 "ircd_parser.y"
5879 >  case 500:
5880 > /* Line 1787 of yacc.c  */
5881 > #line 2446 "conf_parser.y"
5882      {
5883 <  ConfigFileEntry.gline_min_cidr6 = (yyvsp[(3) - (4)].number);
5883 >  if (conf_parser_ctx.pass == 2)
5884 >    ConfigFileEntry.gline_time = (yyvsp[(3) - (4)].number);
5885   }
5886      break;
5887  
5888 <  case 478:
5889 <
5890 < /* Line 1806 of yacc.c  */
6300 < #line 2616 "ircd_parser.y"
5888 >  case 501:
5889 > /* Line 1787 of yacc.c  */
5890 > #line 2452 "conf_parser.y"
5891      {
5892 <  ConfigFileEntry.use_whois_actually = yylval.number;
5892 >  if (conf_parser_ctx.pass == 2)
5893 >    ConfigFileEntry.gline_request_time = (yyvsp[(3) - (4)].number);
5894   }
5895      break;
5896  
5897 <  case 479:
5898 <
5899 < /* Line 1806 of yacc.c  */
6309 < #line 2621 "ircd_parser.y"
5897 >  case 502:
5898 > /* Line 1787 of yacc.c  */
5899 > #line 2458 "conf_parser.y"
5900      {
5901 <  GlobalSetOptions.rejecttime = yylval.number;
5901 >  ConfigFileEntry.gline_min_cidr = (yyvsp[(3) - (4)].number);
5902   }
5903      break;
5904  
5905 <  case 480:
5905 >  case 503:
5906 > /* Line 1787 of yacc.c  */
5907 > #line 2463 "conf_parser.y"
5908 >    {
5909 >  ConfigFileEntry.gline_min_cidr6 = (yyvsp[(3) - (4)].number);
5910 > }
5911 >    break;
5912  
5913 < /* Line 1806 of yacc.c  */
5914 < #line 2626 "ircd_parser.y"
5913 >  case 504:
5914 > /* Line 1787 of yacc.c  */
5915 > #line 2468 "conf_parser.y"
5916      {
5917    ConfigFileEntry.tkline_expire_notices = yylval.number;
5918   }
5919      break;
5920  
5921 <  case 481:
5922 <
5923 < /* Line 1806 of yacc.c  */
6327 < #line 2631 "ircd_parser.y"
5921 >  case 505:
5922 > /* Line 1787 of yacc.c  */
5923 > #line 2473 "conf_parser.y"
5924      {
5925    ConfigFileEntry.kill_chase_time_limit = (yyvsp[(3) - (4)].number);
5926   }
5927      break;
5928  
5929 <  case 482:
5930 <
5931 < /* Line 1806 of yacc.c  */
6336 < #line 2636 "ircd_parser.y"
5929 >  case 506:
5930 > /* Line 1787 of yacc.c  */
5931 > #line 2478 "conf_parser.y"
5932      {
5933    ConfigFileEntry.hide_spoof_ips = yylval.number;
5934   }
5935      break;
5936  
5937 <  case 483:
5938 <
5939 < /* Line 1806 of yacc.c  */
6345 < #line 2641 "ircd_parser.y"
5937 >  case 507:
5938 > /* Line 1787 of yacc.c  */
5939 > #line 2483 "conf_parser.y"
5940      {
5941    ConfigFileEntry.ignore_bogus_ts = yylval.number;
5942   }
5943      break;
5944  
5945 <  case 484:
5946 <
5947 < /* Line 1806 of yacc.c  */
6354 < #line 2646 "ircd_parser.y"
5945 >  case 508:
5946 > /* Line 1787 of yacc.c  */
5947 > #line 2488 "conf_parser.y"
5948      {
5949    ConfigFileEntry.disable_remote = yylval.number;
5950   }
5951      break;
5952  
5953 <  case 485:
5954 <
5955 < /* Line 1806 of yacc.c  */
6363 < #line 2651 "ircd_parser.y"
5953 >  case 509:
5954 > /* Line 1787 of yacc.c  */
5955 > #line 2493 "conf_parser.y"
5956      {
5957    ConfigFileEntry.failed_oper_notice = yylval.number;
5958   }
5959      break;
5960  
5961 <  case 486:
5962 <
5963 < /* Line 1806 of yacc.c  */
6372 < #line 2656 "ircd_parser.y"
5961 >  case 510:
5962 > /* Line 1787 of yacc.c  */
5963 > #line 2498 "conf_parser.y"
5964      {
5965    ConfigFileEntry.anti_nick_flood = yylval.number;
5966   }
5967      break;
5968  
5969 <  case 487:
5970 <
5971 < /* Line 1806 of yacc.c  */
6381 < #line 2661 "ircd_parser.y"
5969 >  case 511:
5970 > /* Line 1787 of yacc.c  */
5971 > #line 2503 "conf_parser.y"
5972      {
5973    ConfigFileEntry.max_nick_time = (yyvsp[(3) - (4)].number);
5974   }
5975      break;
5976  
5977 <  case 488:
5978 <
5979 < /* Line 1806 of yacc.c  */
6390 < #line 2666 "ircd_parser.y"
5977 >  case 512:
5978 > /* Line 1787 of yacc.c  */
5979 > #line 2508 "conf_parser.y"
5980      {
5981    ConfigFileEntry.max_nick_changes = (yyvsp[(3) - (4)].number);
5982   }
5983      break;
5984  
5985 <  case 489:
5986 <
5987 < /* Line 1806 of yacc.c  */
6399 < #line 2671 "ircd_parser.y"
5985 >  case 513:
5986 > /* Line 1787 of yacc.c  */
5987 > #line 2513 "conf_parser.y"
5988      {
5989    ConfigFileEntry.max_accept = (yyvsp[(3) - (4)].number);
5990   }
5991      break;
5992  
5993 <  case 490:
5994 <
5995 < /* Line 1806 of yacc.c  */
6408 < #line 2676 "ircd_parser.y"
5993 >  case 514:
5994 > /* Line 1787 of yacc.c  */
5995 > #line 2518 "conf_parser.y"
5996      {
5997    ConfigFileEntry.anti_spam_exit_message_time = (yyvsp[(3) - (4)].number);
5998   }
5999      break;
6000  
6001 <  case 491:
6002 <
6003 < /* Line 1806 of yacc.c  */
6417 < #line 2681 "ircd_parser.y"
6001 >  case 515:
6002 > /* Line 1787 of yacc.c  */
6003 > #line 2523 "conf_parser.y"
6004      {
6005    ConfigFileEntry.ts_warn_delta = (yyvsp[(3) - (4)].number);
6006   }
6007      break;
6008  
6009 <  case 492:
6010 <
6011 < /* Line 1806 of yacc.c  */
6426 < #line 2686 "ircd_parser.y"
6009 >  case 516:
6010 > /* Line 1787 of yacc.c  */
6011 > #line 2528 "conf_parser.y"
6012      {
6013    if (conf_parser_ctx.pass == 2)
6014      ConfigFileEntry.ts_max_delta = (yyvsp[(3) - (4)].number);
6015   }
6016      break;
6017  
6018 <  case 493:
6019 <
6020 < /* Line 1806 of yacc.c  */
6436 < #line 2692 "ircd_parser.y"
6018 >  case 517:
6019 > /* Line 1787 of yacc.c  */
6020 > #line 2534 "conf_parser.y"
6021      {
6022    if (((yyvsp[(3) - (4)].number) > 0) && conf_parser_ctx.pass == 1)
6023    {
# Line 6445 | Line 6029 | yyreduce:
6029   }
6030      break;
6031  
6032 <  case 494:
6033 <
6034 < /* Line 1806 of yacc.c  */
6451 < #line 2703 "ircd_parser.y"
6452 <    {
6453 <  ConfigFileEntry.kline_with_reason = yylval.number;
6454 < }
6455 <    break;
6456 <
6457 <  case 495:
6458 <
6459 < /* Line 1806 of yacc.c  */
6460 < #line 2708 "ircd_parser.y"
6461 <    {
6462 <  if (conf_parser_ctx.pass == 2)
6463 <  {
6464 <    MyFree(ConfigFileEntry.kline_reason);
6465 <    DupString(ConfigFileEntry.kline_reason, yylval.string);
6466 <  }
6467 < }
6468 <    break;
6469 <
6470 <  case 496:
6471 <
6472 < /* Line 1806 of yacc.c  */
6473 < #line 2717 "ircd_parser.y"
6032 >  case 518:
6033 > /* Line 1787 of yacc.c  */
6034 > #line 2545 "conf_parser.y"
6035      {
6036    ConfigFileEntry.invisible_on_connect = yylval.number;
6037   }
6038      break;
6039  
6040 <  case 497:
6041 <
6042 < /* Line 1806 of yacc.c  */
6482 < #line 2722 "ircd_parser.y"
6040 >  case 519:
6041 > /* Line 1787 of yacc.c  */
6042 > #line 2550 "conf_parser.y"
6043      {
6044    ConfigFileEntry.warn_no_nline = yylval.number;
6045   }
6046      break;
6047  
6048 <  case 498:
6049 <
6050 < /* Line 1806 of yacc.c  */
6491 < #line 2727 "ircd_parser.y"
6048 >  case 520:
6049 > /* Line 1787 of yacc.c  */
6050 > #line 2555 "conf_parser.y"
6051      {
6052    ConfigFileEntry.stats_e_disabled = yylval.number;
6053   }
6054      break;
6055  
6056 <  case 499:
6057 <
6058 < /* Line 1806 of yacc.c  */
6500 < #line 2732 "ircd_parser.y"
6056 >  case 521:
6057 > /* Line 1787 of yacc.c  */
6058 > #line 2560 "conf_parser.y"
6059      {
6060    ConfigFileEntry.stats_o_oper_only = yylval.number;
6061   }
6062      break;
6063  
6064 <  case 500:
6065 <
6066 < /* Line 1806 of yacc.c  */
6509 < #line 2737 "ircd_parser.y"
6064 >  case 522:
6065 > /* Line 1787 of yacc.c  */
6066 > #line 2565 "conf_parser.y"
6067      {
6068    ConfigFileEntry.stats_P_oper_only = yylval.number;
6069   }
6070      break;
6071  
6072 <  case 501:
6073 <
6074 < /* Line 1806 of yacc.c  */
6518 < #line 2742 "ircd_parser.y"
6072 >  case 523:
6073 > /* Line 1787 of yacc.c  */
6074 > #line 2570 "conf_parser.y"
6075      {
6076    ConfigFileEntry.stats_k_oper_only = 2 * yylval.number;
6077   }
6078      break;
6079  
6080 <  case 502:
6081 <
6082 < /* Line 1806 of yacc.c  */
6527 < #line 2745 "ircd_parser.y"
6080 >  case 524:
6081 > /* Line 1787 of yacc.c  */
6082 > #line 2573 "conf_parser.y"
6083      {
6084    ConfigFileEntry.stats_k_oper_only = 1;
6085   }
6086      break;
6087  
6088 <  case 503:
6089 <
6090 < /* Line 1806 of yacc.c  */
6536 < #line 2750 "ircd_parser.y"
6088 >  case 525:
6089 > /* Line 1787 of yacc.c  */
6090 > #line 2578 "conf_parser.y"
6091      {
6092    ConfigFileEntry.stats_i_oper_only = 2 * yylval.number;
6093   }
6094      break;
6095  
6096 <  case 504:
6097 <
6098 < /* Line 1806 of yacc.c  */
6545 < #line 2753 "ircd_parser.y"
6096 >  case 526:
6097 > /* Line 1787 of yacc.c  */
6098 > #line 2581 "conf_parser.y"
6099      {
6100    ConfigFileEntry.stats_i_oper_only = 1;
6101   }
6102      break;
6103  
6104 <  case 505:
6105 <
6106 < /* Line 1806 of yacc.c  */
6554 < #line 2758 "ircd_parser.y"
6104 >  case 527:
6105 > /* Line 1787 of yacc.c  */
6106 > #line 2586 "conf_parser.y"
6107      {
6108    ConfigFileEntry.pace_wait = (yyvsp[(3) - (4)].number);
6109   }
6110      break;
6111  
6112 <  case 506:
6113 <
6114 < /* Line 1806 of yacc.c  */
6563 < #line 2763 "ircd_parser.y"
6112 >  case 528:
6113 > /* Line 1787 of yacc.c  */
6114 > #line 2591 "conf_parser.y"
6115      {
6116    ConfigFileEntry.caller_id_wait = (yyvsp[(3) - (4)].number);
6117   }
6118      break;
6119  
6120 <  case 507:
6121 <
6122 < /* Line 1806 of yacc.c  */
6572 < #line 2768 "ircd_parser.y"
6120 >  case 529:
6121 > /* Line 1787 of yacc.c  */
6122 > #line 2596 "conf_parser.y"
6123      {
6124    ConfigFileEntry.opers_bypass_callerid = yylval.number;
6125   }
6126      break;
6127  
6128 <  case 508:
6129 <
6130 < /* Line 1806 of yacc.c  */
6581 < #line 2773 "ircd_parser.y"
6128 >  case 530:
6129 > /* Line 1787 of yacc.c  */
6130 > #line 2601 "conf_parser.y"
6131      {
6132    ConfigFileEntry.pace_wait_simple = (yyvsp[(3) - (4)].number);
6133   }
6134      break;
6135  
6136 <  case 509:
6137 <
6138 < /* Line 1806 of yacc.c  */
6590 < #line 2778 "ircd_parser.y"
6136 >  case 531:
6137 > /* Line 1787 of yacc.c  */
6138 > #line 2606 "conf_parser.y"
6139      {
6140    ConfigFileEntry.short_motd = yylval.number;
6141   }
6142      break;
6143  
6144 <  case 510:
6145 <
6146 < /* Line 1806 of yacc.c  */
6599 < #line 2783 "ircd_parser.y"
6144 >  case 532:
6145 > /* Line 1787 of yacc.c  */
6146 > #line 2611 "conf_parser.y"
6147      {
6148    ConfigFileEntry.no_oper_flood = yylval.number;
6149   }
6150      break;
6151  
6152 <  case 511:
6153 <
6154 < /* Line 1806 of yacc.c  */
6608 < #line 2788 "ircd_parser.y"
6152 >  case 533:
6153 > /* Line 1787 of yacc.c  */
6154 > #line 2616 "conf_parser.y"
6155      {
6156    ConfigFileEntry.true_no_oper_flood = yylval.number;
6157   }
6158      break;
6159  
6160 <  case 512:
6161 <
6162 < /* Line 1806 of yacc.c  */
6617 < #line 2793 "ircd_parser.y"
6160 >  case 534:
6161 > /* Line 1787 of yacc.c  */
6162 > #line 2621 "conf_parser.y"
6163      {
6164    ConfigFileEntry.oper_pass_resv = yylval.number;
6165   }
6166      break;
6167  
6168 <  case 513:
6169 <
6170 < /* Line 1806 of yacc.c  */
6626 < #line 2798 "ircd_parser.y"
6627 <    {
6628 <  if (conf_parser_ctx.pass == 2)
6629 <  {
6630 <    if (strlen(yylval.string) > LOCALE_LENGTH-2)
6631 <      yylval.string[LOCALE_LENGTH-1] = '\0';
6632 <
6633 <    set_locale(yylval.string);
6634 <  }
6635 < }
6636 <    break;
6637 <
6638 <  case 514:
6639 <
6640 < /* Line 1806 of yacc.c  */
6641 < #line 2809 "ircd_parser.y"
6168 >  case 535:
6169 > /* Line 1787 of yacc.c  */
6170 > #line 2626 "conf_parser.y"
6171      {
6172    ConfigFileEntry.dots_in_ident = (yyvsp[(3) - (4)].number);
6173   }
6174      break;
6175  
6176 <  case 515:
6177 <
6178 < /* Line 1806 of yacc.c  */
6650 < #line 2814 "ircd_parser.y"
6176 >  case 536:
6177 > /* Line 1787 of yacc.c  */
6178 > #line 2631 "conf_parser.y"
6179      {
6180    ConfigFileEntry.max_targets = (yyvsp[(3) - (4)].number);
6181   }
6182      break;
6183  
6184 <  case 516:
6185 <
6186 < /* Line 1806 of yacc.c  */
6659 < #line 2819 "ircd_parser.y"
6184 >  case 537:
6185 > /* Line 1787 of yacc.c  */
6186 > #line 2636 "conf_parser.y"
6187      {
6188    ConfigFileEntry.use_egd = yylval.number;
6189   }
6190      break;
6191  
6192 <  case 517:
6193 <
6194 < /* Line 1806 of yacc.c  */
6668 < #line 2824 "ircd_parser.y"
6192 >  case 538:
6193 > /* Line 1787 of yacc.c  */
6194 > #line 2641 "conf_parser.y"
6195      {
6196    if (conf_parser_ctx.pass == 2)
6197    {
6198      MyFree(ConfigFileEntry.egdpool_path);
6199 <    DupString(ConfigFileEntry.egdpool_path, yylval.string);
6199 >    ConfigFileEntry.egdpool_path = xstrdup(yylval.string);
6200    }
6201   }
6202      break;
6203  
6204 <  case 518:
6205 <
6206 < /* Line 1806 of yacc.c  */
6681 < #line 2833 "ircd_parser.y"
6204 >  case 539:
6205 > /* Line 1787 of yacc.c  */
6206 > #line 2650 "conf_parser.y"
6207      {
6208    if (conf_parser_ctx.pass == 2 && valid_servname(yylval.string))
6209    {
6210      MyFree(ConfigFileEntry.service_name);
6211 <    DupString(ConfigFileEntry.service_name, yylval.string);
6211 >    ConfigFileEntry.service_name = xstrdup(yylval.string);
6212    }
6213   }
6214      break;
6215  
6216 <  case 519:
6217 <
6218 < /* Line 1806 of yacc.c  */
6694 < #line 2842 "ircd_parser.y"
6216 >  case 540:
6217 > /* Line 1787 of yacc.c  */
6218 > #line 2659 "conf_parser.y"
6219      {
6220    ConfigFileEntry.ping_cookie = yylval.number;
6221   }
6222      break;
6223  
6224 <  case 520:
6225 <
6226 < /* Line 1806 of yacc.c  */
6703 < #line 2847 "ircd_parser.y"
6224 >  case 541:
6225 > /* Line 1787 of yacc.c  */
6226 > #line 2664 "conf_parser.y"
6227      {
6228    ConfigFileEntry.disable_auth = yylval.number;
6229   }
6230      break;
6231  
6232 <  case 521:
6233 <
6234 < /* Line 1806 of yacc.c  */
6712 < #line 2852 "ircd_parser.y"
6232 >  case 542:
6233 > /* Line 1787 of yacc.c  */
6234 > #line 2669 "conf_parser.y"
6235      {
6236    ConfigFileEntry.throttle_time = yylval.number;
6237   }
6238      break;
6239  
6240 <  case 522:
6241 <
6242 < /* Line 1806 of yacc.c  */
6721 < #line 2857 "ircd_parser.y"
6240 >  case 543:
6241 > /* Line 1787 of yacc.c  */
6242 > #line 2674 "conf_parser.y"
6243      {
6244    ConfigFileEntry.oper_umodes = 0;
6245   }
6246      break;
6247  
6248 <  case 526:
6249 <
6250 < /* Line 1806 of yacc.c  */
6730 < #line 2863 "ircd_parser.y"
6248 >  case 547:
6249 > /* Line 1787 of yacc.c  */
6250 > #line 2680 "conf_parser.y"
6251      {
6252    ConfigFileEntry.oper_umodes |= UMODE_BOTS;
6253   }
6254      break;
6255  
6256 <  case 527:
6257 <
6258 < /* Line 1806 of yacc.c  */
6739 < #line 2866 "ircd_parser.y"
6256 >  case 548:
6257 > /* Line 1787 of yacc.c  */
6258 > #line 2683 "conf_parser.y"
6259      {
6260    ConfigFileEntry.oper_umodes |= UMODE_CCONN;
6261   }
6262      break;
6263  
6264 <  case 528:
6265 <
6266 < /* Line 1806 of yacc.c  */
6748 < #line 2869 "ircd_parser.y"
6264 >  case 549:
6265 > /* Line 1787 of yacc.c  */
6266 > #line 2686 "conf_parser.y"
6267      {
6268    ConfigFileEntry.oper_umodes |= UMODE_CCONN_FULL;
6269   }
6270      break;
6271  
6272 <  case 529:
6273 <
6274 < /* Line 1806 of yacc.c  */
6757 < #line 2872 "ircd_parser.y"
6272 >  case 550:
6273 > /* Line 1787 of yacc.c  */
6274 > #line 2689 "conf_parser.y"
6275      {
6276    ConfigFileEntry.oper_umodes |= UMODE_DEAF;
6277   }
6278      break;
6279  
6280 <  case 530:
6281 <
6282 < /* Line 1806 of yacc.c  */
6766 < #line 2875 "ircd_parser.y"
6280 >  case 551:
6281 > /* Line 1787 of yacc.c  */
6282 > #line 2692 "conf_parser.y"
6283      {
6284    ConfigFileEntry.oper_umodes |= UMODE_DEBUG;
6285   }
6286      break;
6287  
6288 <  case 531:
6289 <
6290 < /* Line 1806 of yacc.c  */
6775 < #line 2878 "ircd_parser.y"
6288 >  case 552:
6289 > /* Line 1787 of yacc.c  */
6290 > #line 2695 "conf_parser.y"
6291      {
6292    ConfigFileEntry.oper_umodes |= UMODE_FULL;
6293   }
6294      break;
6295  
6296 <  case 532:
6297 <
6298 < /* Line 1806 of yacc.c  */
6784 < #line 2881 "ircd_parser.y"
6296 >  case 553:
6297 > /* Line 1787 of yacc.c  */
6298 > #line 2698 "conf_parser.y"
6299      {
6300    ConfigFileEntry.oper_umodes |= UMODE_HIDDEN;
6301   }
6302      break;
6303  
6304 <  case 533:
6305 <
6306 < /* Line 1806 of yacc.c  */
6793 < #line 2884 "ircd_parser.y"
6304 >  case 554:
6305 > /* Line 1787 of yacc.c  */
6306 > #line 2701 "conf_parser.y"
6307      {
6308    ConfigFileEntry.oper_umodes |= UMODE_SKILL;
6309   }
6310      break;
6311  
6312 <  case 534:
6313 <
6314 < /* Line 1806 of yacc.c  */
6802 < #line 2887 "ircd_parser.y"
6312 >  case 555:
6313 > /* Line 1787 of yacc.c  */
6314 > #line 2704 "conf_parser.y"
6315      {
6316    ConfigFileEntry.oper_umodes |= UMODE_NCHANGE;
6317   }
6318      break;
6319  
6320 <  case 535:
6321 <
6322 < /* Line 1806 of yacc.c  */
6811 < #line 2890 "ircd_parser.y"
6320 >  case 556:
6321 > /* Line 1787 of yacc.c  */
6322 > #line 2707 "conf_parser.y"
6323      {
6324    ConfigFileEntry.oper_umodes |= UMODE_REJ;
6325   }
6326      break;
6327  
6328 <  case 536:
6329 <
6330 < /* Line 1806 of yacc.c  */
6820 < #line 2893 "ircd_parser.y"
6328 >  case 557:
6329 > /* Line 1787 of yacc.c  */
6330 > #line 2710 "conf_parser.y"
6331      {
6332    ConfigFileEntry.oper_umodes |= UMODE_UNAUTH;
6333   }
6334      break;
6335  
6336 <  case 537:
6337 <
6338 < /* Line 1806 of yacc.c  */
6829 < #line 2896 "ircd_parser.y"
6336 >  case 558:
6337 > /* Line 1787 of yacc.c  */
6338 > #line 2713 "conf_parser.y"
6339      {
6340    ConfigFileEntry.oper_umodes |= UMODE_SPY;
6341   }
6342      break;
6343  
6344 <  case 538:
6345 <
6346 < /* Line 1806 of yacc.c  */
6838 < #line 2899 "ircd_parser.y"
6344 >  case 559:
6345 > /* Line 1787 of yacc.c  */
6346 > #line 2716 "conf_parser.y"
6347      {
6348    ConfigFileEntry.oper_umodes |= UMODE_EXTERNAL;
6349   }
6350      break;
6351  
6352 <  case 539:
6353 <
6354 < /* Line 1806 of yacc.c  */
6847 < #line 2902 "ircd_parser.y"
6352 >  case 560:
6353 > /* Line 1787 of yacc.c  */
6354 > #line 2719 "conf_parser.y"
6355      {
6356    ConfigFileEntry.oper_umodes |= UMODE_OPERWALL;
6357   }
6358      break;
6359  
6360 <  case 540:
6361 <
6362 < /* Line 1806 of yacc.c  */
6856 < #line 2905 "ircd_parser.y"
6360 >  case 561:
6361 > /* Line 1787 of yacc.c  */
6362 > #line 2722 "conf_parser.y"
6363      {
6364    ConfigFileEntry.oper_umodes |= UMODE_SERVNOTICE;
6365   }
6366      break;
6367  
6368 <  case 541:
6369 <
6370 < /* Line 1806 of yacc.c  */
6865 < #line 2908 "ircd_parser.y"
6368 >  case 562:
6369 > /* Line 1787 of yacc.c  */
6370 > #line 2725 "conf_parser.y"
6371      {
6372    ConfigFileEntry.oper_umodes |= UMODE_INVISIBLE;
6373   }
6374      break;
6375  
6376 <  case 542:
6377 <
6378 < /* Line 1806 of yacc.c  */
6874 < #line 2911 "ircd_parser.y"
6376 >  case 563:
6377 > /* Line 1787 of yacc.c  */
6378 > #line 2728 "conf_parser.y"
6379      {
6380    ConfigFileEntry.oper_umodes |= UMODE_WALLOP;
6381   }
6382      break;
6383  
6384 <  case 543:
6385 <
6386 < /* Line 1806 of yacc.c  */
6883 < #line 2914 "ircd_parser.y"
6384 >  case 564:
6385 > /* Line 1787 of yacc.c  */
6386 > #line 2731 "conf_parser.y"
6387      {
6388    ConfigFileEntry.oper_umodes |= UMODE_SOFTCALLERID;
6389   }
6390      break;
6391  
6392 <  case 544:
6393 <
6394 < /* Line 1806 of yacc.c  */
6892 < #line 2917 "ircd_parser.y"
6392 >  case 565:
6393 > /* Line 1787 of yacc.c  */
6394 > #line 2734 "conf_parser.y"
6395      {
6396    ConfigFileEntry.oper_umodes |= UMODE_CALLERID;
6397   }
6398      break;
6399  
6400 <  case 545:
6401 <
6402 < /* Line 1806 of yacc.c  */
6901 < #line 2920 "ircd_parser.y"
6400 >  case 566:
6401 > /* Line 1787 of yacc.c  */
6402 > #line 2737 "conf_parser.y"
6403      {
6404    ConfigFileEntry.oper_umodes |= UMODE_LOCOPS;
6405   }
6406      break;
6407  
6408 <  case 546:
6409 <
6410 < /* Line 1806 of yacc.c  */
6910 < #line 2925 "ircd_parser.y"
6408 >  case 567:
6409 > /* Line 1787 of yacc.c  */
6410 > #line 2742 "conf_parser.y"
6411      {
6412    ConfigFileEntry.oper_only_umodes = 0;
6413   }
6414      break;
6415  
6416 <  case 550:
6417 <
6418 < /* Line 1806 of yacc.c  */
6919 < #line 2931 "ircd_parser.y"
6416 >  case 571:
6417 > /* Line 1787 of yacc.c  */
6418 > #line 2748 "conf_parser.y"
6419      {
6420    ConfigFileEntry.oper_only_umodes |= UMODE_BOTS;
6421   }
6422      break;
6423  
6424 <  case 551:
6425 <
6426 < /* Line 1806 of yacc.c  */
6928 < #line 2934 "ircd_parser.y"
6424 >  case 572:
6425 > /* Line 1787 of yacc.c  */
6426 > #line 2751 "conf_parser.y"
6427      {
6428    ConfigFileEntry.oper_only_umodes |= UMODE_CCONN;
6429   }
6430      break;
6431  
6432 <  case 552:
6433 <
6434 < /* Line 1806 of yacc.c  */
6937 < #line 2937 "ircd_parser.y"
6432 >  case 573:
6433 > /* Line 1787 of yacc.c  */
6434 > #line 2754 "conf_parser.y"
6435      {
6436    ConfigFileEntry.oper_only_umodes |= UMODE_CCONN_FULL;
6437   }
6438      break;
6439  
6440 <  case 553:
6441 <
6442 < /* Line 1806 of yacc.c  */
6946 < #line 2940 "ircd_parser.y"
6440 >  case 574:
6441 > /* Line 1787 of yacc.c  */
6442 > #line 2757 "conf_parser.y"
6443      {
6444    ConfigFileEntry.oper_only_umodes |= UMODE_DEAF;
6445   }
6446      break;
6447  
6448 <  case 554:
6449 <
6450 < /* Line 1806 of yacc.c  */
6955 < #line 2943 "ircd_parser.y"
6448 >  case 575:
6449 > /* Line 1787 of yacc.c  */
6450 > #line 2760 "conf_parser.y"
6451      {
6452    ConfigFileEntry.oper_only_umodes |= UMODE_DEBUG;
6453   }
6454      break;
6455  
6456 <  case 555:
6457 <
6458 < /* Line 1806 of yacc.c  */
6964 < #line 2946 "ircd_parser.y"
6456 >  case 576:
6457 > /* Line 1787 of yacc.c  */
6458 > #line 2763 "conf_parser.y"
6459      {
6460    ConfigFileEntry.oper_only_umodes |= UMODE_FULL;
6461   }
6462      break;
6463  
6464 <  case 556:
6465 <
6466 < /* Line 1806 of yacc.c  */
6973 < #line 2949 "ircd_parser.y"
6464 >  case 577:
6465 > /* Line 1787 of yacc.c  */
6466 > #line 2766 "conf_parser.y"
6467      {
6468    ConfigFileEntry.oper_only_umodes |= UMODE_SKILL;
6469   }
6470      break;
6471  
6472 <  case 557:
6473 <
6474 < /* Line 1806 of yacc.c  */
6982 < #line 2952 "ircd_parser.y"
6472 >  case 578:
6473 > /* Line 1787 of yacc.c  */
6474 > #line 2769 "conf_parser.y"
6475      {
6476    ConfigFileEntry.oper_only_umodes |= UMODE_HIDDEN;
6477   }
6478      break;
6479  
6480 <  case 558:
6481 <
6482 < /* Line 1806 of yacc.c  */
6991 < #line 2955 "ircd_parser.y"
6480 >  case 579:
6481 > /* Line 1787 of yacc.c  */
6482 > #line 2772 "conf_parser.y"
6483      {
6484    ConfigFileEntry.oper_only_umodes |= UMODE_NCHANGE;
6485   }
6486      break;
6487  
6488 <  case 559:
6489 <
6490 < /* Line 1806 of yacc.c  */
7000 < #line 2958 "ircd_parser.y"
6488 >  case 580:
6489 > /* Line 1787 of yacc.c  */
6490 > #line 2775 "conf_parser.y"
6491      {
6492    ConfigFileEntry.oper_only_umodes |= UMODE_REJ;
6493   }
6494      break;
6495  
6496 <  case 560:
6497 <
6498 < /* Line 1806 of yacc.c  */
7009 < #line 2961 "ircd_parser.y"
6496 >  case 581:
6497 > /* Line 1787 of yacc.c  */
6498 > #line 2778 "conf_parser.y"
6499      {
6500    ConfigFileEntry.oper_only_umodes |= UMODE_UNAUTH;
6501   }
6502      break;
6503  
6504 <  case 561:
6505 <
6506 < /* Line 1806 of yacc.c  */
7018 < #line 2964 "ircd_parser.y"
6504 >  case 582:
6505 > /* Line 1787 of yacc.c  */
6506 > #line 2781 "conf_parser.y"
6507      {
6508    ConfigFileEntry.oper_only_umodes |= UMODE_SPY;
6509   }
6510      break;
6511  
6512 <  case 562:
6513 <
6514 < /* Line 1806 of yacc.c  */
7027 < #line 2967 "ircd_parser.y"
6512 >  case 583:
6513 > /* Line 1787 of yacc.c  */
6514 > #line 2784 "conf_parser.y"
6515      {
6516    ConfigFileEntry.oper_only_umodes |= UMODE_EXTERNAL;
6517   }
6518      break;
6519  
6520 <  case 563:
6521 <
6522 < /* Line 1806 of yacc.c  */
7036 < #line 2970 "ircd_parser.y"
6520 >  case 584:
6521 > /* Line 1787 of yacc.c  */
6522 > #line 2787 "conf_parser.y"
6523      {
6524    ConfigFileEntry.oper_only_umodes |= UMODE_OPERWALL;
6525   }
6526      break;
6527  
6528 <  case 564:
6529 <
6530 < /* Line 1806 of yacc.c  */
7045 < #line 2973 "ircd_parser.y"
6528 >  case 585:
6529 > /* Line 1787 of yacc.c  */
6530 > #line 2790 "conf_parser.y"
6531      {
6532    ConfigFileEntry.oper_only_umodes |= UMODE_SERVNOTICE;
6533   }
6534      break;
6535  
6536 <  case 565:
6537 <
6538 < /* Line 1806 of yacc.c  */
7054 < #line 2976 "ircd_parser.y"
6536 >  case 586:
6537 > /* Line 1787 of yacc.c  */
6538 > #line 2793 "conf_parser.y"
6539      {
6540    ConfigFileEntry.oper_only_umodes |= UMODE_INVISIBLE;
6541   }
6542      break;
6543  
6544 <  case 566:
6545 <
6546 < /* Line 1806 of yacc.c  */
7063 < #line 2979 "ircd_parser.y"
6544 >  case 587:
6545 > /* Line 1787 of yacc.c  */
6546 > #line 2796 "conf_parser.y"
6547      {
6548    ConfigFileEntry.oper_only_umodes |= UMODE_WALLOP;
6549   }
6550      break;
6551  
6552 <  case 567:
6553 <
6554 < /* Line 1806 of yacc.c  */
7072 < #line 2982 "ircd_parser.y"
6552 >  case 588:
6553 > /* Line 1787 of yacc.c  */
6554 > #line 2799 "conf_parser.y"
6555      {
6556    ConfigFileEntry.oper_only_umodes |= UMODE_SOFTCALLERID;
6557   }
6558      break;
6559  
6560 <  case 568:
6561 <
6562 < /* Line 1806 of yacc.c  */
7081 < #line 2985 "ircd_parser.y"
6560 >  case 589:
6561 > /* Line 1787 of yacc.c  */
6562 > #line 2802 "conf_parser.y"
6563      {
6564    ConfigFileEntry.oper_only_umodes |= UMODE_CALLERID;
6565   }
6566      break;
6567  
6568 <  case 569:
6569 <
6570 < /* Line 1806 of yacc.c  */
7090 < #line 2988 "ircd_parser.y"
6568 >  case 590:
6569 > /* Line 1787 of yacc.c  */
6570 > #line 2805 "conf_parser.y"
6571      {
6572    ConfigFileEntry.oper_only_umodes |= UMODE_LOCOPS;
6573   }
6574      break;
6575  
7096  case 570:
7097
7098 /* Line 1806 of yacc.c  */
7099 #line 2993 "ircd_parser.y"
7100    {
7101  ConfigFileEntry.min_nonwildcard = (yyvsp[(3) - (4)].number);
7102 }
7103    break;
7104
7105  case 571:
7106
7107 /* Line 1806 of yacc.c  */
7108 #line 2998 "ircd_parser.y"
7109    {
7110  ConfigFileEntry.min_nonwildcard_simple = (yyvsp[(3) - (4)].number);
7111 }
7112    break;
7113
7114  case 572:
7115
7116 /* Line 1806 of yacc.c  */
7117 #line 3003 "ircd_parser.y"
7118    {
7119  ConfigFileEntry.default_floodcount = (yyvsp[(3) - (4)].number);
7120 }
7121    break;
7122
7123  case 573:
7124
7125 /* Line 1806 of yacc.c  */
7126 #line 3008 "ircd_parser.y"
7127    {
7128  ConfigFileEntry.client_flood = (yyvsp[(3) - (4)].number);
7129 }
7130    break;
7131
7132  case 574:
7133
7134 /* Line 1806 of yacc.c  */
7135 #line 3017 "ircd_parser.y"
7136    {
7137  if (conf_parser_ctx.pass == 2)
7138  {
7139    yy_conf = make_conf_item(GDENY_TYPE);
7140    yy_aconf = map_to_conf(yy_conf);
7141  }
7142 }
7143    break;
7144
7145  case 575:
7146
7147 /* Line 1806 of yacc.c  */
7148 #line 3024 "ircd_parser.y"
7149    {
7150  if (conf_parser_ctx.pass == 2)
7151  {
7152    /*
7153     * since we re-allocate yy_conf/yy_aconf after the end of action=, at the
7154     * end we will have one extra, so we should free it.
7155     */
7156    if (yy_conf->name == NULL || yy_aconf->user == NULL)
7157    {
7158      delete_conf_item(yy_conf);
7159      yy_conf = NULL;
7160      yy_aconf = NULL;
7161    }
7162  }
7163 }
7164    break;
7165
7166  case 585:
7167
7168 /* Line 1806 of yacc.c  */
7169 #line 3050 "ircd_parser.y"
7170    {
7171  if (conf_parser_ctx.pass == 2)
7172    ConfigFileEntry.glines = yylval.number;
7173 }
7174    break;
7175
7176  case 586:
7177
7178 /* Line 1806 of yacc.c  */
7179 #line 3056 "ircd_parser.y"
7180    {
7181  if (conf_parser_ctx.pass == 2)
7182    ConfigFileEntry.gline_time = (yyvsp[(3) - (4)].number);
7183 }
7184    break;
7185
7186  case 587:
7187
7188 /* Line 1806 of yacc.c  */
7189 #line 3062 "ircd_parser.y"
7190    {
7191  if (conf_parser_ctx.pass == 2)
7192    ConfigFileEntry.gline_logging = 0;
7193 }
7194    break;
7195
6576    case 591:
6577 <
6578 < /* Line 1806 of yacc.c  */
7199 < #line 3068 "ircd_parser.y"
6577 > /* Line 1787 of yacc.c  */
6578 > #line 2808 "conf_parser.y"
6579      {
6580 <  if (conf_parser_ctx.pass == 2)
7202 <    ConfigFileEntry.gline_logging |= GDENY_REJECT;
6580 >  ConfigFileEntry.oper_only_umodes |= UMODE_REGONLY;
6581   }
6582      break;
6583  
6584    case 592:
6585 <
6586 < /* Line 1806 of yacc.c  */
7209 < #line 3072 "ircd_parser.y"
6585 > /* Line 1787 of yacc.c  */
6586 > #line 2813 "conf_parser.y"
6587      {
6588 <  if (conf_parser_ctx.pass == 2)
7212 <    ConfigFileEntry.gline_logging |= GDENY_BLOCK;
6588 >  ConfigFileEntry.min_nonwildcard = (yyvsp[(3) - (4)].number);
6589   }
6590      break;
6591  
6592    case 593:
6593 <
6594 < /* Line 1806 of yacc.c  */
7219 < #line 3078 "ircd_parser.y"
6593 > /* Line 1787 of yacc.c  */
6594 > #line 2818 "conf_parser.y"
6595      {
6596 <  if (conf_parser_ctx.pass == 2)
7222 <  {
7223 <    struct split_nuh_item nuh;
7224 <
7225 <    nuh.nuhmask  = yylval.string;
7226 <    nuh.nickptr  = NULL;
7227 <    nuh.userptr  = userbuf;
7228 <    nuh.hostptr  = hostbuf;
7229 <
7230 <    nuh.nicksize = 0;
7231 <    nuh.usersize = sizeof(userbuf);
7232 <    nuh.hostsize = sizeof(hostbuf);
7233 <
7234 <    split_nuh(&nuh);
7235 <
7236 <    if (yy_aconf->user == NULL)
7237 <    {
7238 <      DupString(yy_aconf->user, userbuf);
7239 <      DupString(yy_aconf->host, hostbuf);
7240 <    }
7241 <    else
7242 <    {
7243 <      struct CollectItem *yy_tmp = MyMalloc(sizeof(struct CollectItem));
7244 <
7245 <      DupString(yy_tmp->user, userbuf);
7246 <      DupString(yy_tmp->host, hostbuf);
7247 <
7248 <      dlinkAdd(yy_tmp, &yy_tmp->node, &col_conf_list);
7249 <    }
7250 <  }
6596 >  ConfigFileEntry.min_nonwildcard_simple = (yyvsp[(3) - (4)].number);
6597   }
6598      break;
6599  
6600    case 594:
6601 <
6602 < /* Line 1806 of yacc.c  */
7257 < #line 3112 "ircd_parser.y"
7258 <    {
7259 <  if (conf_parser_ctx.pass == 2)  
7260 <  {
7261 <    MyFree(yy_conf->name);
7262 <    DupString(yy_conf->name, yylval.string);
7263 <  }
7264 < }
7265 <    break;
7266 <
7267 <  case 595:
7268 <
7269 < /* Line 1806 of yacc.c  */
7270 < #line 3121 "ircd_parser.y"
7271 <    {
7272 <  if (conf_parser_ctx.pass == 2)
7273 <    yy_aconf->flags = 0;
7274 < }
7275 <    break;
7276 <
7277 <  case 596:
7278 <
7279 < /* Line 1806 of yacc.c  */
7280 < #line 3125 "ircd_parser.y"
7281 <    {
7282 <  if (conf_parser_ctx.pass == 2)
7283 <  {
7284 <    struct CollectItem *yy_tmp = NULL;
7285 <    dlink_node *ptr, *next_ptr;
7286 <
7287 <    DLINK_FOREACH_SAFE(ptr, next_ptr, col_conf_list.head)
7288 <    {
7289 <      struct AccessItem *new_aconf;
7290 <      struct ConfItem *new_conf;
7291 <
7292 <      yy_tmp = ptr->data;
7293 <      new_conf = make_conf_item(GDENY_TYPE);
7294 <      new_aconf = map_to_conf(new_conf);
7295 <
7296 <      new_aconf->flags = yy_aconf->flags;
7297 <
7298 <      if (yy_conf->name != NULL)
7299 <        DupString(new_conf->name, yy_conf->name);
7300 <      else
7301 <        DupString(new_conf->name, "*");
7302 <      if (yy_aconf->user != NULL)
7303 <         DupString(new_aconf->user, yy_tmp->user);
7304 <      else  
7305 <        DupString(new_aconf->user, "*");
7306 <      if (yy_aconf->host != NULL)
7307 <        DupString(new_aconf->host, yy_tmp->host);
7308 <      else
7309 <        DupString(new_aconf->host, "*");
7310 <
7311 <      dlinkDelete(&yy_tmp->node, &col_conf_list);
7312 <    }
7313 <
7314 <    /*
7315 <     * In case someone has fed us with more than one action= after user/name
7316 <     * which would leak memory  -Michael
7317 <     */
7318 <    if (yy_conf->name == NULL || yy_aconf->user == NULL)
7319 <      delete_conf_item(yy_conf);
7320 <
7321 <    yy_conf = make_conf_item(GDENY_TYPE);
7322 <    yy_aconf = map_to_conf(yy_conf);
7323 <  }
7324 < }
7325 <    break;
7326 <
7327 <  case 599:
7328 <
7329 < /* Line 1806 of yacc.c  */
7330 < #line 3172 "ircd_parser.y"
6601 > /* Line 1787 of yacc.c  */
6602 > #line 2823 "conf_parser.y"
6603      {
6604 <  if (conf_parser_ctx.pass == 2)
7333 <    yy_aconf->flags |= GDENY_REJECT;
7334 < }
7335 <    break;
7336 <
7337 <  case 600:
7338 <
7339 < /* Line 1806 of yacc.c  */
7340 < #line 3176 "ircd_parser.y"
7341 <    {
7342 <  if (conf_parser_ctx.pass == 2)
7343 <    yy_aconf->flags |= GDENY_BLOCK;
6604 >  ConfigFileEntry.default_floodcount = (yyvsp[(3) - (4)].number);
6605   }
6606      break;
6607  
6608 <  case 623:
6609 <
6610 < /* Line 1806 of yacc.c  */
7350 < #line 3200 "ircd_parser.y"
6608 >  case 612:
6609 > /* Line 1787 of yacc.c  */
6610 > #line 2846 "conf_parser.y"
6611      {
6612    ConfigChannel.disable_fake_channels = yylval.number;
6613   }
6614      break;
6615  
6616 <  case 624:
6617 <
6618 < /* Line 1806 of yacc.c  */
7359 < #line 3205 "ircd_parser.y"
7360 <    {
7361 <  ConfigChannel.restrict_channels = yylval.number;
7362 < }
7363 <    break;
7364 <
7365 <  case 625:
7366 <
7367 < /* Line 1806 of yacc.c  */
7368 < #line 3210 "ircd_parser.y"
7369 <    {
7370 <  ConfigChannel.disable_local_channels = yylval.number;
7371 < }
7372 <    break;
7373 <
7374 <  case 626:
7375 <
7376 < /* Line 1806 of yacc.c  */
7377 < #line 3215 "ircd_parser.y"
7378 <    {
7379 <  ConfigChannel.use_except = yylval.number;
7380 < }
7381 <    break;
7382 <
7383 <  case 627:
7384 <
7385 < /* Line 1806 of yacc.c  */
7386 < #line 3220 "ircd_parser.y"
7387 <    {
7388 <  ConfigChannel.use_invex = yylval.number;
7389 < }
7390 <    break;
7391 <
7392 <  case 628:
7393 <
7394 < /* Line 1806 of yacc.c  */
7395 < #line 3225 "ircd_parser.y"
7396 <    {
7397 <  ConfigChannel.use_knock = yylval.number;
7398 < }
7399 <    break;
7400 <
7401 <  case 629:
7402 <
7403 < /* Line 1806 of yacc.c  */
7404 < #line 3230 "ircd_parser.y"
6616 >  case 613:
6617 > /* Line 1787 of yacc.c  */
6618 > #line 2851 "conf_parser.y"
6619      {
6620    ConfigChannel.knock_delay = (yyvsp[(3) - (4)].number);
6621   }
6622      break;
6623  
6624 <  case 630:
6625 <
6626 < /* Line 1806 of yacc.c  */
7413 < #line 3235 "ircd_parser.y"
6624 >  case 614:
6625 > /* Line 1787 of yacc.c  */
6626 > #line 2856 "conf_parser.y"
6627      {
6628    ConfigChannel.knock_delay_channel = (yyvsp[(3) - (4)].number);
6629   }
6630      break;
6631  
6632 <  case 631:
6633 <
6634 < /* Line 1806 of yacc.c  */
7422 < #line 3240 "ircd_parser.y"
6632 >  case 615:
6633 > /* Line 1787 of yacc.c  */
6634 > #line 2861 "conf_parser.y"
6635      {
6636    ConfigChannel.max_chans_per_user = (yyvsp[(3) - (4)].number);
6637   }
6638      break;
6639  
6640 <  case 632:
6640 >  case 616:
6641 > /* Line 1787 of yacc.c  */
6642 > #line 2866 "conf_parser.y"
6643 >    {
6644 >  ConfigChannel.max_chans_per_oper = (yyvsp[(3) - (4)].number);
6645 > }
6646 >    break;
6647  
6648 < /* Line 1806 of yacc.c  */
6649 < #line 3245 "ircd_parser.y"
6648 >  case 617:
6649 > /* Line 1787 of yacc.c  */
6650 > #line 2871 "conf_parser.y"
6651      {
6652    ConfigChannel.quiet_on_ban = yylval.number;
6653   }
6654      break;
6655  
6656 <  case 633:
6657 <
6658 < /* Line 1806 of yacc.c  */
7440 < #line 3250 "ircd_parser.y"
6656 >  case 618:
6657 > /* Line 1787 of yacc.c  */
6658 > #line 2876 "conf_parser.y"
6659      {
6660    ConfigChannel.max_bans = (yyvsp[(3) - (4)].number);
6661   }
6662      break;
6663  
6664 <  case 634:
6665 <
6666 < /* Line 1806 of yacc.c  */
7449 < #line 3255 "ircd_parser.y"
6664 >  case 619:
6665 > /* Line 1787 of yacc.c  */
6666 > #line 2881 "conf_parser.y"
6667      {
6668    ConfigChannel.default_split_user_count = (yyvsp[(3) - (4)].number);
6669   }
6670      break;
6671  
6672 <  case 635:
6673 <
6674 < /* Line 1806 of yacc.c  */
7458 < #line 3260 "ircd_parser.y"
6672 >  case 620:
6673 > /* Line 1787 of yacc.c  */
6674 > #line 2886 "conf_parser.y"
6675      {
6676    ConfigChannel.default_split_server_count = (yyvsp[(3) - (4)].number);
6677   }
6678      break;
6679  
6680 <  case 636:
6681 <
6682 < /* Line 1806 of yacc.c  */
7467 < #line 3265 "ircd_parser.y"
6680 >  case 621:
6681 > /* Line 1787 of yacc.c  */
6682 > #line 2891 "conf_parser.y"
6683      {
6684    ConfigChannel.no_create_on_split = yylval.number;
6685   }
6686      break;
6687  
6688 <  case 637:
6689 <
6690 < /* Line 1806 of yacc.c  */
7476 < #line 3270 "ircd_parser.y"
6688 >  case 622:
6689 > /* Line 1787 of yacc.c  */
6690 > #line 2896 "conf_parser.y"
6691      {
6692    ConfigChannel.no_join_on_split = yylval.number;
6693   }
6694      break;
6695  
6696 <  case 638:
6697 <
6698 < /* Line 1806 of yacc.c  */
7485 < #line 3275 "ircd_parser.y"
7486 <    {
7487 <  ConfigChannel.burst_topicwho = yylval.number;
7488 < }
7489 <    break;
7490 <
7491 <  case 639:
7492 <
7493 < /* Line 1806 of yacc.c  */
7494 < #line 3280 "ircd_parser.y"
6696 >  case 623:
6697 > /* Line 1787 of yacc.c  */
6698 > #line 2901 "conf_parser.y"
6699      {
6700    GlobalSetOptions.joinfloodcount = yylval.number;
6701   }
6702      break;
6703  
6704 <  case 640:
6705 <
6706 < /* Line 1806 of yacc.c  */
7503 < #line 3285 "ircd_parser.y"
6704 >  case 624:
6705 > /* Line 1787 of yacc.c  */
6706 > #line 2906 "conf_parser.y"
6707      {
6708    GlobalSetOptions.joinfloodtime = yylval.number;
6709   }
6710      break;
6711  
6712 <  case 652:
6713 <
6714 < /* Line 1806 of yacc.c  */
7512 < #line 3304 "ircd_parser.y"
6712 >  case 636:
6713 > /* Line 1787 of yacc.c  */
6714 > #line 2925 "conf_parser.y"
6715      {
6716    if (conf_parser_ctx.pass == 2)
6717      ConfigServerHide.flatten_links = yylval.number;
6718   }
6719      break;
6720  
6721 <  case 653:
6722 <
6723 < /* Line 1806 of yacc.c  */
7522 < #line 3310 "ircd_parser.y"
6721 >  case 637:
6722 > /* Line 1787 of yacc.c  */
6723 > #line 2931 "conf_parser.y"
6724      {
6725    if (conf_parser_ctx.pass == 2)
6726      ConfigServerHide.hide_servers = yylval.number;
6727   }
6728      break;
6729  
6730 <  case 654:
6730 >  case 638:
6731 > /* Line 1787 of yacc.c  */
6732 > #line 2937 "conf_parser.y"
6733 >    {
6734 >  if (conf_parser_ctx.pass == 2)
6735 >    ConfigServerHide.hide_services = yylval.number;
6736 > }
6737 >    break;
6738  
6739 < /* Line 1806 of yacc.c  */
6740 < #line 3316 "ircd_parser.y"
6739 >  case 639:
6740 > /* Line 1787 of yacc.c  */
6741 > #line 2943 "conf_parser.y"
6742      {
6743    if (conf_parser_ctx.pass == 2)
6744    {
6745      MyFree(ConfigServerHide.hidden_name);
6746 <    DupString(ConfigServerHide.hidden_name, yylval.string);
6746 >    ConfigServerHide.hidden_name = xstrdup(yylval.string);
6747    }
6748   }
6749      break;
6750  
6751 <  case 655:
6752 <
6753 < /* Line 1806 of yacc.c  */
7545 < #line 3325 "ircd_parser.y"
6751 >  case 640:
6752 > /* Line 1787 of yacc.c  */
6753 > #line 2952 "conf_parser.y"
6754      {
6755    if (conf_parser_ctx.pass == 2)
6756    {
# Line 7557 | Line 6765 | yyreduce:
6765   }
6766      break;
6767  
6768 <  case 656:
6769 <
6770 < /* Line 1806 of yacc.c  */
7563 < #line 3339 "ircd_parser.y"
6768 >  case 641:
6769 > /* Line 1787 of yacc.c  */
6770 > #line 2966 "conf_parser.y"
6771      {
6772    if (conf_parser_ctx.pass == 2)
6773      ConfigServerHide.hidden = yylval.number;
6774   }
6775      break;
6776  
6777 <  case 657:
6778 <
6779 < /* Line 1806 of yacc.c  */
7573 < #line 3345 "ircd_parser.y"
7574 <    {
7575 <  if (conf_parser_ctx.pass == 2)
7576 <    ConfigServerHide.disable_hidden = yylval.number;
7577 < }
7578 <    break;
7579 <
7580 <  case 658:
7581 <
7582 < /* Line 1806 of yacc.c  */
7583 < #line 3351 "ircd_parser.y"
6777 >  case 642:
6778 > /* Line 1787 of yacc.c  */
6779 > #line 2972 "conf_parser.y"
6780      {
6781    if (conf_parser_ctx.pass == 2)
6782      ConfigServerHide.hide_server_ips = yylval.number;
# Line 7588 | Line 6784 | yyreduce:
6784      break;
6785  
6786  
6787 <
6788 < /* Line 1806 of yacc.c  */
7593 < #line 7594 "ircd_parser.c"
6787 > /* Line 1787 of yacc.c  */
6788 > #line 6789 "conf_parser.c"
6789        default: break;
6790      }
6791    /* User semantic actions sometimes alter yychar, and that requires
# Line 7753 | Line 6948 | yyerrlab1:
6948        YY_STACK_PRINT (yyss, yyssp);
6949      }
6950  
6951 +  YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
6952    *++yyvsp = yylval;
6953 +  YY_IGNORE_MAYBE_UNINITIALIZED_END
6954  
6955  
6956    /* Shift the error token.  */
# Line 7777 | Line 6974 | yyabortlab:
6974    yyresult = 1;
6975    goto yyreturn;
6976  
6977 < #if !defined(yyoverflow) || YYERROR_VERBOSE
6977 > #if !defined yyoverflow || YYERROR_VERBOSE
6978   /*-------------------------------------------------.
6979   | yyexhaustedlab -- memory exhaustion comes here.  |
6980   `-------------------------------------------------*/
# Line 7819 | Line 7016 | yyreturn:
7016   }
7017  
7018  
7822

Comparing:
ircd-hybrid-8/src/ircd_parser.c (property svn:keywords), Revision 1302 by michael, Wed Mar 21 17:48:54 2012 UTC vs.
ircd-hybrid/trunk/src/conf_parser.c (property svn:keywords), Revision 1904 by michael, Sat Apr 27 21:16:22 2013 UTC

# Line 0 | Line 1
1 + Id Revision

Diff Legend

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