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

Comparing:
ircd-hybrid-7.2/src/ircd_parser.c (file contents), Revision 1009 by michael, Sun Sep 13 15:02:30 2009 UTC vs.
ircd-hybrid/trunk/src/conf_parser.c (file contents), Revision 4114 by michael, Tue Jul 1 16:47:15 2014 UTC

# Line 1 | Line 1
1 + /* A Bison parser, made by GNU Bison 3.0.2.  */
2  
3 < /* A Bison parser, made by GNU Bison 2.4.1.  */
3 > /* Bison implementation for Yacc-like parsers in C
4 >
5 >   Copyright (C) 1984, 1989-1990, 2000-2013 Free Software Foundation, Inc.
6  
4 /* Skeleton implementation for Bison's Yacc-like parsers in C
5  
6      Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002, 2003, 2004, 2005, 2006
7   Free Software Foundation, Inc.
8  
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
9     the Free Software Foundation, either version 3 of the License, or
10     (at your option) any later version.
11 <  
11 >
12     This program is distributed in the hope that it will be useful,
13     but WITHOUT ANY WARRANTY; without even the implied warranty of
14     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
15     GNU General Public License for more details.
16 <  
16 >
17     You should have received a copy of the GNU General Public License
18     along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
19  
# Line 28 | Line 26
26     special exception, which will cause the skeleton and the resulting
27     Bison output files to be licensed under the GNU General Public
28     License without this special exception.
29 <  
29 >
30     This special exception was added by the Free Software Foundation in
31     version 2.2 of Bison.  */
32  
# Line 46 | Line 44
44   #define YYBISON 1
45  
46   /* Bison version.  */
47 < #define YYBISON_VERSION "2.4.1"
47 > #define YYBISON_VERSION "3.0.2"
48  
49   /* Skeleton name.  */
50   #define YYSKELETON_NAME "yacc.c"
# Line 60 | Line 58
58   /* Pull parsers.  */
59   #define YYPULL 1
60  
63 /* Using locations.  */
64 #define YYLSP_NEEDED 0
61  
62  
63  
64   /* Copy the first part of user declarations.  */
65 <
70 < /* Line 189 of yacc.c  */
71 < #line 25 "ircd_parser.y"
65 > #line 28 "conf_parser.y" /* yacc.c:339  */
66  
67  
68   #define YY_NO_UNPUT
# Line 76 | Line 70
70   #include <string.h>
71  
72   #include "config.h"
79 #ifdef HAVE_LIBPCRE
80 #include <pcre.h>
81 #endif
73   #include "stdinc.h"
74   #include "ircd.h"
84 #include "tools.h"
75   #include "list.h"
76 < #include "s_conf.h"
76 > #include "conf.h"
77 > #include "conf_class.h"
78   #include "event.h"
79 < #include "s_log.h"
79 > #include "log.h"
80   #include "client.h"     /* for UMODE_ALL only */
81   #include "irc_string.h"
91 #include "irc_getaddrinfo.h"
92 #include "sprintf_irc.h"
82   #include "memory.h"
83   #include "modules.h"
84 < #include "s_serv.h"
84 > #include "server.h"
85   #include "hostmask.h"
86   #include "send.h"
87   #include "listener.h"
88   #include "resv.h"
89   #include "numeric.h"
90 < #include "s_user.h"
90 > #include "user.h"
91 > #include "motd.h"
92  
93   #ifdef HAVE_LIBCRYPTO
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;
110 < static struct ConfItem *yy_conf = NULL;
111 < static struct AccessItem *yy_aconf = NULL;
112 < static struct MatchItem *yy_match_item = NULL;
113 < static struct ClassItem *yy_class = NULL;
114 < static char *yy_class_name = NULL;
115 <
116 < static dlink_list col_conf_list  = { NULL, NULL, 0 };
117 < static dlink_list hub_conf_list  = { NULL, NULL, 0 };
118 < static dlink_list leaf_conf_list = { NULL, NULL, 0 };
119 < static unsigned int listener_flags = 0;
120 < static unsigned int regex_ban = 0;
121 < static char userbuf[IRCD_BUFSIZE];
122 < static char hostbuf[IRCD_BUFSIZE];
123 < static char reasonbuf[REASONLEN + 1];
124 < static char gecos_name[REALLEN * 4];
125 <
126 < extern dlink_list gdeny_items; /* XXX */
127 <
128 < static char *resv_reason = NULL;
129 < static char *listener_address = NULL;
130 < static int not_atom = 0;
100 > #include "rsa.h"
101  
102 < struct CollectItem
133 < {
134 <  dlink_node node;
135 <  char *name;
136 <  char *user;
137 <  char *host;
138 <  char *passwd;
139 <  int  port;
140 <  int  flags;
141 < #ifdef HAVE_LIBCRYPTO
142 <  char *rsa_public_key_file;
143 <  RSA *rsa_public_key;
144 < #endif
145 < };
102 > int yylex(void);
103  
104 < static void
148 < 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 >  {
108 >    dlink_list list;
109 >  } mask,
110 >    leaf,
111 >    hub;
112 >
113 >  struct
114 >  {
115 >    char buf[IRCD_BUFSIZE];
116 >  } name,
117 >    user,
118 >    host,
119 >    addr,
120 >    bind,
121 >    file,
122 >    ciph,
123 >    cert,
124 >    rpass,
125 >    spass,
126 >    class;
127 >
128 >  struct
129 >  {
130 >    unsigned int value;
131 >  } flags,
132 >    modes,
133 >    size,
134 >    type,
135 >    port,
136 >    aftype,
137 >    ping_freq,
138 >    max_perip,
139 >    con_freq,
140 >    min_idle,
141 >    max_idle,
142 >    max_total,
143 >    max_global,
144 >    max_local,
145 >    max_ident,
146 >    max_sendq,
147 >    max_recvq,
148 >    max_channels,
149 >    cidr_bitlen_ipv4,
150 >    cidr_bitlen_ipv6,
151 >    number_per_cidr;
152 > } block_state;
153  
154   static void
155 < unhook_hub_leaf_confs(void)
155 > reset_block_state(void)
156   {
157 <  dlink_node *ptr;
164 <  dlink_node *next_ptr;
165 <  struct CollectItem *yy_hconf;
166 <  struct CollectItem *yy_lconf;
157 >  dlink_node *ptr = NULL, *ptr_next = NULL;
158  
159 <  DLINK_FOREACH_SAFE(ptr, next_ptr, hub_conf_list.head)
159 >  DLINK_FOREACH_SAFE(ptr, ptr_next, block_state.mask.list.head)
160    {
161 <    yy_hconf = ptr->data;
162 <    dlinkDelete(&yy_hconf->node, &hub_conf_list);
163 <    free_collect_item(yy_hconf);
161 >    MyFree(ptr->data);
162 >    dlinkDelete(ptr, &block_state.mask.list);
163 >    free_dlink_node(ptr);
164    }
165  
166 <  DLINK_FOREACH_SAFE(ptr, next_ptr, leaf_conf_list.head)
166 >  DLINK_FOREACH_SAFE(ptr, ptr_next, block_state.leaf.list.head)
167    {
168 <    yy_lconf = ptr->data;
169 <    dlinkDelete(&yy_lconf->node, &leaf_conf_list);
170 <    free_collect_item(yy_lconf);
168 >    MyFree(ptr->data);
169 >    dlinkDelete(ptr, &block_state.leaf.list);
170 >    free_dlink_node(ptr);
171    }
181 }
172  
173 +  DLINK_FOREACH_SAFE(ptr, ptr_next, block_state.hub.list.head)
174 +  {
175 +    MyFree(ptr->data);
176 +    dlinkDelete(ptr, &block_state.hub.list);
177 +    free_dlink_node(ptr);
178 +  }
179  
180 +  memset(&block_state, 0, sizeof(block_state));
181 + }
182  
185 /* Line 189 of yacc.c  */
186 #line 187 "ircd_parser.c"
183  
184 < /* Enabling traces.  */
185 < #ifndef YYDEBUG
186 < # define YYDEBUG 0
187 < #endif
184 > #line 185 "conf_parser.c" /* yacc.c:339  */
185 >
186 > # ifndef YY_NULLPTR
187 > #  if defined __cplusplus && 201103L <= __cplusplus
188 > #   define YY_NULLPTR nullptr
189 > #  else
190 > #   define YY_NULLPTR 0
191 > #  endif
192 > # endif
193  
194   /* Enabling verbose error messages.  */
195   #ifdef YYERROR_VERBOSE
# Line 198 | Line 199 | unhook_hub_leaf_confs(void)
199   # define YYERROR_VERBOSE 0
200   #endif
201  
202 < /* Enabling the token table.  */
203 < #ifndef YYTOKEN_TABLE
204 < # define YYTOKEN_TABLE 0
202 > /* In a future release of Bison, this section will be replaced
203 >   by #include "y.tab.h".  */
204 > #ifndef YY_YY_CONF_PARSER_H_INCLUDED
205 > # define YY_YY_CONF_PARSER_H_INCLUDED
206 > /* Debug traces.  */
207 > #ifndef YYDEBUG
208 > # define YYDEBUG 0
209 > #endif
210 > #if YYDEBUG
211 > extern int yydebug;
212   #endif
213  
214 <
207 < /* Tokens.  */
214 > /* Token type.  */
215   #ifndef YYTOKENTYPE
216   # define YYTOKENTYPE
217 <   /* Put the tokens into the symbol table, so that GDB and other debuggers
218 <      know about them.  */
219 <   enum yytokentype {
220 <     ACCEPT_PASSWORD = 258,
221 <     ACTION = 259,
222 <     ADMIN = 260,
223 <     AFTYPE = 261,
224 <     T_ALLOW = 262,
225 <     ANTI_NICK_FLOOD = 263,
226 <     ANTI_SPAM_EXIT_MESSAGE_TIME = 264,
227 <     AUTOCONN = 265,
228 <     T_BLOCK = 266,
229 <     BURST_AWAY = 267,
230 <     BURST_TOPICWHO = 268,
231 <     BYTES = 269,
232 <     KBYTES = 270,
233 <     MBYTES = 271,
234 <     GBYTES = 272,
235 <     TBYTES = 273,
236 <     CALLER_ID_WAIT = 274,
237 <     CAN_FLOOD = 275,
238 <     CAN_IDLE = 276,
239 <     CHANNEL = 277,
240 <     CIDR_BITLEN_IPV4 = 278,
241 <     CIDR_BITLEN_IPV6 = 279,
242 <     CIPHER_PREFERENCE = 280,
243 <     CLASS = 281,
244 <     COMPRESSED = 282,
245 <     COMPRESSION_LEVEL = 283,
246 <     CONNECT = 284,
247 <     CONNECTFREQ = 285,
248 <     CRYPTLINK = 286,
249 <     DEFAULT_CIPHER_PREFERENCE = 287,
250 <     DEFAULT_FLOODCOUNT = 288,
251 <     DEFAULT_SPLIT_SERVER_COUNT = 289,
252 <     DEFAULT_SPLIT_USER_COUNT = 290,
253 <     DENY = 291,
254 <     DESCRIPTION = 292,
255 <     DIE = 293,
256 <     DISABLE_AUTH = 294,
257 <     DISABLE_FAKE_CHANNELS = 295,
258 <     DISABLE_HIDDEN = 296,
259 <     DISABLE_LOCAL_CHANNELS = 297,
260 <     DISABLE_REMOTE_COMMANDS = 298,
261 <     DOT_IN_IP6_ADDR = 299,
262 <     DOTS_IN_IDENT = 300,
263 <     DURATION = 301,
264 <     EGDPOOL_PATH = 302,
265 <     EMAIL = 303,
266 <     ENABLE = 304,
267 <     ENCRYPTED = 305,
268 <     EXCEED_LIMIT = 306,
269 <     EXEMPT = 307,
270 <     FAILED_OPER_NOTICE = 308,
271 <     FAKENAME = 309,
272 <     IRCD_FLAGS = 310,
273 <     FLATTEN_LINKS = 311,
274 <     FFAILED_OPERLOG = 312,
275 <     FKILLLOG = 313,
276 <     FKLINELOG = 314,
277 <     FGLINELOG = 315,
278 <     FIOERRLOG = 316,
279 <     FOPERLOG = 317,
280 <     FOPERSPYLOG = 318,
281 <     FUSERLOG = 319,
282 <     GECOS = 320,
283 <     GENERAL = 321,
284 <     GLINE = 322,
285 <     GLINES = 323,
286 <     GLINE_EXEMPT = 324,
287 <     GLINE_LOG = 325,
288 <     GLINE_TIME = 326,
289 <     GLINE_MIN_CIDR = 327,
290 <     GLINE_MIN_CIDR6 = 328,
291 <     GLOBAL_KILL = 329,
292 <     IRCD_AUTH = 330,
293 <     NEED_IDENT = 331,
294 <     HAVENT_READ_CONF = 332,
295 <     HIDDEN = 333,
296 <     HIDDEN_ADMIN = 334,
297 <     HIDDEN_NAME = 335,
298 <     HIDDEN_OPER = 336,
299 <     HIDE_SERVER_IPS = 337,
300 <     HIDE_SERVERS = 338,
301 <     HIDE_SPOOF_IPS = 339,
302 <     HOST = 340,
303 <     HUB = 341,
304 <     HUB_MASK = 342,
305 <     IDLETIME = 343,
306 <     IGNORE_BOGUS_TS = 344,
307 <     INVISIBLE_ON_CONNECT = 345,
308 <     IP = 346,
309 <     KILL = 347,
310 <     KILL_CHASE_TIME_LIMIT = 348,
311 <     KLINE = 349,
312 <     KLINE_EXEMPT = 350,
313 <     KLINE_REASON = 351,
314 <     KLINE_WITH_REASON = 352,
315 <     KNOCK_DELAY = 353,
316 <     KNOCK_DELAY_CHANNEL = 354,
317 <     LEAF_MASK = 355,
318 <     LINKS_DELAY = 356,
319 <     LISTEN = 357,
320 <     T_LOG = 358,
321 <     LOGGING = 359,
322 <     LOG_LEVEL = 360,
323 <     MAX_ACCEPT = 361,
324 <     MAX_BANS = 362,
325 <     MAX_CHANS_PER_USER = 363,
326 <     MAX_GLOBAL = 364,
327 <     MAX_IDENT = 365,
328 <     MAX_LOCAL = 366,
329 <     MAX_NICK_CHANGES = 367,
330 <     MAX_NICK_TIME = 368,
331 <     MAX_NUMBER = 369,
332 <     MAX_TARGETS = 370,
333 <     MAX_WATCH = 371,
334 <     MESSAGE_LOCALE = 372,
335 <     MIN_NONWILDCARD = 373,
336 <     MIN_NONWILDCARD_SIMPLE = 374,
337 <     MODULE = 375,
338 <     MODULES = 376,
339 <     NAME = 377,
340 <     NEED_PASSWORD = 378,
341 <     NETWORK_DESC = 379,
342 <     NETWORK_NAME = 380,
343 <     NICK = 381,
344 <     NICK_CHANGES = 382,
345 <     NO_CREATE_ON_SPLIT = 383,
346 <     NO_JOIN_ON_SPLIT = 384,
347 <     NO_OPER_FLOOD = 385,
348 <     NO_TILDE = 386,
349 <     NOT = 387,
350 <     NUMBER = 388,
351 <     NUMBER_PER_IDENT = 389,
352 <     NUMBER_PER_CIDR = 390,
353 <     NUMBER_PER_IP = 391,
354 <     NUMBER_PER_IP_GLOBAL = 392,
355 <     OPERATOR = 393,
356 <     OPERS_BYPASS_CALLERID = 394,
357 <     OPER_LOG = 395,
358 <     OPER_ONLY_UMODES = 396,
359 <     OPER_PASS_RESV = 397,
360 <     OPER_SPY_T = 398,
361 <     OPER_UMODES = 399,
362 <     JOIN_FLOOD_COUNT = 400,
363 <     JOIN_FLOOD_TIME = 401,
364 <     PACE_WAIT = 402,
365 <     PACE_WAIT_SIMPLE = 403,
366 <     PASSWORD = 404,
367 <     PATH = 405,
368 <     PING_COOKIE = 406,
369 <     PING_TIME = 407,
370 <     PING_WARNING = 408,
371 <     PORT = 409,
372 <     QSTRING = 410,
373 <     QUIET_ON_BAN = 411,
374 <     REASON = 412,
375 <     REDIRPORT = 413,
376 <     REDIRSERV = 414,
377 <     REGEX_T = 415,
378 <     REHASH = 416,
379 <     TREJECT_HOLD_TIME = 417,
380 <     REMOTE = 418,
381 <     REMOTEBAN = 419,
382 <     RESTRICT_CHANNELS = 420,
383 <     RESTRICTED = 421,
384 <     RSA_PRIVATE_KEY_FILE = 422,
385 <     RSA_PUBLIC_KEY_FILE = 423,
386 <     SSL_CERTIFICATE_FILE = 424,
387 <     T_SSL_CONNECTION_METHOD = 425,
388 <     T_SSLV3 = 426,
389 <     T_TLSV1 = 427,
390 <     RESV = 428,
391 <     RESV_EXEMPT = 429,
392 <     SECONDS = 430,
393 <     MINUTES = 431,
394 <     HOURS = 432,
395 <     DAYS = 433,
396 <     WEEKS = 434,
397 <     SENDQ = 435,
398 <     SEND_PASSWORD = 436,
399 <     SERVERHIDE = 437,
400 <     SERVERINFO = 438,
401 <     SERVLINK_PATH = 439,
402 <     IRCD_SID = 440,
403 <     TKLINE_EXPIRE_NOTICES = 441,
404 <     T_SHARED = 442,
405 <     T_CLUSTER = 443,
406 <     TYPE = 444,
407 <     SHORT_MOTD = 445,
408 <     SILENT = 446,
409 <     SPOOF = 447,
410 <     SPOOF_NOTICE = 448,
411 <     STATS_E_DISABLED = 449,
412 <     STATS_I_OPER_ONLY = 450,
413 <     STATS_K_OPER_ONLY = 451,
414 <     STATS_O_OPER_ONLY = 452,
415 <     STATS_P_OPER_ONLY = 453,
416 <     TBOOL = 454,
417 <     TMASKED = 455,
418 <     T_REJECT = 456,
419 <     TS_MAX_DELTA = 457,
420 <     TS_WARN_DELTA = 458,
421 <     TWODOTS = 459,
422 <     T_ALL = 460,
423 <     T_BOTS = 461,
424 <     T_SOFTCALLERID = 462,
425 <     T_CALLERID = 463,
426 <     T_CCONN = 464,
427 <     T_CCONN_FULL = 465,
428 <     T_CLIENT_FLOOD = 466,
429 <     T_DEAF = 467,
430 <     T_DEBUG = 468,
431 <     T_DRONE = 469,
432 <     T_EXTERNAL = 470,
433 <     T_FULL = 471,
434 <     T_INVISIBLE = 472,
435 <     T_IPV4 = 473,
436 <     T_IPV6 = 474,
437 <     T_LOCOPS = 475,
438 <     T_LOGPATH = 476,
439 <     T_L_CRIT = 477,
440 <     T_L_DEBUG = 478,
441 <     T_L_ERROR = 479,
442 <     T_L_INFO = 480,
443 <     T_L_NOTICE = 481,
444 <     T_L_TRACE = 482,
445 <     T_L_WARN = 483,
446 <     T_MAX_CLIENTS = 484,
447 <     T_NCHANGE = 485,
448 <     T_OPERWALL = 486,
449 <     T_REJ = 487,
443 <     T_SERVER = 488,
444 <     T_SERVNOTICE = 489,
445 <     T_SKILL = 490,
446 <     T_SPY = 491,
447 <     T_SSL = 492,
448 <     T_UMODES = 493,
449 <     T_UNAUTH = 494,
450 <     T_UNRESV = 495,
451 <     T_UNXLINE = 496,
452 <     T_WALLOP = 497,
453 <     THROTTLE_TIME = 498,
454 <     TOPICBURST = 499,
455 <     TRUE_NO_OPER_FLOOD = 500,
456 <     TKLINE = 501,
457 <     TXLINE = 502,
458 <     TRESV = 503,
459 <     UNKLINE = 504,
460 <     USER = 505,
461 <     USE_EGD = 506,
462 <     USE_EXCEPT = 507,
463 <     USE_INVEX = 508,
464 <     USE_KNOCK = 509,
465 <     USE_LOGGING = 510,
466 <     USE_WHOIS_ACTUALLY = 511,
467 <     VHOST = 512,
468 <     VHOST6 = 513,
469 <     XLINE = 514,
470 <     WARN = 515,
471 <     WARN_NO_NLINE = 516
472 <   };
217 >  enum yytokentype
218 >  {
219 >    ACCEPT_PASSWORD = 258,
220 >    ADMIN = 259,
221 >    AFTYPE = 260,
222 >    ANTI_NICK_FLOOD = 261,
223 >    ANTI_SPAM_EXIT_MESSAGE_TIME = 262,
224 >    AUTOCONN = 263,
225 >    BYTES = 264,
226 >    KBYTES = 265,
227 >    MBYTES = 266,
228 >    CALLER_ID_WAIT = 267,
229 >    CAN_FLOOD = 268,
230 >    CHANNEL = 269,
231 >    CIDR_BITLEN_IPV4 = 270,
232 >    CIDR_BITLEN_IPV6 = 271,
233 >    CLASS = 272,
234 >    CONNECT = 273,
235 >    CONNECTFREQ = 274,
236 >    CYCLE_ON_HOST_CHANGE = 275,
237 >    DEFAULT_FLOODCOUNT = 276,
238 >    DEFAULT_SPLIT_SERVER_COUNT = 277,
239 >    DEFAULT_SPLIT_USER_COUNT = 278,
240 >    DENY = 279,
241 >    DESCRIPTION = 280,
242 >    DIE = 281,
243 >    DISABLE_AUTH = 282,
244 >    DISABLE_FAKE_CHANNELS = 283,
245 >    DISABLE_REMOTE_COMMANDS = 284,
246 >    DOTS_IN_IDENT = 285,
247 >    EGDPOOL_PATH = 286,
248 >    EMAIL = 287,
249 >    ENCRYPTED = 288,
250 >    EXCEED_LIMIT = 289,
251 >    EXEMPT = 290,
252 >    FAILED_OPER_NOTICE = 291,
253 >    FLATTEN_LINKS = 292,
254 >    GECOS = 293,
255 >    GENERAL = 294,
256 >    GLINE = 295,
257 >    GLINE_DURATION = 296,
258 >    GLINE_ENABLE = 297,
259 >    GLINE_EXEMPT = 298,
260 >    GLINE_MIN_CIDR = 299,
261 >    GLINE_MIN_CIDR6 = 300,
262 >    GLINE_REQUEST_DURATION = 301,
263 >    GLOBAL_KILL = 302,
264 >    HAVENT_READ_CONF = 303,
265 >    HIDDEN = 304,
266 >    HIDDEN_NAME = 305,
267 >    HIDE_CHANS = 306,
268 >    HIDE_IDLE = 307,
269 >    HIDE_IDLE_FROM_OPERS = 308,
270 >    HIDE_SERVER_IPS = 309,
271 >    HIDE_SERVERS = 310,
272 >    HIDE_SERVICES = 311,
273 >    HIDE_SPOOF_IPS = 312,
274 >    HOST = 313,
275 >    HUB = 314,
276 >    HUB_MASK = 315,
277 >    IGNORE_BOGUS_TS = 316,
278 >    INVISIBLE_ON_CONNECT = 317,
279 >    INVITE_CLIENT_COUNT = 318,
280 >    INVITE_CLIENT_TIME = 319,
281 >    IP = 320,
282 >    IRCD_AUTH = 321,
283 >    IRCD_FLAGS = 322,
284 >    IRCD_SID = 323,
285 >    JOIN_FLOOD_COUNT = 324,
286 >    JOIN_FLOOD_TIME = 325,
287 >    KILL = 326,
288 >    KILL_CHASE_TIME_LIMIT = 327,
289 >    KLINE = 328,
290 >    KLINE_EXEMPT = 329,
291 >    KNOCK_CLIENT_COUNT = 330,
292 >    KNOCK_CLIENT_TIME = 331,
293 >    KNOCK_DELAY_CHANNEL = 332,
294 >    LEAF_MASK = 333,
295 >    LINKS_DELAY = 334,
296 >    LISTEN = 335,
297 >    MASK = 336,
298 >    MAX_ACCEPT = 337,
299 >    MAX_BANS = 338,
300 >    MAX_CHANNELS = 339,
301 >    MAX_GLOBAL = 340,
302 >    MAX_IDENT = 341,
303 >    MAX_IDLE = 342,
304 >    MAX_LOCAL = 343,
305 >    MAX_NICK_CHANGES = 344,
306 >    MAX_NICK_LENGTH = 345,
307 >    MAX_NICK_TIME = 346,
308 >    MAX_NUMBER = 347,
309 >    MAX_TARGETS = 348,
310 >    MAX_TOPIC_LENGTH = 349,
311 >    MAX_WATCH = 350,
312 >    MIN_IDLE = 351,
313 >    MIN_NONWILDCARD = 352,
314 >    MIN_NONWILDCARD_SIMPLE = 353,
315 >    MODULE = 354,
316 >    MODULES = 355,
317 >    MOTD = 356,
318 >    NAME = 357,
319 >    NEED_IDENT = 358,
320 >    NEED_PASSWORD = 359,
321 >    NETWORK_DESC = 360,
322 >    NETWORK_NAME = 361,
323 >    NICK = 362,
324 >    NO_CREATE_ON_SPLIT = 363,
325 >    NO_JOIN_ON_SPLIT = 364,
326 >    NO_OPER_FLOOD = 365,
327 >    NO_TILDE = 366,
328 >    NUMBER = 367,
329 >    NUMBER_PER_CIDR = 368,
330 >    NUMBER_PER_IP = 369,
331 >    OPER_ONLY_UMODES = 370,
332 >    OPER_PASS_RESV = 371,
333 >    OPER_UMODES = 372,
334 >    OPERATOR = 373,
335 >    OPERS_BYPASS_CALLERID = 374,
336 >    PACE_WAIT = 375,
337 >    PACE_WAIT_SIMPLE = 376,
338 >    PASSWORD = 377,
339 >    PATH = 378,
340 >    PING_COOKIE = 379,
341 >    PING_TIME = 380,
342 >    PORT = 381,
343 >    QSTRING = 382,
344 >    RANDOM_IDLE = 383,
345 >    REASON = 384,
346 >    REDIRPORT = 385,
347 >    REDIRSERV = 386,
348 >    REHASH = 387,
349 >    REMOTE = 388,
350 >    REMOTEBAN = 389,
351 >    RESV = 390,
352 >    RESV_EXEMPT = 391,
353 >    RSA_PRIVATE_KEY_FILE = 392,
354 >    RSA_PUBLIC_KEY_FILE = 393,
355 >    SECONDS = 394,
356 >    MINUTES = 395,
357 >    HOURS = 396,
358 >    DAYS = 397,
359 >    WEEKS = 398,
360 >    MONTHS = 399,
361 >    YEARS = 400,
362 >    SEND_PASSWORD = 401,
363 >    SENDQ = 402,
364 >    SERVERHIDE = 403,
365 >    SERVERINFO = 404,
366 >    SHORT_MOTD = 405,
367 >    SPOOF = 406,
368 >    SPOOF_NOTICE = 407,
369 >    SQUIT = 408,
370 >    SSL_CERTIFICATE_FILE = 409,
371 >    SSL_CERTIFICATE_FINGERPRINT = 410,
372 >    SSL_CONNECTION_REQUIRED = 411,
373 >    SSL_DH_ELLIPTIC_CURVE = 412,
374 >    SSL_DH_PARAM_FILE = 413,
375 >    SSL_MESSAGE_DIGEST_ALGORITHM = 414,
376 >    STATS_E_DISABLED = 415,
377 >    STATS_I_OPER_ONLY = 416,
378 >    STATS_K_OPER_ONLY = 417,
379 >    STATS_O_OPER_ONLY = 418,
380 >    STATS_P_OPER_ONLY = 419,
381 >    STATS_U_OPER_ONLY = 420,
382 >    T_ALL = 421,
383 >    T_BOTS = 422,
384 >    T_CALLERID = 423,
385 >    T_CCONN = 424,
386 >    T_CLUSTER = 425,
387 >    T_DEAF = 426,
388 >    T_DEBUG = 427,
389 >    T_DLINE = 428,
390 >    T_EXTERNAL = 429,
391 >    T_FARCONNECT = 430,
392 >    T_FILE = 431,
393 >    T_FULL = 432,
394 >    T_GLOBOPS = 433,
395 >    T_INVISIBLE = 434,
396 >    T_IPV4 = 435,
397 >    T_IPV6 = 436,
398 >    T_LOCOPS = 437,
399 >    T_LOG = 438,
400 >    T_MAX_CLIENTS = 439,
401 >    T_NCHANGE = 440,
402 >    T_NONONREG = 441,
403 >    T_RECVQ = 442,
404 >    T_REJ = 443,
405 >    T_RESTART = 444,
406 >    T_SERVER = 445,
407 >    T_SERVICE = 446,
408 >    T_SERVICES_NAME = 447,
409 >    T_SERVNOTICE = 448,
410 >    T_SET = 449,
411 >    T_SHARED = 450,
412 >    T_SIZE = 451,
413 >    T_SKILL = 452,
414 >    T_SOFTCALLERID = 453,
415 >    T_SPY = 454,
416 >    T_SSL = 455,
417 >    T_SSL_CIPHER_LIST = 456,
418 >    T_SSL_CLIENT_METHOD = 457,
419 >    T_SSL_SERVER_METHOD = 458,
420 >    T_SSLV3 = 459,
421 >    T_TLSV1 = 460,
422 >    T_UMODES = 461,
423 >    T_UNAUTH = 462,
424 >    T_UNDLINE = 463,
425 >    T_UNLIMITED = 464,
426 >    T_UNRESV = 465,
427 >    T_UNXLINE = 466,
428 >    T_WALLOP = 467,
429 >    T_WALLOPS = 468,
430 >    T_WEBIRC = 469,
431 >    TBOOL = 470,
432 >    THROTTLE_COUNT = 471,
433 >    THROTTLE_TIME = 472,
434 >    TKLINE_EXPIRE_NOTICES = 473,
435 >    TMASKED = 474,
436 >    TRUE_NO_OPER_FLOOD = 475,
437 >    TS_MAX_DELTA = 476,
438 >    TS_WARN_DELTA = 477,
439 >    TWODOTS = 478,
440 >    TYPE = 479,
441 >    UNKLINE = 480,
442 >    USE_EGD = 481,
443 >    USE_LOGGING = 482,
444 >    USER = 483,
445 >    VHOST = 484,
446 >    VHOST6 = 485,
447 >    WARN_NO_CONNECT_BLOCK = 486,
448 >    XLINE = 487
449 >  };
450   #endif
451   /* Tokens.  */
452   #define ACCEPT_PASSWORD 258
453 < #define ACTION 259
454 < #define ADMIN 260
455 < #define AFTYPE 261
456 < #define T_ALLOW 262
457 < #define ANTI_NICK_FLOOD 263
458 < #define ANTI_SPAM_EXIT_MESSAGE_TIME 264
459 < #define AUTOCONN 265
460 < #define T_BLOCK 266
461 < #define BURST_AWAY 267
462 < #define BURST_TOPICWHO 268
463 < #define BYTES 269
464 < #define KBYTES 270
465 < #define MBYTES 271
466 < #define GBYTES 272
467 < #define TBYTES 273
468 < #define CALLER_ID_WAIT 274
469 < #define CAN_FLOOD 275
470 < #define CAN_IDLE 276
471 < #define CHANNEL 277
472 < #define CIDR_BITLEN_IPV4 278
473 < #define CIDR_BITLEN_IPV6 279
474 < #define CIPHER_PREFERENCE 280
475 < #define CLASS 281
476 < #define COMPRESSED 282
477 < #define COMPRESSION_LEVEL 283
478 < #define CONNECT 284
479 < #define CONNECTFREQ 285
480 < #define CRYPTLINK 286
481 < #define DEFAULT_CIPHER_PREFERENCE 287
482 < #define DEFAULT_FLOODCOUNT 288
483 < #define DEFAULT_SPLIT_SERVER_COUNT 289
484 < #define DEFAULT_SPLIT_USER_COUNT 290
485 < #define DENY 291
486 < #define DESCRIPTION 292
487 < #define DIE 293
488 < #define DISABLE_AUTH 294
489 < #define DISABLE_FAKE_CHANNELS 295
490 < #define DISABLE_HIDDEN 296
491 < #define DISABLE_LOCAL_CHANNELS 297
492 < #define DISABLE_REMOTE_COMMANDS 298
493 < #define DOT_IN_IP6_ADDR 299
494 < #define DOTS_IN_IDENT 300
495 < #define DURATION 301
496 < #define EGDPOOL_PATH 302
497 < #define EMAIL 303
498 < #define ENABLE 304
499 < #define ENCRYPTED 305
500 < #define EXCEED_LIMIT 306
501 < #define EXEMPT 307
502 < #define FAILED_OPER_NOTICE 308
503 < #define FAKENAME 309
504 < #define IRCD_FLAGS 310
505 < #define FLATTEN_LINKS 311
506 < #define FFAILED_OPERLOG 312
507 < #define FKILLLOG 313
508 < #define FKLINELOG 314
509 < #define FGLINELOG 315
510 < #define FIOERRLOG 316
511 < #define FOPERLOG 317
512 < #define FOPERSPYLOG 318
513 < #define FUSERLOG 319
514 < #define GECOS 320
515 < #define GENERAL 321
516 < #define GLINE 322
517 < #define GLINES 323
518 < #define GLINE_EXEMPT 324
519 < #define GLINE_LOG 325
520 < #define GLINE_TIME 326
521 < #define GLINE_MIN_CIDR 327
522 < #define GLINE_MIN_CIDR6 328
523 < #define GLOBAL_KILL 329
524 < #define IRCD_AUTH 330
525 < #define NEED_IDENT 331
526 < #define HAVENT_READ_CONF 332
527 < #define HIDDEN 333
528 < #define HIDDEN_ADMIN 334
529 < #define HIDDEN_NAME 335
530 < #define HIDDEN_OPER 336
531 < #define HIDE_SERVER_IPS 337
532 < #define HIDE_SERVERS 338
533 < #define HIDE_SPOOF_IPS 339
534 < #define HOST 340
535 < #define HUB 341
536 < #define HUB_MASK 342
537 < #define IDLETIME 343
538 < #define IGNORE_BOGUS_TS 344
539 < #define INVISIBLE_ON_CONNECT 345
540 < #define IP 346
541 < #define KILL 347
542 < #define KILL_CHASE_TIME_LIMIT 348
543 < #define KLINE 349
544 < #define KLINE_EXEMPT 350
545 < #define KLINE_REASON 351
546 < #define KLINE_WITH_REASON 352
547 < #define KNOCK_DELAY 353
548 < #define KNOCK_DELAY_CHANNEL 354
549 < #define LEAF_MASK 355
550 < #define LINKS_DELAY 356
551 < #define LISTEN 357
552 < #define T_LOG 358
553 < #define LOGGING 359
554 < #define LOG_LEVEL 360
555 < #define MAX_ACCEPT 361
556 < #define MAX_BANS 362
557 < #define MAX_CHANS_PER_USER 363
558 < #define MAX_GLOBAL 364
559 < #define MAX_IDENT 365
560 < #define MAX_LOCAL 366
561 < #define MAX_NICK_CHANGES 367
562 < #define MAX_NICK_TIME 368
563 < #define MAX_NUMBER 369
564 < #define MAX_TARGETS 370
565 < #define MAX_WATCH 371
566 < #define MESSAGE_LOCALE 372
567 < #define MIN_NONWILDCARD 373
568 < #define MIN_NONWILDCARD_SIMPLE 374
569 < #define MODULE 375
570 < #define MODULES 376
571 < #define NAME 377
572 < #define NEED_PASSWORD 378
573 < #define NETWORK_DESC 379
574 < #define NETWORK_NAME 380
575 < #define NICK 381
576 < #define NICK_CHANGES 382
577 < #define NO_CREATE_ON_SPLIT 383
578 < #define NO_JOIN_ON_SPLIT 384
579 < #define NO_OPER_FLOOD 385
580 < #define NO_TILDE 386
581 < #define NOT 387
582 < #define NUMBER 388
583 < #define NUMBER_PER_IDENT 389
584 < #define NUMBER_PER_CIDR 390
585 < #define NUMBER_PER_IP 391
586 < #define NUMBER_PER_IP_GLOBAL 392
587 < #define OPERATOR 393
588 < #define OPERS_BYPASS_CALLERID 394
589 < #define OPER_LOG 395
590 < #define OPER_ONLY_UMODES 396
591 < #define OPER_PASS_RESV 397
592 < #define OPER_SPY_T 398
593 < #define OPER_UMODES 399
594 < #define JOIN_FLOOD_COUNT 400
595 < #define JOIN_FLOOD_TIME 401
596 < #define PACE_WAIT 402
597 < #define PACE_WAIT_SIMPLE 403
598 < #define PASSWORD 404
599 < #define PATH 405
600 < #define PING_COOKIE 406
601 < #define PING_TIME 407
602 < #define PING_WARNING 408
603 < #define PORT 409
604 < #define QSTRING 410
605 < #define QUIET_ON_BAN 411
606 < #define REASON 412
607 < #define REDIRPORT 413
608 < #define REDIRSERV 414
609 < #define REGEX_T 415
610 < #define REHASH 416
611 < #define TREJECT_HOLD_TIME 417
612 < #define REMOTE 418
613 < #define REMOTEBAN 419
614 < #define RESTRICT_CHANNELS 420
615 < #define RESTRICTED 421
616 < #define RSA_PRIVATE_KEY_FILE 422
617 < #define RSA_PUBLIC_KEY_FILE 423
618 < #define SSL_CERTIFICATE_FILE 424
619 < #define T_SSL_CONNECTION_METHOD 425
620 < #define T_SSLV3 426
621 < #define T_TLSV1 427
622 < #define RESV 428
623 < #define RESV_EXEMPT 429
624 < #define SECONDS 430
625 < #define MINUTES 431
626 < #define HOURS 432
627 < #define DAYS 433
628 < #define WEEKS 434
629 < #define SENDQ 435
630 < #define SEND_PASSWORD 436
631 < #define SERVERHIDE 437
632 < #define SERVERINFO 438
633 < #define SERVLINK_PATH 439
634 < #define IRCD_SID 440
635 < #define TKLINE_EXPIRE_NOTICES 441
636 < #define T_SHARED 442
637 < #define T_CLUSTER 443
638 < #define TYPE 444
639 < #define SHORT_MOTD 445
640 < #define SILENT 446
641 < #define SPOOF 447
642 < #define SPOOF_NOTICE 448
643 < #define STATS_E_DISABLED 449
644 < #define STATS_I_OPER_ONLY 450
645 < #define STATS_K_OPER_ONLY 451
646 < #define STATS_O_OPER_ONLY 452
647 < #define STATS_P_OPER_ONLY 453
648 < #define TBOOL 454
649 < #define TMASKED 455
650 < #define T_REJECT 456
651 < #define TS_MAX_DELTA 457
652 < #define TS_WARN_DELTA 458
653 < #define TWODOTS 459
654 < #define T_ALL 460
655 < #define T_BOTS 461
656 < #define T_SOFTCALLERID 462
657 < #define T_CALLERID 463
658 < #define T_CCONN 464
659 < #define T_CCONN_FULL 465
660 < #define T_CLIENT_FLOOD 466
661 < #define T_DEAF 467
662 < #define T_DEBUG 468
663 < #define T_DRONE 469
664 < #define T_EXTERNAL 470
665 < #define T_FULL 471
666 < #define T_INVISIBLE 472
667 < #define T_IPV4 473
668 < #define T_IPV6 474
669 < #define T_LOCOPS 475
670 < #define T_LOGPATH 476
671 < #define T_L_CRIT 477
672 < #define T_L_DEBUG 478
673 < #define T_L_ERROR 479
674 < #define T_L_INFO 480
675 < #define T_L_NOTICE 481
676 < #define T_L_TRACE 482
677 < #define T_L_WARN 483
678 < #define T_MAX_CLIENTS 484
679 < #define T_NCHANGE 485
680 < #define T_OPERWALL 486
681 < #define T_REJ 487
705 < #define T_SERVER 488
706 < #define T_SERVNOTICE 489
707 < #define T_SKILL 490
708 < #define T_SPY 491
709 < #define T_SSL 492
710 < #define T_UMODES 493
711 < #define T_UNAUTH 494
712 < #define T_UNRESV 495
713 < #define T_UNXLINE 496
714 < #define T_WALLOP 497
715 < #define THROTTLE_TIME 498
716 < #define TOPICBURST 499
717 < #define TRUE_NO_OPER_FLOOD 500
718 < #define TKLINE 501
719 < #define TXLINE 502
720 < #define TRESV 503
721 < #define UNKLINE 504
722 < #define USER 505
723 < #define USE_EGD 506
724 < #define USE_EXCEPT 507
725 < #define USE_INVEX 508
726 < #define USE_KNOCK 509
727 < #define USE_LOGGING 510
728 < #define USE_WHOIS_ACTUALLY 511
729 < #define VHOST 512
730 < #define VHOST6 513
731 < #define XLINE 514
732 < #define WARN 515
733 < #define WARN_NO_NLINE 516
734 <
735 <
736 <
453 > #define ADMIN 259
454 > #define AFTYPE 260
455 > #define ANTI_NICK_FLOOD 261
456 > #define ANTI_SPAM_EXIT_MESSAGE_TIME 262
457 > #define AUTOCONN 263
458 > #define BYTES 264
459 > #define KBYTES 265
460 > #define MBYTES 266
461 > #define CALLER_ID_WAIT 267
462 > #define CAN_FLOOD 268
463 > #define CHANNEL 269
464 > #define CIDR_BITLEN_IPV4 270
465 > #define CIDR_BITLEN_IPV6 271
466 > #define CLASS 272
467 > #define CONNECT 273
468 > #define CONNECTFREQ 274
469 > #define CYCLE_ON_HOST_CHANGE 275
470 > #define DEFAULT_FLOODCOUNT 276
471 > #define DEFAULT_SPLIT_SERVER_COUNT 277
472 > #define DEFAULT_SPLIT_USER_COUNT 278
473 > #define DENY 279
474 > #define DESCRIPTION 280
475 > #define DIE 281
476 > #define DISABLE_AUTH 282
477 > #define DISABLE_FAKE_CHANNELS 283
478 > #define DISABLE_REMOTE_COMMANDS 284
479 > #define DOTS_IN_IDENT 285
480 > #define EGDPOOL_PATH 286
481 > #define EMAIL 287
482 > #define ENCRYPTED 288
483 > #define EXCEED_LIMIT 289
484 > #define EXEMPT 290
485 > #define FAILED_OPER_NOTICE 291
486 > #define FLATTEN_LINKS 292
487 > #define GECOS 293
488 > #define GENERAL 294
489 > #define GLINE 295
490 > #define GLINE_DURATION 296
491 > #define GLINE_ENABLE 297
492 > #define GLINE_EXEMPT 298
493 > #define GLINE_MIN_CIDR 299
494 > #define GLINE_MIN_CIDR6 300
495 > #define GLINE_REQUEST_DURATION 301
496 > #define GLOBAL_KILL 302
497 > #define HAVENT_READ_CONF 303
498 > #define HIDDEN 304
499 > #define HIDDEN_NAME 305
500 > #define HIDE_CHANS 306
501 > #define HIDE_IDLE 307
502 > #define HIDE_IDLE_FROM_OPERS 308
503 > #define HIDE_SERVER_IPS 309
504 > #define HIDE_SERVERS 310
505 > #define HIDE_SERVICES 311
506 > #define HIDE_SPOOF_IPS 312
507 > #define HOST 313
508 > #define HUB 314
509 > #define HUB_MASK 315
510 > #define IGNORE_BOGUS_TS 316
511 > #define INVISIBLE_ON_CONNECT 317
512 > #define INVITE_CLIENT_COUNT 318
513 > #define INVITE_CLIENT_TIME 319
514 > #define IP 320
515 > #define IRCD_AUTH 321
516 > #define IRCD_FLAGS 322
517 > #define IRCD_SID 323
518 > #define JOIN_FLOOD_COUNT 324
519 > #define JOIN_FLOOD_TIME 325
520 > #define KILL 326
521 > #define KILL_CHASE_TIME_LIMIT 327
522 > #define KLINE 328
523 > #define KLINE_EXEMPT 329
524 > #define KNOCK_CLIENT_COUNT 330
525 > #define KNOCK_CLIENT_TIME 331
526 > #define KNOCK_DELAY_CHANNEL 332
527 > #define LEAF_MASK 333
528 > #define LINKS_DELAY 334
529 > #define LISTEN 335
530 > #define MASK 336
531 > #define MAX_ACCEPT 337
532 > #define MAX_BANS 338
533 > #define MAX_CHANNELS 339
534 > #define MAX_GLOBAL 340
535 > #define MAX_IDENT 341
536 > #define MAX_IDLE 342
537 > #define MAX_LOCAL 343
538 > #define MAX_NICK_CHANGES 344
539 > #define MAX_NICK_LENGTH 345
540 > #define MAX_NICK_TIME 346
541 > #define MAX_NUMBER 347
542 > #define MAX_TARGETS 348
543 > #define MAX_TOPIC_LENGTH 349
544 > #define MAX_WATCH 350
545 > #define MIN_IDLE 351
546 > #define MIN_NONWILDCARD 352
547 > #define MIN_NONWILDCARD_SIMPLE 353
548 > #define MODULE 354
549 > #define MODULES 355
550 > #define MOTD 356
551 > #define NAME 357
552 > #define NEED_IDENT 358
553 > #define NEED_PASSWORD 359
554 > #define NETWORK_DESC 360
555 > #define NETWORK_NAME 361
556 > #define NICK 362
557 > #define NO_CREATE_ON_SPLIT 363
558 > #define NO_JOIN_ON_SPLIT 364
559 > #define NO_OPER_FLOOD 365
560 > #define NO_TILDE 366
561 > #define NUMBER 367
562 > #define NUMBER_PER_CIDR 368
563 > #define NUMBER_PER_IP 369
564 > #define OPER_ONLY_UMODES 370
565 > #define OPER_PASS_RESV 371
566 > #define OPER_UMODES 372
567 > #define OPERATOR 373
568 > #define OPERS_BYPASS_CALLERID 374
569 > #define PACE_WAIT 375
570 > #define PACE_WAIT_SIMPLE 376
571 > #define PASSWORD 377
572 > #define PATH 378
573 > #define PING_COOKIE 379
574 > #define PING_TIME 380
575 > #define PORT 381
576 > #define QSTRING 382
577 > #define RANDOM_IDLE 383
578 > #define REASON 384
579 > #define REDIRPORT 385
580 > #define REDIRSERV 386
581 > #define REHASH 387
582 > #define REMOTE 388
583 > #define REMOTEBAN 389
584 > #define RESV 390
585 > #define RESV_EXEMPT 391
586 > #define RSA_PRIVATE_KEY_FILE 392
587 > #define RSA_PUBLIC_KEY_FILE 393
588 > #define SECONDS 394
589 > #define MINUTES 395
590 > #define HOURS 396
591 > #define DAYS 397
592 > #define WEEKS 398
593 > #define MONTHS 399
594 > #define YEARS 400
595 > #define SEND_PASSWORD 401
596 > #define SENDQ 402
597 > #define SERVERHIDE 403
598 > #define SERVERINFO 404
599 > #define SHORT_MOTD 405
600 > #define SPOOF 406
601 > #define SPOOF_NOTICE 407
602 > #define SQUIT 408
603 > #define SSL_CERTIFICATE_FILE 409
604 > #define SSL_CERTIFICATE_FINGERPRINT 410
605 > #define SSL_CONNECTION_REQUIRED 411
606 > #define SSL_DH_ELLIPTIC_CURVE 412
607 > #define SSL_DH_PARAM_FILE 413
608 > #define SSL_MESSAGE_DIGEST_ALGORITHM 414
609 > #define STATS_E_DISABLED 415
610 > #define STATS_I_OPER_ONLY 416
611 > #define STATS_K_OPER_ONLY 417
612 > #define STATS_O_OPER_ONLY 418
613 > #define STATS_P_OPER_ONLY 419
614 > #define STATS_U_OPER_ONLY 420
615 > #define T_ALL 421
616 > #define T_BOTS 422
617 > #define T_CALLERID 423
618 > #define T_CCONN 424
619 > #define T_CLUSTER 425
620 > #define T_DEAF 426
621 > #define T_DEBUG 427
622 > #define T_DLINE 428
623 > #define T_EXTERNAL 429
624 > #define T_FARCONNECT 430
625 > #define T_FILE 431
626 > #define T_FULL 432
627 > #define T_GLOBOPS 433
628 > #define T_INVISIBLE 434
629 > #define T_IPV4 435
630 > #define T_IPV6 436
631 > #define T_LOCOPS 437
632 > #define T_LOG 438
633 > #define T_MAX_CLIENTS 439
634 > #define T_NCHANGE 440
635 > #define T_NONONREG 441
636 > #define T_RECVQ 442
637 > #define T_REJ 443
638 > #define T_RESTART 444
639 > #define T_SERVER 445
640 > #define T_SERVICE 446
641 > #define T_SERVICES_NAME 447
642 > #define T_SERVNOTICE 448
643 > #define T_SET 449
644 > #define T_SHARED 450
645 > #define T_SIZE 451
646 > #define T_SKILL 452
647 > #define T_SOFTCALLERID 453
648 > #define T_SPY 454
649 > #define T_SSL 455
650 > #define T_SSL_CIPHER_LIST 456
651 > #define T_SSL_CLIENT_METHOD 457
652 > #define T_SSL_SERVER_METHOD 458
653 > #define T_SSLV3 459
654 > #define T_TLSV1 460
655 > #define T_UMODES 461
656 > #define T_UNAUTH 462
657 > #define T_UNDLINE 463
658 > #define T_UNLIMITED 464
659 > #define T_UNRESV 465
660 > #define T_UNXLINE 466
661 > #define T_WALLOP 467
662 > #define T_WALLOPS 468
663 > #define T_WEBIRC 469
664 > #define TBOOL 470
665 > #define THROTTLE_COUNT 471
666 > #define THROTTLE_TIME 472
667 > #define TKLINE_EXPIRE_NOTICES 473
668 > #define TMASKED 474
669 > #define TRUE_NO_OPER_FLOOD 475
670 > #define TS_MAX_DELTA 476
671 > #define TS_WARN_DELTA 477
672 > #define TWODOTS 478
673 > #define TYPE 479
674 > #define UNKLINE 480
675 > #define USE_EGD 481
676 > #define USE_LOGGING 482
677 > #define USER 483
678 > #define VHOST 484
679 > #define VHOST6 485
680 > #define WARN_NO_CONNECT_BLOCK 486
681 > #define XLINE 487
682  
683 + /* Value type.  */
684   #if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED
685 < typedef union YYSTYPE
685 > typedef union YYSTYPE YYSTYPE;
686 > union YYSTYPE
687   {
688 <
742 < /* Line 214 of yacc.c  */
743 < #line 138 "ircd_parser.y"
688 > #line 147 "conf_parser.y" /* yacc.c:355  */
689  
690    int number;
691    char *string;
692  
693 <
694 <
750 < /* Line 214 of yacc.c  */
751 < #line 752 "ircd_parser.c"
752 < } YYSTYPE;
693 > #line 694 "conf_parser.c" /* yacc.c:355  */
694 > };
695   # define YYSTYPE_IS_TRIVIAL 1
754 # define yystype YYSTYPE /* obsolescent; will be withdrawn */
696   # define YYSTYPE_IS_DECLARED 1
697   #endif
698  
699  
700 < /* Copy the second part of user declarations.  */
700 > extern YYSTYPE yylval;
701 >
702 > int yyparse (void);
703 >
704 > #endif /* !YY_YY_CONF_PARSER_H_INCLUDED  */
705  
706 + /* Copy the second part of user declarations.  */
707  
708 < /* Line 264 of yacc.c  */
763 < #line 764 "ircd_parser.c"
708 > #line 709 "conf_parser.c" /* yacc.c:358  */
709  
710   #ifdef short
711   # undef short
# Line 774 | Line 719 | typedef unsigned char yytype_uint8;
719  
720   #ifdef YYTYPE_INT8
721   typedef YYTYPE_INT8 yytype_int8;
777 #elif (defined __STDC__ || defined __C99__FUNC__ \
778     || defined __cplusplus || defined _MSC_VER)
779 typedef signed char yytype_int8;
722   #else
723 < typedef short int yytype_int8;
723 > typedef signed char yytype_int8;
724   #endif
725  
726   #ifdef YYTYPE_UINT16
# Line 798 | Line 740 | typedef short int yytype_int16;
740   #  define YYSIZE_T __SIZE_TYPE__
741   # elif defined size_t
742   #  define YYSIZE_T size_t
743 < # elif ! defined YYSIZE_T && (defined __STDC__ || defined __C99__FUNC__ \
802 <     || defined __cplusplus || defined _MSC_VER)
743 > # elif ! defined YYSIZE_T
744   #  include <stddef.h> /* INFRINGES ON USER NAME SPACE */
745   #  define YYSIZE_T size_t
746   # else
# Line 810 | Line 751 | typedef short int yytype_int16;
751   #define YYSIZE_MAXIMUM ((YYSIZE_T) -1)
752  
753   #ifndef YY_
754 < # if YYENABLE_NLS
754 > # if defined YYENABLE_NLS && YYENABLE_NLS
755   #  if ENABLE_NLS
756   #   include <libintl.h> /* INFRINGES ON USER NAME SPACE */
757 < #   define YY_(msgid) dgettext ("bison-runtime", msgid)
757 > #   define YY_(Msgid) dgettext ("bison-runtime", Msgid)
758   #  endif
759   # endif
760   # ifndef YY_
761 < #  define YY_(msgid) msgid
761 > #  define YY_(Msgid) Msgid
762 > # endif
763 > #endif
764 >
765 > #ifndef YY_ATTRIBUTE
766 > # if (defined __GNUC__                                               \
767 >      && (2 < __GNUC__ || (__GNUC__ == 2 && 96 <= __GNUC_MINOR__)))  \
768 >     || defined __SUNPRO_C && 0x5110 <= __SUNPRO_C
769 > #  define YY_ATTRIBUTE(Spec) __attribute__(Spec)
770 > # else
771 > #  define YY_ATTRIBUTE(Spec) /* empty */
772 > # endif
773 > #endif
774 >
775 > #ifndef YY_ATTRIBUTE_PURE
776 > # define YY_ATTRIBUTE_PURE   YY_ATTRIBUTE ((__pure__))
777 > #endif
778 >
779 > #ifndef YY_ATTRIBUTE_UNUSED
780 > # define YY_ATTRIBUTE_UNUSED YY_ATTRIBUTE ((__unused__))
781 > #endif
782 >
783 > #if !defined _Noreturn \
784 >     && (!defined __STDC_VERSION__ || __STDC_VERSION__ < 201112)
785 > # if defined _MSC_VER && 1200 <= _MSC_VER
786 > #  define _Noreturn __declspec (noreturn)
787 > # else
788 > #  define _Noreturn YY_ATTRIBUTE ((__noreturn__))
789   # endif
790   #endif
791  
792   /* Suppress unused-variable warnings by "using" E.  */
793   #if ! defined lint || defined __GNUC__
794 < # define YYUSE(e) ((void) (e))
794 > # define YYUSE(E) ((void) (E))
795   #else
796 < # define YYUSE(e) /* empty */
796 > # define YYUSE(E) /* empty */
797   #endif
798  
799 < /* Identity function, used to suppress warnings about constant conditions.  */
800 < #ifndef lint
801 < # define YYID(n) (n)
799 > #if defined __GNUC__ && 407 <= __GNUC__ * 100 + __GNUC_MINOR__
800 > /* Suppress an incorrect diagnostic about yylval being uninitialized.  */
801 > # define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN \
802 >    _Pragma ("GCC diagnostic push") \
803 >    _Pragma ("GCC diagnostic ignored \"-Wuninitialized\"")\
804 >    _Pragma ("GCC diagnostic ignored \"-Wmaybe-uninitialized\"")
805 > # define YY_IGNORE_MAYBE_UNINITIALIZED_END \
806 >    _Pragma ("GCC diagnostic pop")
807   #else
808 < #if (defined __STDC__ || defined __C99__FUNC__ \
836 <     || defined __cplusplus || defined _MSC_VER)
837 < static int
838 < YYID (int yyi)
839 < #else
840 < static int
841 < YYID (yyi)
842 <    int yyi;
808 > # define YY_INITIAL_VALUE(Value) Value
809   #endif
810 < {
811 <  return yyi;
812 < }
810 > #ifndef YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
811 > # define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
812 > # define YY_IGNORE_MAYBE_UNINITIALIZED_END
813 > #endif
814 > #ifndef YY_INITIAL_VALUE
815 > # define YY_INITIAL_VALUE(Value) /* Nothing. */
816   #endif
817  
818 +
819   #if ! defined yyoverflow || YYERROR_VERBOSE
820  
821   /* The parser invokes alloca or malloc; define the necessary symbols.  */
# Line 863 | Line 833 | YYID (yyi)
833   #    define alloca _alloca
834   #   else
835   #    define YYSTACK_ALLOC alloca
836 < #    if ! defined _ALLOCA_H && ! defined _STDLIB_H && (defined __STDC__ || defined __C99__FUNC__ \
867 <     || defined __cplusplus || defined _MSC_VER)
836 > #    if ! defined _ALLOCA_H && ! defined EXIT_SUCCESS
837   #     include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
838 < #     ifndef _STDLIB_H
839 < #      define _STDLIB_H 1
838 >      /* Use EXIT_SUCCESS as a witness for stdlib.h.  */
839 > #     ifndef EXIT_SUCCESS
840 > #      define EXIT_SUCCESS 0
841   #     endif
842   #    endif
843   #   endif
# Line 875 | Line 845 | YYID (yyi)
845   # endif
846  
847   # ifdef YYSTACK_ALLOC
848 <   /* Pacify GCC's `empty if-body' warning.  */
849 < #  define YYSTACK_FREE(Ptr) do { /* empty */; } while (YYID (0))
848 >   /* Pacify GCC's 'empty if-body' warning.  */
849 > #  define YYSTACK_FREE(Ptr) do { /* empty */; } while (0)
850   #  ifndef YYSTACK_ALLOC_MAXIMUM
851      /* The OS might guarantee only one guard page at the bottom of the stack,
852         and a page size can be as small as 4096 bytes.  So we cannot safely
# Line 890 | Line 860 | YYID (yyi)
860   #  ifndef YYSTACK_ALLOC_MAXIMUM
861   #   define YYSTACK_ALLOC_MAXIMUM YYSIZE_MAXIMUM
862   #  endif
863 < #  if (defined __cplusplus && ! defined _STDLIB_H \
863 > #  if (defined __cplusplus && ! defined EXIT_SUCCESS \
864         && ! ((defined YYMALLOC || defined malloc) \
865 <             && (defined YYFREE || defined free)))
865 >             && (defined YYFREE || defined free)))
866   #   include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
867 < #   ifndef _STDLIB_H
868 < #    define _STDLIB_H 1
867 > #   ifndef EXIT_SUCCESS
868 > #    define EXIT_SUCCESS 0
869   #   endif
870   #  endif
871   #  ifndef YYMALLOC
872   #   define YYMALLOC malloc
873 < #   if ! defined malloc && ! defined _STDLIB_H && (defined __STDC__ || defined __C99__FUNC__ \
904 <     || defined __cplusplus || defined _MSC_VER)
873 > #   if ! defined malloc && ! defined EXIT_SUCCESS
874   void *malloc (YYSIZE_T); /* INFRINGES ON USER NAME SPACE */
875   #   endif
876   #  endif
877   #  ifndef YYFREE
878   #   define YYFREE free
879 < #   if ! defined free && ! defined _STDLIB_H && (defined __STDC__ || defined __C99__FUNC__ \
911 <     || defined __cplusplus || defined _MSC_VER)
879 > #   if ! defined free && ! defined EXIT_SUCCESS
880   void free (void *); /* INFRINGES ON USER NAME SPACE */
881   #   endif
882   #  endif
# Line 918 | Line 886 | void free (void *); /* INFRINGES ON USER
886  
887   #if (! defined yyoverflow \
888       && (! defined __cplusplus \
889 <         || (defined YYSTYPE_IS_TRIVIAL && YYSTYPE_IS_TRIVIAL)))
889 >         || (defined YYSTYPE_IS_TRIVIAL && YYSTYPE_IS_TRIVIAL)))
890  
891   /* A type that is properly aligned for any stack member.  */
892   union yyalloc
# Line 936 | Line 904 | union yyalloc
904       ((N) * (sizeof (yytype_int16) + sizeof (YYSTYPE)) \
905        + YYSTACK_GAP_MAXIMUM)
906  
907 < /* Copy COUNT objects from FROM to TO.  The source and destination do
940 <   not overlap.  */
941 < # ifndef YYCOPY
942 < #  if defined __GNUC__ && 1 < __GNUC__
943 < #   define YYCOPY(To, From, Count) \
944 <      __builtin_memcpy (To, From, (Count) * sizeof (*(From)))
945 < #  else
946 < #   define YYCOPY(To, From, Count)              \
947 <      do                                        \
948 <        {                                       \
949 <          YYSIZE_T yyi;                         \
950 <          for (yyi = 0; yyi < (Count); yyi++)   \
951 <            (To)[yyi] = (From)[yyi];            \
952 <        }                                       \
953 <      while (YYID (0))
954 < #  endif
955 < # endif
907 > # define YYCOPY_NEEDED 1
908  
909   /* Relocate STACK from its old location to the new one.  The
910     local variables YYSIZE and YYSTACKSIZE give the old and new number of
911     elements in the stack, and YYPTR gives the new location of the
912     stack.  Advance YYPTR to a properly aligned location for the next
913     stack.  */
914 < # define YYSTACK_RELOCATE(Stack_alloc, Stack)                           \
915 <    do                                                                  \
916 <      {                                                                 \
917 <        YYSIZE_T yynewbytes;                                            \
918 <        YYCOPY (&yyptr->Stack_alloc, Stack, yysize);                    \
919 <        Stack = &yyptr->Stack_alloc;                                    \
920 <        yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAXIMUM; \
921 <        yyptr += yynewbytes / sizeof (*yyptr);                          \
922 <      }                                                                 \
923 <    while (YYID (0))
914 > # define YYSTACK_RELOCATE(Stack_alloc, Stack)                           \
915 >    do                                                                  \
916 >      {                                                                 \
917 >        YYSIZE_T yynewbytes;                                            \
918 >        YYCOPY (&yyptr->Stack_alloc, Stack, yysize);                    \
919 >        Stack = &yyptr->Stack_alloc;                                    \
920 >        yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAXIMUM; \
921 >        yyptr += yynewbytes / sizeof (*yyptr);                          \
922 >      }                                                                 \
923 >    while (0)
924  
925   #endif
926  
927 + #if defined YYCOPY_NEEDED && YYCOPY_NEEDED
928 + /* Copy COUNT objects from SRC to DST.  The source and destination do
929 +   not overlap.  */
930 + # ifndef YYCOPY
931 + #  if defined __GNUC__ && 1 < __GNUC__
932 + #   define YYCOPY(Dst, Src, Count) \
933 +      __builtin_memcpy (Dst, Src, (Count) * sizeof (*(Src)))
934 + #  else
935 + #   define YYCOPY(Dst, Src, Count)              \
936 +      do                                        \
937 +        {                                       \
938 +          YYSIZE_T yyi;                         \
939 +          for (yyi = 0; yyi < (Count); yyi++)   \
940 +            (Dst)[yyi] = (Src)[yyi];            \
941 +        }                                       \
942 +      while (0)
943 + #  endif
944 + # endif
945 + #endif /* !YYCOPY_NEEDED */
946 +
947   /* YYFINAL -- State number of the termination state.  */
948   #define YYFINAL  2
949   /* YYLAST -- Last index in YYTABLE.  */
950 < #define YYLAST   1413
950 > #define YYLAST   1377
951  
952   /* YYNTOKENS -- Number of terminals.  */
953 < #define YYNTOKENS  267
953 > #define YYNTOKENS  239
954   /* YYNNTS -- Number of nonterminals.  */
955 < #define YYNNTS  346
955 > #define YYNNTS  297
956   /* YYNRULES -- Number of rules.  */
957 < #define YYNRULES  743
958 < /* YYNRULES -- Number of states.  */
959 < #define YYNSTATES  1494
957 > #define YYNRULES  669
958 > /* YYNSTATES -- Number of states.  */
959 > #define YYNSTATES  1318
960  
961 < /* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX.  */
961 > /* YYTRANSLATE[YYX] -- Symbol number corresponding to YYX as returned
962 >   by yylex, with out-of-bounds checking.  */
963   #define YYUNDEFTOK  2
964 < #define YYMAXUTOK   516
964 > #define YYMAXUTOK   487
965  
966 < #define YYTRANSLATE(YYX)                                                \
966 > #define YYTRANSLATE(YYX)                                                \
967    ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK)
968  
969 < /* YYTRANSLATE[YYLEX] -- Bison symbol number corresponding to YYLEX.  */
970 < static const yytype_uint16 yytranslate[] =
969 > /* YYTRANSLATE[TOKEN-NUM] -- Symbol number corresponding to TOKEN-NUM
970 >   as returned by yylex, without out-of-bounds checking.  */
971 > static const yytype_uint8 yytranslate[] =
972   {
973         0,     2,     2,     2,     2,     2,     2,     2,     2,     2,
974         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
975         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
976         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
977 <       2,     2,     2,     2,   266,     2,     2,     2,     2,     2,
978 <       2,     2,     2,     2,     2,     2,     2,     2,     2,   262,
979 <       2,   265,     2,     2,     2,     2,     2,     2,     2,     2,
977 >       2,     2,     2,     2,   237,     2,     2,     2,     2,     2,
978 >       2,     2,     2,     2,     2,     2,     2,     2,   238,   233,
979 >       2,   236,     2,     2,     2,     2,     2,     2,     2,     2,
980         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
981         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
982         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
983         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
984         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
985 <       2,     2,     2,   264,     2,   263,     2,     2,     2,     2,
985 >       2,     2,     2,   235,     2,   234,     2,     2,     2,     2,
986         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
987         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
988         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
# Line 1044 | Line 1018 | static const yytype_uint16 yytranslate[]
1018       195,   196,   197,   198,   199,   200,   201,   202,   203,   204,
1019       205,   206,   207,   208,   209,   210,   211,   212,   213,   214,
1020       215,   216,   217,   218,   219,   220,   221,   222,   223,   224,
1021 <     225,   226,   227,   228,   229,   230,   231,   232,   233,   234,
1048 <     235,   236,   237,   238,   239,   240,   241,   242,   243,   244,
1049 <     245,   246,   247,   248,   249,   250,   251,   252,   253,   254,
1050 <     255,   256,   257,   258,   259,   260,   261
1021 >     225,   226,   227,   228,   229,   230,   231,   232
1022   };
1023  
1024   #if YYDEBUG
1025 < /* YYPRHS[YYN] -- Index of the first RHS symbol of rule number YYN in
1055 <   YYRHS.  */
1056 < static const yytype_uint16 yyprhs[] =
1057 < {
1058 <       0,     0,     3,     4,     7,     9,    11,    13,    15,    17,
1059 <      19,    21,    23,    25,    27,    29,    31,    33,    35,    37,
1060 <      39,    41,    43,    45,    47,    50,    53,    54,    56,    59,
1061 <      63,    67,    71,    75,    79,    80,    82,    85,    89,    93,
1062 <      97,   103,   106,   108,   110,   112,   115,   120,   125,   131,
1063 <     134,   136,   138,   140,   142,   144,   146,   148,   150,   152,
1064 <     154,   156,   158,   160,   163,   164,   170,   174,   176,   178,
1065 <     180,   185,   190,   195,   200,   205,   210,   215,   220,   225,
1066 <     230,   235,   241,   244,   246,   248,   250,   252,   255,   260,
1067 <     265,   270,   276,   279,   281,   283,   285,   287,   289,   291,
1068 <     293,   295,   297,   299,   301,   303,   305,   308,   313,   318,
1069 <     323,   328,   333,   338,   343,   348,   353,   358,   363,   368,
1070 <     373,   378,   383,   388,   393,   398,   399,   407,   408,   410,
1071 <     413,   415,   417,   419,   421,   423,   425,   427,   429,   431,
1072 <     433,   435,   437,   439,   441,   443,   445,   447,   449,   451,
1073 <     453,   455,   457,   459,   462,   467,   469,   474,   479,   484,
1074 <     489,   494,   495,   501,   505,   507,   509,   511,   513,   515,
1075 <     517,   519,   521,   523,   525,   527,   529,   531,   533,   535,
1076 <     537,   539,   541,   543,   545,   550,   555,   560,   565,   570,
1077 <     575,   580,   585,   590,   595,   600,   605,   610,   615,   616,
1078 <     622,   626,   628,   629,   633,   634,   637,   639,   641,   643,
1079 <     645,   647,   649,   651,   653,   655,   657,   659,   661,   663,
1080 <     665,   667,   669,   670,   678,   679,   681,   684,   686,   688,
1081 <     690,   692,   694,   696,   698,   700,   702,   704,   706,   708,
1082 <     710,   712,   715,   720,   722,   727,   732,   737,   742,   747,
1083 <     752,   757,   762,   767,   772,   777,   782,   783,   790,   791,
1084 <     797,   801,   803,   805,   807,   809,   812,   814,   816,   818,
1085 <     820,   822,   825,   826,   832,   836,   838,   840,   844,   849,
1086 <     854,   855,   862,   865,   867,   869,   871,   873,   875,   877,
1087 <     879,   881,   883,   885,   887,   889,   891,   893,   895,   897,
1088 <     899,   902,   907,   912,   917,   922,   927,   928,   934,   938,
1089 <     940,   941,   945,   946,   949,   951,   953,   955,   957,   959,
1090 <     961,   963,   965,   967,   969,   974,   979,   984,   989,   994,
1091 <     999,  1004,  1009,  1014,  1019,  1020,  1027,  1030,  1032,  1034,
1092 <    1036,  1038,  1041,  1046,  1051,  1056,  1057,  1064,  1067,  1069,
1093 <    1071,  1073,  1075,  1078,  1083,  1088,  1089,  1095,  1099,  1101,
1094 <    1103,  1105,  1107,  1109,  1111,  1113,  1115,  1117,  1119,  1121,
1095 <    1123,  1124,  1131,  1134,  1136,  1138,  1140,  1143,  1148,  1149,
1096 <    1155,  1159,  1161,  1163,  1165,  1167,  1169,  1171,  1173,  1175,
1097 <    1177,  1179,  1181,  1183,  1184,  1192,  1193,  1195,  1198,  1200,
1098 <    1202,  1204,  1206,  1208,  1210,  1212,  1214,  1216,  1218,  1220,
1099 <    1222,  1224,  1226,  1228,  1230,  1232,  1234,  1236,  1238,  1241,
1100 <    1246,  1248,  1253,  1258,  1263,  1268,  1273,  1278,  1283,  1288,
1101 <    1289,  1295,  1299,  1301,  1302,  1306,  1307,  1310,  1312,  1314,
1102 <    1316,  1318,  1320,  1325,  1330,  1335,  1340,  1345,  1350,  1355,
1103 <    1360,  1365,  1370,  1371,  1378,  1379,  1385,  1389,  1391,  1393,
1104 <    1396,  1398,  1400,  1402,  1404,  1406,  1411,  1416,  1417,  1424,
1105 <    1427,  1429,  1431,  1433,  1435,  1440,  1445,  1451,  1454,  1456,
1106 <    1458,  1460,  1465,  1466,  1473,  1474,  1480,  1484,  1486,  1488,
1107 <    1491,  1493,  1495,  1497,  1499,  1501,  1506,  1511,  1517,  1520,
1108 <    1522,  1524,  1526,  1528,  1530,  1532,  1534,  1536,  1538,  1540,
1109 <    1542,  1544,  1546,  1548,  1550,  1552,  1554,  1556,  1558,  1560,
1110 <    1562,  1564,  1566,  1568,  1570,  1572,  1574,  1576,  1578,  1580,
1111 <    1582,  1584,  1586,  1588,  1590,  1592,  1594,  1596,  1598,  1600,
1112 <    1602,  1604,  1606,  1608,  1610,  1612,  1614,  1616,  1618,  1620,
1113 <    1622,  1624,  1626,  1628,  1630,  1632,  1634,  1636,  1641,  1646,
1114 <    1651,  1656,  1661,  1666,  1671,  1676,  1681,  1686,  1691,  1696,
1115 <    1701,  1706,  1711,  1716,  1721,  1726,  1731,  1736,  1741,  1746,
1116 <    1751,  1756,  1761,  1766,  1771,  1776,  1781,  1786,  1791,  1796,
1117 <    1801,  1806,  1811,  1816,  1821,  1826,  1831,  1836,  1841,  1846,
1118 <    1851,  1856,  1861,  1866,  1871,  1876,  1881,  1886,  1891,  1892,
1119 <    1898,  1902,  1904,  1906,  1908,  1910,  1912,  1914,  1916,  1918,
1120 <    1920,  1922,  1924,  1926,  1928,  1930,  1932,  1934,  1936,  1938,
1121 <    1940,  1942,  1943,  1949,  1953,  1955,  1957,  1959,  1961,  1963,
1122 <    1965,  1967,  1969,  1971,  1973,  1975,  1977,  1979,  1981,  1983,
1123 <    1985,  1987,  1989,  1991,  1993,  1998,  2003,  2008,  2013,  2018,
1124 <    2019,  2026,  2029,  2031,  2033,  2035,  2037,  2039,  2041,  2043,
1125 <    2045,  2050,  2055,  2056,  2062,  2066,  2068,  2070,  2072,  2077,
1126 <    2082,  2083,  2089,  2093,  2095,  2097,  2099,  2105,  2108,  2110,
1127 <    2112,  2114,  2116,  2118,  2120,  2122,  2124,  2126,  2128,  2130,
1128 <    2132,  2134,  2136,  2138,  2140,  2142,  2144,  2146,  2148,  2153,
1129 <    2158,  2163,  2168,  2173,  2178,  2183,  2188,  2193,  2198,  2203,
1130 <    2208,  2213,  2218,  2223,  2228,  2233,  2238,  2244,  2247,  2249,
1131 <    2251,  2253,  2255,  2257,  2259,  2261,  2263,  2265,  2270,  2275,
1132 <    2280,  2285,  2290,  2295
1133 < };
1134 <
1135 < /* YYRHS -- A `-1'-separated list of the rules' RHS.  */
1136 < static const yytype_int16 yyrhs[] =
1137 < {
1138 <     268,     0,    -1,    -1,   268,   269,    -1,   297,    -1,   303,
1139 <      -1,   318,    -1,   582,    -1,   355,    -1,   374,    -1,   388,
1140 <      -1,   279,    -1,   603,    -1,   414,    -1,   421,    -1,   431,
1141 <      -1,   440,    -1,   471,    -1,   481,    -1,   487,    -1,   501,
1142 <      -1,   566,    -1,   491,    -1,   274,    -1,     1,   262,    -1,
1143 <       1,   263,    -1,    -1,   271,    -1,   133,   270,    -1,   133,
1144 <     175,   270,    -1,   133,   176,   270,    -1,   133,   177,   270,
1145 <      -1,   133,   178,   270,    -1,   133,   179,   270,    -1,    -1,
1146 <     273,    -1,   133,   272,    -1,   133,    14,   272,    -1,   133,
1147 <      15,   272,    -1,   133,    16,   272,    -1,   121,   264,   275,
1148 <     263,   262,    -1,   275,   276,    -1,   276,    -1,   277,    -1,
1149 <     278,    -1,     1,   262,    -1,   120,   265,   155,   262,    -1,
1150 <     150,   265,   155,   262,    -1,   183,   264,   280,   263,   262,
1151 <      -1,   280,   281,    -1,   281,    -1,   288,    -1,   293,    -1,
1152 <     296,    -1,   290,    -1,   291,    -1,   292,    -1,   295,    -1,
1153 <     287,    -1,   294,    -1,   289,    -1,   286,    -1,   282,    -1,
1154 <       1,   262,    -1,    -1,   170,   283,   265,   284,   262,    -1,
1155 <     284,   266,   285,    -1,   285,    -1,   171,    -1,   172,    -1,
1156 <     169,   265,   155,   262,    -1,   167,   265,   155,   262,    -1,
1157 <     122,   265,   155,   262,    -1,   185,   265,   155,   262,    -1,
1158 <      37,   265,   155,   262,    -1,   125,   265,   155,   262,    -1,
1159 <     124,   265,   155,   262,    -1,   257,   265,   155,   262,    -1,
1160 <     258,   265,   155,   262,    -1,   229,   265,   133,   262,    -1,
1161 <      86,   265,   199,   262,    -1,     5,   264,   298,   263,   262,
1162 <      -1,   298,   299,    -1,   299,    -1,   300,    -1,   302,    -1,
1163 <     301,    -1,     1,   262,    -1,   122,   265,   155,   262,    -1,
1164 <      48,   265,   155,   262,    -1,    37,   265,   155,   262,    -1,
1165 <     104,   264,   304,   263,   262,    -1,   304,   305,    -1,   305,
1166 <      -1,   306,    -1,   307,    -1,   316,    -1,   317,    -1,   308,
1167 <      -1,   310,    -1,   312,    -1,   313,    -1,   315,    -1,   311,
1168 <      -1,   314,    -1,   309,    -1,     1,   262,    -1,   221,   265,
1169 <     155,   262,    -1,   140,   265,   155,   262,    -1,    64,   265,
1170 <     155,   262,    -1,    57,   265,   155,   262,    -1,    62,   265,
1171 <     155,   262,    -1,    63,   265,   155,   262,    -1,    60,   265,
1172 <     155,   262,    -1,    59,   265,   155,   262,    -1,    61,   265,
1173 <     155,   262,    -1,    58,   265,   155,   262,    -1,   105,   265,
1174 <     222,   262,    -1,   105,   265,   224,   262,    -1,   105,   265,
1175 <     228,   262,    -1,   105,   265,   226,   262,    -1,   105,   265,
1176 <     227,   262,    -1,   105,   265,   225,   262,    -1,   105,   265,
1177 <     223,   262,    -1,   255,   265,   199,   262,    -1,    -1,   138,
1178 <     319,   320,   264,   321,   263,   262,    -1,    -1,   324,    -1,
1179 <     321,   322,    -1,   322,    -1,   323,    -1,   325,    -1,   326,
1180 <      -1,   345,    -1,   346,    -1,   330,    -1,   329,    -1,   334,
1181 <      -1,   335,    -1,   337,    -1,   338,    -1,   339,    -1,   340,
1182 <      -1,   341,    -1,   336,    -1,   342,    -1,   343,    -1,   344,
1183 <      -1,   347,    -1,   327,    -1,   328,    -1,   348,    -1,     1,
1184 <     262,    -1,   122,   265,   155,   262,    -1,   155,    -1,   250,
1185 <     265,   155,   262,    -1,   149,   265,   155,   262,    -1,    50,
1186 <     265,   199,   262,    -1,   168,   265,   155,   262,    -1,    26,
1187 <     265,   155,   262,    -1,    -1,   238,   331,   265,   332,   262,
1188 <      -1,   332,   266,   333,    -1,   333,    -1,   206,    -1,   209,
1189 <      -1,   210,    -1,   212,    -1,   213,    -1,   216,    -1,   235,
1190 <      -1,   230,    -1,   232,    -1,   239,    -1,   236,    -1,   215,
1191 <      -1,   231,    -1,   234,    -1,   217,    -1,   242,    -1,   207,
1192 <      -1,   208,    -1,   220,    -1,    74,   265,   199,   262,    -1,
1193 <     163,   265,   199,   262,    -1,   164,   265,   199,   262,    -1,
1194 <      94,   265,   199,   262,    -1,   259,   265,   199,   262,    -1,
1195 <     249,   265,   199,   262,    -1,    67,   265,   199,   262,    -1,
1196 <     127,   265,   199,   262,    -1,    38,   265,   199,   262,    -1,
1197 <     161,   265,   199,   262,    -1,     5,   265,   199,   262,    -1,
1198 <      79,   265,   199,   262,    -1,    81,   265,   199,   262,    -1,
1199 <     231,   265,   199,   262,    -1,    -1,    55,   349,   265,   350,
1200 <     262,    -1,   350,   266,   351,    -1,   351,    -1,    -1,   132,
1201 <     352,   354,    -1,    -1,   353,   354,    -1,    74,    -1,   163,
1202 <      -1,    94,    -1,   249,    -1,   259,    -1,    67,    -1,    38,
1203 <      -1,   161,    -1,     5,    -1,    79,    -1,   127,    -1,   231,
1204 <      -1,   143,    -1,    81,    -1,   164,    -1,    50,    -1,    -1,
1205 <      26,   356,   357,   264,   358,   263,   262,    -1,    -1,   361,
1206 <      -1,   358,   359,    -1,   359,    -1,   360,    -1,   371,    -1,
1207 <     372,    -1,   362,    -1,   363,    -1,   373,    -1,   364,    -1,
1208 <     365,    -1,   366,    -1,   367,    -1,   368,    -1,   369,    -1,
1209 <     370,    -1,     1,   262,    -1,   122,   265,   155,   262,    -1,
1210 <     155,    -1,   152,   265,   271,   262,    -1,   153,   265,   271,
1211 <     262,    -1,   136,   265,   133,   262,    -1,    30,   265,   271,
1212 <     262,    -1,   114,   265,   133,   262,    -1,   109,   265,   133,
1213 <     262,    -1,   111,   265,   133,   262,    -1,   110,   265,   133,
1214 <     262,    -1,   180,   265,   273,   262,    -1,    23,   265,   133,
1215 <     262,    -1,    24,   265,   133,   262,    -1,   135,   265,   133,
1216 <     262,    -1,    -1,   102,   375,   264,   380,   263,   262,    -1,
1217 <      -1,    55,   377,   265,   378,   262,    -1,   378,   266,   379,
1218 <      -1,   379,    -1,   237,    -1,    78,    -1,   233,    -1,   380,
1219 <     381,    -1,   381,    -1,   382,    -1,   376,    -1,   386,    -1,
1220 <     387,    -1,     1,   262,    -1,    -1,   154,   265,   384,   383,
1221 <     262,    -1,   384,   266,   385,    -1,   385,    -1,   133,    -1,
1222 <     133,   204,   133,    -1,    91,   265,   155,   262,    -1,    85,
1223 <     265,   155,   262,    -1,    -1,    75,   389,   264,   390,   263,
1224 <     262,    -1,   390,   391,    -1,   391,    -1,   392,    -1,   393,
1225 <      -1,   395,    -1,   397,    -1,   404,    -1,   405,    -1,   406,
1226 <      -1,   408,    -1,   409,    -1,   410,    -1,   394,    -1,   411,
1227 <      -1,   412,    -1,   407,    -1,   413,    -1,   396,    -1,     1,
1228 <     262,    -1,   250,   265,   155,   262,    -1,   149,   265,   155,
1229 <     262,    -1,   193,   265,   199,   262,    -1,    26,   265,   155,
1230 <     262,    -1,    50,   265,   199,   262,    -1,    -1,    55,   398,
1231 <     265,   399,   262,    -1,   399,   266,   400,    -1,   400,    -1,
1232 <      -1,   132,   401,   403,    -1,    -1,   402,   403,    -1,   193,
1233 <      -1,    51,    -1,    95,    -1,    76,    -1,    20,    -1,    21,
1234 <      -1,   131,    -1,    69,    -1,   174,    -1,   123,    -1,    95,
1235 <     265,   199,   262,    -1,    76,   265,   199,   262,    -1,    51,
1236 <     265,   199,   262,    -1,    20,   265,   199,   262,    -1,   131,
1237 <     265,   199,   262,    -1,    69,   265,   199,   262,    -1,   192,
1238 <     265,   155,   262,    -1,   159,   265,   155,   262,    -1,   158,
1239 <     265,   133,   262,    -1,   123,   265,   199,   262,    -1,    -1,
1240 <     173,   415,   264,   416,   263,   262,    -1,   416,   417,    -1,
1241 <     417,    -1,   418,    -1,   419,    -1,   420,    -1,     1,   262,
1242 <      -1,   157,   265,   155,   262,    -1,    22,   265,   155,   262,
1243 <      -1,   126,   265,   155,   262,    -1,    -1,   187,   422,   264,
1244 <     423,   263,   262,    -1,   423,   424,    -1,   424,    -1,   425,
1245 <      -1,   426,    -1,   427,    -1,     1,   262,    -1,   122,   265,
1246 <     155,   262,    -1,   250,   265,   155,   262,    -1,    -1,   189,
1247 <     428,   265,   429,   262,    -1,   429,   266,   430,    -1,   430,
1248 <      -1,    94,    -1,   246,    -1,   249,    -1,   259,    -1,   247,
1249 <      -1,   241,    -1,   173,    -1,   248,    -1,   240,    -1,   220,
1250 <      -1,   205,    -1,    -1,   188,   432,   264,   433,   263,   262,
1251 <      -1,   433,   434,    -1,   434,    -1,   435,    -1,   436,    -1,
1252 <       1,   262,    -1,   122,   265,   155,   262,    -1,    -1,   189,
1253 <     437,   265,   438,   262,    -1,   438,   266,   439,    -1,   439,
1254 <      -1,    94,    -1,   246,    -1,   249,    -1,   259,    -1,   247,
1255 <      -1,   241,    -1,   173,    -1,   248,    -1,   240,    -1,   220,
1256 <      -1,   205,    -1,    -1,    29,   441,   442,   264,   443,   263,
1257 <     262,    -1,    -1,   446,    -1,   443,   444,    -1,   444,    -1,
1258 <     445,    -1,   447,    -1,   448,    -1,   449,    -1,   450,    -1,
1259 <     452,    -1,   451,    -1,   453,    -1,   454,    -1,   467,    -1,
1260 <     468,    -1,   469,    -1,   465,    -1,   462,    -1,   464,    -1,
1261 <     463,    -1,   461,    -1,   470,    -1,   466,    -1,     1,   262,
1262 <      -1,   122,   265,   155,   262,    -1,   155,    -1,    85,   265,
1263 <     155,   262,    -1,   257,   265,   155,   262,    -1,   181,   265,
1264 <     155,   262,    -1,     3,   265,   155,   262,    -1,   154,   265,
1265 <     133,   262,    -1,     6,   265,   218,   262,    -1,     6,   265,
1266 <     219,   262,    -1,    54,   265,   155,   262,    -1,    -1,    55,
1267 <     455,   265,   456,   262,    -1,   456,   266,   457,    -1,   457,
1268 <      -1,    -1,   132,   458,   460,    -1,    -1,   459,   460,    -1,
1269 <      27,    -1,    31,    -1,    10,    -1,    12,    -1,   244,    -1,
1270 <     168,   265,   155,   262,    -1,    50,   265,   199,   262,    -1,
1271 <      31,   265,   199,   262,    -1,    27,   265,   199,   262,    -1,
1272 <      10,   265,   199,   262,    -1,   244,   265,   199,   262,    -1,
1273 <      87,   265,   155,   262,    -1,   100,   265,   155,   262,    -1,
1274 <      26,   265,   155,   262,    -1,    25,   265,   155,   262,    -1,
1275 <      -1,    92,   472,   264,   477,   263,   262,    -1,    -1,   189,
1276 <     474,   265,   475,   262,    -1,   475,   266,   476,    -1,   476,
1277 <      -1,   160,    -1,   477,   478,    -1,   478,    -1,   479,    -1,
1278 <     480,    -1,   473,    -1,     1,    -1,   250,   265,   155,   262,
1279 <      -1,   157,   265,   155,   262,    -1,    -1,    36,   482,   264,
1280 <     483,   263,   262,    -1,   483,   484,    -1,   484,    -1,   485,
1281 <      -1,   486,    -1,     1,    -1,    91,   265,   155,   262,    -1,
1282 <     157,   265,   155,   262,    -1,    52,   264,   488,   263,   262,
1283 <      -1,   488,   489,    -1,   489,    -1,   490,    -1,     1,    -1,
1284 <      91,   265,   155,   262,    -1,    -1,    65,   492,   264,   497,
1285 <     263,   262,    -1,    -1,   189,   494,   265,   495,   262,    -1,
1286 <     495,   266,   496,    -1,   496,    -1,   160,    -1,   497,   498,
1287 <      -1,   498,    -1,   499,    -1,   500,    -1,   493,    -1,     1,
1288 <      -1,   122,   265,   155,   262,    -1,   157,   265,   155,   262,
1289 <      -1,    66,   264,   502,   263,   262,    -1,   502,   503,    -1,
1290 <     503,    -1,   512,    -1,   513,    -1,   515,    -1,   516,    -1,
1291 <     517,    -1,   518,    -1,   519,    -1,   520,    -1,   521,    -1,
1292 <     522,    -1,   511,    -1,   524,    -1,   525,    -1,   526,    -1,
1293 <     527,    -1,   543,    -1,   529,    -1,   531,    -1,   533,    -1,
1294 <     532,    -1,   536,    -1,   530,    -1,   537,    -1,   538,    -1,
1295 <     539,    -1,   540,    -1,   542,    -1,   541,    -1,   557,    -1,
1296 <     544,    -1,   548,    -1,   549,    -1,   553,    -1,   534,    -1,
1297 <     535,    -1,   563,    -1,   561,    -1,   562,    -1,   545,    -1,
1298 <     514,    -1,   546,    -1,   547,    -1,   564,    -1,   552,    -1,
1299 <     523,    -1,   565,    -1,   550,    -1,   551,    -1,   507,    -1,
1300 <     510,    -1,   505,    -1,   506,    -1,   508,    -1,   509,    -1,
1301 <     528,    -1,   504,    -1,     1,    -1,   116,   265,   133,   262,
1302 <      -1,    72,   265,   133,   262,    -1,    73,   265,   133,   262,
1303 <      -1,    12,   265,   199,   262,    -1,   256,   265,   199,   262,
1304 <      -1,   162,   265,   271,   262,    -1,   186,   265,   199,   262,
1305 <      -1,    93,   265,   133,   262,    -1,    84,   265,   199,   262,
1306 <      -1,    89,   265,   199,   262,    -1,    43,   265,   199,   262,
1307 <      -1,    53,   265,   199,   262,    -1,     8,   265,   199,   262,
1308 <      -1,   113,   265,   271,   262,    -1,   112,   265,   133,   262,
1309 <      -1,   106,   265,   133,   262,    -1,     9,   265,   271,   262,
1310 <      -1,   203,   265,   271,   262,    -1,   202,   265,   271,   262,
1311 <      -1,    77,   265,   133,   262,    -1,    97,   265,   199,   262,
1312 <      -1,    96,   265,   155,   262,    -1,    90,   265,   199,   262,
1313 <      -1,   261,   265,   199,   262,    -1,   194,   265,   199,   262,
1314 <      -1,   197,   265,   199,   262,    -1,   198,   265,   199,   262,
1315 <      -1,   196,   265,   199,   262,    -1,   196,   265,   200,   262,
1316 <      -1,   195,   265,   199,   262,    -1,   195,   265,   200,   262,
1317 <      -1,   147,   265,   271,   262,    -1,    19,   265,   271,   262,
1318 <      -1,   139,   265,   199,   262,    -1,   148,   265,   271,   262,
1319 <      -1,   190,   265,   199,   262,    -1,   130,   265,   199,   262,
1320 <      -1,   245,   265,   199,   262,    -1,   142,   265,   199,   262,
1321 <      -1,   117,   265,   155,   262,    -1,    88,   265,   271,   262,
1322 <      -1,    45,   265,   133,   262,    -1,   115,   265,   133,   262,
1323 <      -1,   184,   265,   155,   262,    -1,    32,   265,   155,   262,
1324 <      -1,    28,   265,   133,   262,    -1,   251,   265,   199,   262,
1325 <      -1,    47,   265,   155,   262,    -1,   151,   265,   199,   262,
1326 <      -1,    39,   265,   199,   262,    -1,   243,   265,   271,   262,
1327 <      -1,    -1,   144,   554,   265,   555,   262,    -1,   555,   266,
1328 <     556,    -1,   556,    -1,   206,    -1,   209,    -1,   210,    -1,
1329 <     212,    -1,   213,    -1,   216,    -1,   235,    -1,   230,    -1,
1330 <     232,    -1,   239,    -1,   236,    -1,   215,    -1,   231,    -1,
1331 <     234,    -1,   217,    -1,   242,    -1,   207,    -1,   208,    -1,
1332 <     220,    -1,    -1,   141,   558,   265,   559,   262,    -1,   559,
1333 <     266,   560,    -1,   560,    -1,   206,    -1,   209,    -1,   210,
1334 <      -1,   212,    -1,   213,    -1,   216,    -1,   235,    -1,   230,
1335 <      -1,   232,    -1,   239,    -1,   236,    -1,   215,    -1,   231,
1336 <      -1,   234,    -1,   217,    -1,   242,    -1,   207,    -1,   208,
1337 <      -1,   220,    -1,   118,   265,   133,   262,    -1,   119,   265,
1338 <     133,   262,    -1,    33,   265,   133,   262,    -1,   211,   265,
1339 <     273,   262,    -1,    44,   265,   199,   262,    -1,    -1,    68,
1340 <     567,   264,   568,   263,   262,    -1,   568,   569,    -1,   569,
1341 <      -1,   570,    -1,   571,    -1,   572,    -1,   576,    -1,   577,
1342 <      -1,   578,    -1,     1,    -1,    49,   265,   199,   262,    -1,
1343 <      46,   265,   271,   262,    -1,    -1,   104,   573,   265,   574,
1344 <     262,    -1,   574,   266,   575,    -1,   575,    -1,   201,    -1,
1345 <      11,    -1,   250,   265,   155,   262,    -1,   122,   265,   155,
1346 <     262,    -1,    -1,     4,   579,   265,   580,   262,    -1,   580,
1347 <     266,   581,    -1,   581,    -1,   201,    -1,    11,    -1,    22,
1348 <     264,   583,   263,   262,    -1,   583,   584,    -1,   584,    -1,
1349 <     587,    -1,   588,    -1,   589,    -1,   590,    -1,   595,    -1,
1350 <     591,    -1,   592,    -1,   593,    -1,   594,    -1,   596,    -1,
1351 <     597,    -1,   598,    -1,   586,    -1,   599,    -1,   600,    -1,
1352 <     601,    -1,   602,    -1,   585,    -1,     1,    -1,    40,   265,
1353 <     199,   262,    -1,   165,   265,   199,   262,    -1,    42,   265,
1354 <     199,   262,    -1,   252,   265,   199,   262,    -1,   253,   265,
1355 <     199,   262,    -1,   254,   265,   199,   262,    -1,    98,   265,
1356 <     271,   262,    -1,    99,   265,   271,   262,    -1,   108,   265,
1357 <     133,   262,    -1,   156,   265,   199,   262,    -1,   107,   265,
1358 <     133,   262,    -1,    35,   265,   133,   262,    -1,    34,   265,
1359 <     133,   262,    -1,   128,   265,   199,   262,    -1,   129,   265,
1360 <     199,   262,    -1,    13,   265,   199,   262,    -1,   145,   265,
1361 <     133,   262,    -1,   146,   265,   271,   262,    -1,   182,   264,
1362 <     604,   263,   262,    -1,   604,   605,    -1,   605,    -1,   606,
1363 <      -1,   607,    -1,   609,    -1,   611,    -1,   610,    -1,   608,
1364 <      -1,   612,    -1,     1,    -1,    56,   265,   199,   262,    -1,
1365 <      83,   265,   199,   262,    -1,    80,   265,   155,   262,    -1,
1366 <     101,   265,   271,   262,    -1,    78,   265,   199,   262,    -1,
1367 <      41,   265,   199,   262,    -1,    82,   265,   199,   262,    -1
1368 < };
1369 <
1370 < /* YYRLINE[YYN] -- source line where rule number YYN was defined.  */
1025 >  /* YYRLINE[YYN] -- Source line where rule number YYN was defined.  */
1026   static const yytype_uint16 yyrline[] =
1027   {
1028 <       0,   403,   403,   404,   407,   408,   409,   410,   411,   412,
1029 <     413,   414,   415,   416,   417,   418,   419,   420,   421,   422,
1030 <     423,   424,   425,   426,   427,   428,   432,   432,   433,   437,
1031 <     441,   445,   449,   453,   459,   459,   460,   461,   462,   463,
1032 <     470,   473,   473,   474,   474,   474,   476,   484,   493,   495,
1033 <     495,   496,   496,   497,   497,   498,   498,   499,   500,   500,
1034 <     501,   501,   502,   503,   507,   506,   521,   521,   522,   526,
1035 <     532,   566,   626,   640,   655,   664,   678,   687,   715,   745,
1036 <     768,   790,   792,   792,   793,   793,   794,   794,   796,   805,
1037 <     814,   827,   829,   830,   832,   832,   833,   834,   834,   835,
1038 <     835,   836,   836,   837,   837,   838,   839,   841,   845,   849,
1039 <     856,   863,   870,   877,   884,   891,   898,   905,   909,   913,
1040 <     917,   921,   925,   929,   935,   945,   944,  1038,  1038,  1039,
1041 <    1039,  1040,  1040,  1040,  1040,  1041,  1041,  1042,  1042,  1042,
1042 <    1043,  1043,  1043,  1044,  1044,  1044,  1045,  1045,  1045,  1045,
1043 <    1046,  1046,  1047,  1047,  1049,  1061,  1073,  1107,  1119,  1130,
1044 <    1172,  1182,  1181,  1187,  1187,  1188,  1192,  1196,  1200,  1204,
1045 <    1208,  1212,  1216,  1220,  1224,  1228,  1232,  1236,  1240,  1244,
1046 <    1248,  1252,  1256,  1260,  1266,  1277,  1288,  1299,  1310,  1321,
1047 <    1332,  1343,  1354,  1365,  1376,  1387,  1398,  1409,  1421,  1420,
1048 <    1424,  1424,  1425,  1425,  1426,  1426,  1428,  1435,  1442,  1449,
1049 <    1456,  1463,  1470,  1477,  1484,  1491,  1498,  1505,  1512,  1519,
1050 <    1526,  1533,  1547,  1546,  1596,  1596,  1598,  1598,  1599,  1600,
1051 <    1600,  1601,  1602,  1603,  1604,  1605,  1606,  1607,  1608,  1609,
1052 <    1610,  1611,  1613,  1622,  1631,  1637,  1643,  1649,  1655,  1661,
1053 <    1667,  1673,  1679,  1685,  1691,  1697,  1707,  1706,  1723,  1722,
1054 <    1727,  1727,  1728,  1732,  1736,  1744,  1744,  1745,  1745,  1745,
1055 <    1745,  1745,  1747,  1747,  1749,  1749,  1751,  1765,  1785,  1794,
1056 <    1807,  1806,  1875,  1875,  1876,  1876,  1876,  1876,  1877,  1877,
1057 <    1878,  1878,  1878,  1879,  1879,  1880,  1880,  1880,  1881,  1881,
1058 <    1881,  1883,  1920,  1933,  1944,  1953,  1965,  1964,  1968,  1968,
1059 <    1969,  1969,  1970,  1970,  1972,  1980,  1987,  1994,  2001,  2008,
1060 <    2015,  2022,  2029,  2036,  2045,  2056,  2067,  2078,  2089,  2100,
1061 <    2112,  2131,  2141,  2150,  2166,  2165,  2181,  2181,  2182,  2182,
1062 <    2182,  2182,  2184,  2193,  2208,  2222,  2221,  2237,  2237,  2238,
1063 <    2238,  2238,  2238,  2240,  2249,  2272,  2271,  2277,  2277,  2278,
1064 <    2282,  2286,  2290,  2294,  2298,  2302,  2306,  2310,  2314,  2318,
1065 <    2328,  2327,  2344,  2344,  2345,  2345,  2345,  2347,  2354,  2353,
1066 <    2359,  2359,  2360,  2364,  2368,  2372,  2376,  2380,  2384,  2388,
1067 <    2392,  2396,  2400,  2410,  2409,  2555,  2555,  2556,  2556,  2557,
1068 <    2557,  2557,  2558,  2558,  2559,  2559,  2560,  2560,  2560,  2561,
1069 <    2561,  2561,  2562,  2562,  2562,  2563,  2563,  2564,  2564,  2566,
1070 <    2578,  2590,  2599,  2625,  2643,  2661,  2667,  2671,  2679,  2689,
1071 <    2688,  2692,  2692,  2693,  2693,  2694,  2694,  2696,  2707,  2714,
1072 <    2721,  2728,  2738,  2779,  2790,  2801,  2816,  2827,  2838,  2851,
1073 <    2864,  2873,  2909,  2908,  2972,  2971,  2975,  2975,  2976,  2982,
1074 <    2982,  2983,  2983,  2983,  2983,  2985,  3004,  3014,  3013,  3036,
1075 <    3036,  3037,  3037,  3037,  3039,  3045,  3054,  3056,  3056,  3057,
1076 <    3057,  3059,  3078,  3077,  3125,  3124,  3128,  3128,  3129,  3135,
1077 <    3135,  3136,  3136,  3136,  3136,  3138,  3144,  3153,  3156,  3156,
1078 <    3157,  3157,  3158,  3158,  3159,  3159,  3160,  3160,  3161,  3161,
1079 <    3162,  3162,  3163,  3163,  3164,  3164,  3165,  3165,  3166,  3166,
1080 <    3167,  3167,  3168,  3168,  3169,  3169,  3170,  3170,  3171,  3171,
1081 <    3172,  3172,  3173,  3173,  3174,  3174,  3175,  3175,  3176,  3176,
1082 <    3177,  3178,  3178,  3179,  3179,  3180,  3180,  3181,  3181,  3182,
1083 <    3182,  3183,  3183,  3184,  3184,  3185,  3186,  3189,  3194,  3199,
1084 <    3204,  3209,  3214,  3219,  3224,  3229,  3234,  3239,  3244,  3249,
1085 <    3254,  3259,  3264,  3269,  3274,  3279,  3285,  3296,  3301,  3310,
1086 <    3315,  3320,  3325,  3330,  3335,  3338,  3343,  3346,  3351,  3356,
1087 <    3361,  3366,  3371,  3376,  3381,  3386,  3391,  3402,  3407,  3412,
1088 <    3417,  3426,  3458,  3476,  3481,  3490,  3495,  3500,  3506,  3505,
1089 <    3510,  3510,  3511,  3514,  3517,  3520,  3523,  3526,  3529,  3532,
1090 <    3535,  3538,  3541,  3544,  3547,  3550,  3553,  3556,  3559,  3562,
1091 <    3565,  3571,  3570,  3575,  3575,  3576,  3579,  3582,  3585,  3588,
1092 <    3591,  3594,  3597,  3600,  3603,  3606,  3609,  3612,  3615,  3618,
1093 <    3621,  3624,  3627,  3630,  3635,  3640,  3645,  3650,  3655,  3664,
1094 <    3663,  3687,  3687,  3688,  3689,  3690,  3691,  3692,  3693,  3694,
1440 <    3696,  3702,  3709,  3708,  3713,  3713,  3714,  3718,  3724,  3758,
1441 <    3768,  3767,  3817,  3817,  3818,  3822,  3831,  3834,  3834,  3835,
1442 <    3835,  3836,  3836,  3837,  3837,  3838,  3838,  3839,  3839,  3840,
1443 <    3841,  3841,  3842,  3842,  3843,  3843,  3844,  3844,  3846,  3851,
1444 <    3856,  3861,  3866,  3871,  3876,  3881,  3886,  3891,  3896,  3901,
1445 <    3906,  3911,  3916,  3921,  3926,  3931,  3939,  3942,  3942,  3943,
1446 <    3943,  3944,  3945,  3946,  3946,  3947,  3948,  3950,  3956,  3962,
1447 <    3971,  3985,  3991,  3997
1028 >       0,   383,   383,   384,   387,   388,   389,   390,   391,   392,
1029 >     393,   394,   395,   396,   397,   398,   399,   400,   401,   402,
1030 >     403,   404,   405,   406,   407,   408,   409,   413,   413,   414,
1031 >     415,   416,   417,   418,   419,   420,   421,   424,   424,   425,
1032 >     426,   427,   428,   435,   438,   438,   439,   439,   439,   441,
1033 >     447,   454,   456,   456,   457,   458,   459,   460,   461,   462,
1034 >     463,   464,   465,   466,   467,   468,   469,   470,   471,   472,
1035 >     473,   474,   475,   476,   479,   480,   482,   482,   483,   489,
1036 >     497,   497,   498,   504,   512,   554,   612,   640,   648,   661,
1037 >     689,   704,   719,   728,   742,   751,   779,   809,   834,   856,
1038 >     878,   887,   889,   889,   890,   891,   892,   893,   895,   904,
1039 >     913,   926,   925,   943,   943,   944,   944,   944,   946,   952,
1040 >     961,   962,   962,   964,   964,   965,   967,   974,   974,   987,
1041 >     988,   990,   990,   991,   991,   993,  1001,  1004,  1010,  1009,
1042 >    1015,  1015,  1016,  1020,  1024,  1028,  1032,  1036,  1040,  1044,
1043 >    1048,  1059,  1058,  1138,  1138,  1139,  1140,  1141,  1142,  1143,
1044 >    1144,  1145,  1146,  1147,  1148,  1149,  1151,  1157,  1163,  1169,
1045 >    1180,  1186,  1192,  1203,  1210,  1209,  1215,  1215,  1216,  1220,
1046 >    1224,  1228,  1232,  1236,  1240,  1244,  1248,  1252,  1256,  1260,
1047 >    1264,  1268,  1272,  1276,  1280,  1284,  1288,  1292,  1296,  1300,
1048 >    1307,  1306,  1312,  1312,  1313,  1317,  1321,  1325,  1329,  1333,
1049 >    1337,  1341,  1345,  1349,  1353,  1357,  1361,  1365,  1369,  1373,
1050 >    1377,  1381,  1385,  1389,  1393,  1397,  1401,  1412,  1411,  1473,
1051 >    1473,  1474,  1475,  1476,  1477,  1478,  1479,  1480,  1481,  1482,
1052 >    1483,  1484,  1485,  1486,  1486,  1487,  1488,  1489,  1490,  1492,
1053 >    1498,  1504,  1510,  1516,  1522,  1528,  1534,  1540,  1546,  1552,
1054 >    1559,  1565,  1571,  1577,  1586,  1596,  1595,  1601,  1601,  1602,
1055 >    1606,  1617,  1616,  1623,  1622,  1627,  1627,  1628,  1632,  1636,
1056 >    1642,  1642,  1643,  1643,  1643,  1643,  1643,  1645,  1645,  1647,
1057 >    1647,  1649,  1663,  1681,  1687,  1697,  1696,  1738,  1738,  1739,
1058 >    1740,  1741,  1742,  1743,  1744,  1745,  1746,  1747,  1749,  1755,
1059 >    1761,  1767,  1779,  1778,  1784,  1784,  1785,  1789,  1793,  1797,
1060 >    1801,  1805,  1809,  1813,  1817,  1821,  1827,  1841,  1850,  1864,
1061 >    1863,  1878,  1878,  1879,  1879,  1879,  1879,  1881,  1887,  1893,
1062 >    1903,  1905,  1905,  1906,  1906,  1908,  1924,  1923,  1948,  1948,
1063 >    1949,  1949,  1949,  1949,  1951,  1957,  1977,  1976,  1982,  1982,
1064 >    1983,  1987,  1991,  1995,  1999,  2003,  2007,  2011,  2015,  2019,
1065 >    2029,  2028,  2049,  2049,  2050,  2050,  2050,  2052,  2059,  2058,
1066 >    2064,  2064,  2065,  2069,  2073,  2077,  2081,  2085,  2089,  2093,
1067 >    2097,  2101,  2111,  2110,  2182,  2182,  2183,  2184,  2185,  2186,
1068 >    2187,  2188,  2189,  2190,  2191,  2192,  2193,  2194,  2195,  2196,
1069 >    2197,  2199,  2205,  2211,  2217,  2230,  2243,  2249,  2255,  2259,
1070 >    2268,  2267,  2272,  2272,  2273,  2277,  2283,  2294,  2300,  2306,
1071 >    2312,  2328,  2327,  2353,  2353,  2354,  2354,  2354,  2356,  2376,
1072 >    2386,  2385,  2412,  2412,  2413,  2413,  2413,  2415,  2421,  2430,
1073 >    2432,  2432,  2433,  2433,  2435,  2453,  2452,  2475,  2475,  2476,
1074 >    2476,  2476,  2478,  2484,  2493,  2496,  2496,  2497,  2498,  2499,
1075 >    2500,  2501,  2502,  2503,  2504,  2505,  2506,  2507,  2508,  2509,
1076 >    2510,  2511,  2512,  2513,  2514,  2515,  2516,  2517,  2518,  2519,
1077 >    2520,  2521,  2522,  2523,  2524,  2525,  2526,  2527,  2528,  2529,
1078 >    2530,  2531,  2532,  2533,  2534,  2535,  2536,  2537,  2538,  2539,
1079 >    2540,  2541,  2542,  2543,  2544,  2545,  2546,  2547,  2550,  2555,
1080 >    2561,  2567,  2573,  2579,  2584,  2589,  2594,  2599,  2604,  2609,
1081 >    2614,  2619,  2624,  2629,  2634,  2639,  2644,  2650,  2661,  2666,
1082 >    2671,  2676,  2681,  2686,  2691,  2694,  2699,  2702,  2707,  2712,
1083 >    2717,  2722,  2727,  2732,  2737,  2742,  2747,  2752,  2757,  2762,
1084 >    2771,  2780,  2785,  2790,  2795,  2801,  2800,  2805,  2805,  2806,
1085 >    2809,  2812,  2815,  2818,  2821,  2824,  2827,  2830,  2833,  2836,
1086 >    2839,  2842,  2845,  2848,  2851,  2854,  2857,  2860,  2863,  2866,
1087 >    2869,  2875,  2874,  2879,  2879,  2880,  2883,  2886,  2889,  2892,
1088 >    2895,  2898,  2901,  2904,  2907,  2910,  2913,  2916,  2919,  2922,
1089 >    2925,  2928,  2931,  2934,  2937,  2942,  2947,  2952,  2961,  2964,
1090 >    2964,  2965,  2966,  2967,  2968,  2969,  2970,  2971,  2972,  2973,
1091 >    2974,  2975,  2976,  2977,  2978,  2979,  2981,  2986,  2991,  2996,
1092 >    3001,  3006,  3011,  3016,  3021,  3026,  3031,  3036,  3041,  3046,
1093 >    3054,  3057,  3057,  3058,  3059,  3060,  3061,  3062,  3063,  3064,
1094 >    3065,  3066,  3068,  3074,  3080,  3086,  3092,  3101,  3116,  3122
1095   };
1096   #endif
1097  
1098 < #if YYDEBUG || YYERROR_VERBOSE || YYTOKEN_TABLE
1098 > #if YYDEBUG || YYERROR_VERBOSE || 0
1099   /* YYTNAME[SYMBOL-NUM] -- String name of the symbol SYMBOL-NUM.
1100     First, the terminals, then, starting at YYNTOKENS, nonterminals.  */
1101   static const char *const yytname[] =
1102   {
1103 <  "$end", "error", "$undefined", "ACCEPT_PASSWORD", "ACTION", "ADMIN",
1104 <  "AFTYPE", "T_ALLOW", "ANTI_NICK_FLOOD", "ANTI_SPAM_EXIT_MESSAGE_TIME",
1105 <  "AUTOCONN", "T_BLOCK", "BURST_AWAY", "BURST_TOPICWHO", "BYTES", "KBYTES",
1106 <  "MBYTES", "GBYTES", "TBYTES", "CALLER_ID_WAIT", "CAN_FLOOD", "CAN_IDLE",
1107 <  "CHANNEL", "CIDR_BITLEN_IPV4", "CIDR_BITLEN_IPV6", "CIPHER_PREFERENCE",
1461 <  "CLASS", "COMPRESSED", "COMPRESSION_LEVEL", "CONNECT", "CONNECTFREQ",
1462 <  "CRYPTLINK", "DEFAULT_CIPHER_PREFERENCE", "DEFAULT_FLOODCOUNT",
1103 >  "$end", "error", "$undefined", "ACCEPT_PASSWORD", "ADMIN", "AFTYPE",
1104 >  "ANTI_NICK_FLOOD", "ANTI_SPAM_EXIT_MESSAGE_TIME", "AUTOCONN", "BYTES",
1105 >  "KBYTES", "MBYTES", "CALLER_ID_WAIT", "CAN_FLOOD", "CHANNEL",
1106 >  "CIDR_BITLEN_IPV4", "CIDR_BITLEN_IPV6", "CLASS", "CONNECT",
1107 >  "CONNECTFREQ", "CYCLE_ON_HOST_CHANGE", "DEFAULT_FLOODCOUNT",
1108    "DEFAULT_SPLIT_SERVER_COUNT", "DEFAULT_SPLIT_USER_COUNT", "DENY",
1109    "DESCRIPTION", "DIE", "DISABLE_AUTH", "DISABLE_FAKE_CHANNELS",
1110 <  "DISABLE_HIDDEN", "DISABLE_LOCAL_CHANNELS", "DISABLE_REMOTE_COMMANDS",
1111 <  "DOT_IN_IP6_ADDR", "DOTS_IN_IDENT", "DURATION", "EGDPOOL_PATH", "EMAIL",
1112 <  "ENABLE", "ENCRYPTED", "EXCEED_LIMIT", "EXEMPT", "FAILED_OPER_NOTICE",
1113 <  "FAKENAME", "IRCD_FLAGS", "FLATTEN_LINKS", "FFAILED_OPERLOG", "FKILLLOG",
1114 <  "FKLINELOG", "FGLINELOG", "FIOERRLOG", "FOPERLOG", "FOPERSPYLOG",
1115 <  "FUSERLOG", "GECOS", "GENERAL", "GLINE", "GLINES", "GLINE_EXEMPT",
1116 <  "GLINE_LOG", "GLINE_TIME", "GLINE_MIN_CIDR", "GLINE_MIN_CIDR6",
1117 <  "GLOBAL_KILL", "IRCD_AUTH", "NEED_IDENT", "HAVENT_READ_CONF", "HIDDEN",
1118 <  "HIDDEN_ADMIN", "HIDDEN_NAME", "HIDDEN_OPER", "HIDE_SERVER_IPS",
1119 <  "HIDE_SERVERS", "HIDE_SPOOF_IPS", "HOST", "HUB", "HUB_MASK", "IDLETIME",
1120 <  "IGNORE_BOGUS_TS", "INVISIBLE_ON_CONNECT", "IP", "KILL",
1121 <  "KILL_CHASE_TIME_LIMIT", "KLINE", "KLINE_EXEMPT", "KLINE_REASON",
1122 <  "KLINE_WITH_REASON", "KNOCK_DELAY", "KNOCK_DELAY_CHANNEL", "LEAF_MASK",
1123 <  "LINKS_DELAY", "LISTEN", "T_LOG", "LOGGING", "LOG_LEVEL", "MAX_ACCEPT",
1124 <  "MAX_BANS", "MAX_CHANS_PER_USER", "MAX_GLOBAL", "MAX_IDENT", "MAX_LOCAL",
1125 <  "MAX_NICK_CHANGES", "MAX_NICK_TIME", "MAX_NUMBER", "MAX_TARGETS",
1126 <  "MAX_WATCH", "MESSAGE_LOCALE", "MIN_NONWILDCARD",
1127 <  "MIN_NONWILDCARD_SIMPLE", "MODULE", "MODULES", "NAME", "NEED_PASSWORD",
1483 <  "NETWORK_DESC", "NETWORK_NAME", "NICK", "NICK_CHANGES",
1110 >  "DISABLE_REMOTE_COMMANDS", "DOTS_IN_IDENT", "EGDPOOL_PATH", "EMAIL",
1111 >  "ENCRYPTED", "EXCEED_LIMIT", "EXEMPT", "FAILED_OPER_NOTICE",
1112 >  "FLATTEN_LINKS", "GECOS", "GENERAL", "GLINE", "GLINE_DURATION",
1113 >  "GLINE_ENABLE", "GLINE_EXEMPT", "GLINE_MIN_CIDR", "GLINE_MIN_CIDR6",
1114 >  "GLINE_REQUEST_DURATION", "GLOBAL_KILL", "HAVENT_READ_CONF", "HIDDEN",
1115 >  "HIDDEN_NAME", "HIDE_CHANS", "HIDE_IDLE", "HIDE_IDLE_FROM_OPERS",
1116 >  "HIDE_SERVER_IPS", "HIDE_SERVERS", "HIDE_SERVICES", "HIDE_SPOOF_IPS",
1117 >  "HOST", "HUB", "HUB_MASK", "IGNORE_BOGUS_TS", "INVISIBLE_ON_CONNECT",
1118 >  "INVITE_CLIENT_COUNT", "INVITE_CLIENT_TIME", "IP", "IRCD_AUTH",
1119 >  "IRCD_FLAGS", "IRCD_SID", "JOIN_FLOOD_COUNT", "JOIN_FLOOD_TIME", "KILL",
1120 >  "KILL_CHASE_TIME_LIMIT", "KLINE", "KLINE_EXEMPT", "KNOCK_CLIENT_COUNT",
1121 >  "KNOCK_CLIENT_TIME", "KNOCK_DELAY_CHANNEL", "LEAF_MASK", "LINKS_DELAY",
1122 >  "LISTEN", "MASK", "MAX_ACCEPT", "MAX_BANS", "MAX_CHANNELS", "MAX_GLOBAL",
1123 >  "MAX_IDENT", "MAX_IDLE", "MAX_LOCAL", "MAX_NICK_CHANGES",
1124 >  "MAX_NICK_LENGTH", "MAX_NICK_TIME", "MAX_NUMBER", "MAX_TARGETS",
1125 >  "MAX_TOPIC_LENGTH", "MAX_WATCH", "MIN_IDLE", "MIN_NONWILDCARD",
1126 >  "MIN_NONWILDCARD_SIMPLE", "MODULE", "MODULES", "MOTD", "NAME",
1127 >  "NEED_IDENT", "NEED_PASSWORD", "NETWORK_DESC", "NETWORK_NAME", "NICK",
1128    "NO_CREATE_ON_SPLIT", "NO_JOIN_ON_SPLIT", "NO_OPER_FLOOD", "NO_TILDE",
1129 <  "NOT", "NUMBER", "NUMBER_PER_IDENT", "NUMBER_PER_CIDR", "NUMBER_PER_IP",
1130 <  "NUMBER_PER_IP_GLOBAL", "OPERATOR", "OPERS_BYPASS_CALLERID", "OPER_LOG",
1131 <  "OPER_ONLY_UMODES", "OPER_PASS_RESV", "OPER_SPY_T", "OPER_UMODES",
1132 <  "JOIN_FLOOD_COUNT", "JOIN_FLOOD_TIME", "PACE_WAIT", "PACE_WAIT_SIMPLE",
1133 <  "PASSWORD", "PATH", "PING_COOKIE", "PING_TIME", "PING_WARNING", "PORT",
1134 <  "QSTRING", "QUIET_ON_BAN", "REASON", "REDIRPORT", "REDIRSERV", "REGEX_T",
1135 <  "REHASH", "TREJECT_HOLD_TIME", "REMOTE", "REMOTEBAN",
1136 <  "RESTRICT_CHANNELS", "RESTRICTED", "RSA_PRIVATE_KEY_FILE",
1137 <  "RSA_PUBLIC_KEY_FILE", "SSL_CERTIFICATE_FILE", "T_SSL_CONNECTION_METHOD",
1138 <  "T_SSLV3", "T_TLSV1", "RESV", "RESV_EXEMPT", "SECONDS", "MINUTES",
1139 <  "HOURS", "DAYS", "WEEKS", "SENDQ", "SEND_PASSWORD", "SERVERHIDE",
1140 <  "SERVERINFO", "SERVLINK_PATH", "IRCD_SID", "TKLINE_EXPIRE_NOTICES",
1141 <  "T_SHARED", "T_CLUSTER", "TYPE", "SHORT_MOTD", "SILENT", "SPOOF",
1142 <  "SPOOF_NOTICE", "STATS_E_DISABLED", "STATS_I_OPER_ONLY",
1143 <  "STATS_K_OPER_ONLY", "STATS_O_OPER_ONLY", "STATS_P_OPER_ONLY", "TBOOL",
1144 <  "TMASKED", "T_REJECT", "TS_MAX_DELTA", "TS_WARN_DELTA", "TWODOTS",
1145 <  "T_ALL", "T_BOTS", "T_SOFTCALLERID", "T_CALLERID", "T_CCONN",
1146 <  "T_CCONN_FULL", "T_CLIENT_FLOOD", "T_DEAF", "T_DEBUG", "T_DRONE",
1147 <  "T_EXTERNAL", "T_FULL", "T_INVISIBLE", "T_IPV4", "T_IPV6", "T_LOCOPS",
1148 <  "T_LOGPATH", "T_L_CRIT", "T_L_DEBUG", "T_L_ERROR", "T_L_INFO",
1149 <  "T_L_NOTICE", "T_L_TRACE", "T_L_WARN", "T_MAX_CLIENTS", "T_NCHANGE",
1150 <  "T_OPERWALL", "T_REJ", "T_SERVER", "T_SERVNOTICE", "T_SKILL", "T_SPY",
1151 <  "T_SSL", "T_UMODES", "T_UNAUTH", "T_UNRESV", "T_UNXLINE", "T_WALLOP",
1152 <  "THROTTLE_TIME", "TOPICBURST", "TRUE_NO_OPER_FLOOD", "TKLINE", "TXLINE",
1153 <  "TRESV", "UNKLINE", "USER", "USE_EGD", "USE_EXCEPT", "USE_INVEX",
1154 <  "USE_KNOCK", "USE_LOGGING", "USE_WHOIS_ACTUALLY", "VHOST", "VHOST6",
1155 <  "XLINE", "WARN", "WARN_NO_NLINE", "';'", "'}'", "'{'", "'='", "','",
1156 <  "$accept", "conf", "conf_item", "timespec_", "timespec", "sizespec_",
1157 <  "sizespec", "modules_entry", "modules_items", "modules_item",
1158 <  "modules_module", "modules_path", "serverinfo_entry", "serverinfo_items",
1159 <  "serverinfo_item", "serverinfo_ssl_connection_method", "$@1",
1160 <  "method_types", "method_type_item", "serverinfo_ssl_certificate_file",
1161 <  "serverinfo_rsa_private_key_file", "serverinfo_name", "serverinfo_sid",
1129 >  "NUMBER", "NUMBER_PER_CIDR", "NUMBER_PER_IP", "OPER_ONLY_UMODES",
1130 >  "OPER_PASS_RESV", "OPER_UMODES", "OPERATOR", "OPERS_BYPASS_CALLERID",
1131 >  "PACE_WAIT", "PACE_WAIT_SIMPLE", "PASSWORD", "PATH", "PING_COOKIE",
1132 >  "PING_TIME", "PORT", "QSTRING", "RANDOM_IDLE", "REASON", "REDIRPORT",
1133 >  "REDIRSERV", "REHASH", "REMOTE", "REMOTEBAN", "RESV", "RESV_EXEMPT",
1134 >  "RSA_PRIVATE_KEY_FILE", "RSA_PUBLIC_KEY_FILE", "SECONDS", "MINUTES",
1135 >  "HOURS", "DAYS", "WEEKS", "MONTHS", "YEARS", "SEND_PASSWORD", "SENDQ",
1136 >  "SERVERHIDE", "SERVERINFO", "SHORT_MOTD", "SPOOF", "SPOOF_NOTICE",
1137 >  "SQUIT", "SSL_CERTIFICATE_FILE", "SSL_CERTIFICATE_FINGERPRINT",
1138 >  "SSL_CONNECTION_REQUIRED", "SSL_DH_ELLIPTIC_CURVE", "SSL_DH_PARAM_FILE",
1139 >  "SSL_MESSAGE_DIGEST_ALGORITHM", "STATS_E_DISABLED", "STATS_I_OPER_ONLY",
1140 >  "STATS_K_OPER_ONLY", "STATS_O_OPER_ONLY", "STATS_P_OPER_ONLY",
1141 >  "STATS_U_OPER_ONLY", "T_ALL", "T_BOTS", "T_CALLERID", "T_CCONN",
1142 >  "T_CLUSTER", "T_DEAF", "T_DEBUG", "T_DLINE", "T_EXTERNAL",
1143 >  "T_FARCONNECT", "T_FILE", "T_FULL", "T_GLOBOPS", "T_INVISIBLE", "T_IPV4",
1144 >  "T_IPV6", "T_LOCOPS", "T_LOG", "T_MAX_CLIENTS", "T_NCHANGE",
1145 >  "T_NONONREG", "T_RECVQ", "T_REJ", "T_RESTART", "T_SERVER", "T_SERVICE",
1146 >  "T_SERVICES_NAME", "T_SERVNOTICE", "T_SET", "T_SHARED", "T_SIZE",
1147 >  "T_SKILL", "T_SOFTCALLERID", "T_SPY", "T_SSL", "T_SSL_CIPHER_LIST",
1148 >  "T_SSL_CLIENT_METHOD", "T_SSL_SERVER_METHOD", "T_SSLV3", "T_TLSV1",
1149 >  "T_UMODES", "T_UNAUTH", "T_UNDLINE", "T_UNLIMITED", "T_UNRESV",
1150 >  "T_UNXLINE", "T_WALLOP", "T_WALLOPS", "T_WEBIRC", "TBOOL",
1151 >  "THROTTLE_COUNT", "THROTTLE_TIME", "TKLINE_EXPIRE_NOTICES", "TMASKED",
1152 >  "TRUE_NO_OPER_FLOOD", "TS_MAX_DELTA", "TS_WARN_DELTA", "TWODOTS", "TYPE",
1153 >  "UNKLINE", "USE_EGD", "USE_LOGGING", "USER", "VHOST", "VHOST6",
1154 >  "WARN_NO_CONNECT_BLOCK", "XLINE", "';'", "'}'", "'{'", "'='", "','",
1155 >  "':'", "$accept", "conf", "conf_item", "timespec_", "timespec",
1156 >  "sizespec_", "sizespec", "modules_entry", "modules_items",
1157 >  "modules_item", "modules_module", "modules_path", "serverinfo_entry",
1158 >  "serverinfo_items", "serverinfo_item", "serverinfo_ssl_client_method",
1159 >  "serverinfo_ssl_server_method", "client_method_types",
1160 >  "client_method_type_item", "server_method_types",
1161 >  "server_method_type_item", "serverinfo_ssl_certificate_file",
1162 >  "serverinfo_rsa_private_key_file", "serverinfo_ssl_dh_param_file",
1163 >  "serverinfo_ssl_cipher_list", "serverinfo_ssl_message_digest_algorithm",
1164 >  "serverinfo_ssl_dh_elliptic_curve", "serverinfo_name", "serverinfo_sid",
1165    "serverinfo_description", "serverinfo_network_name",
1166    "serverinfo_network_desc", "serverinfo_vhost", "serverinfo_vhost6",
1167 <  "serverinfo_max_clients", "serverinfo_hub", "admin_entry", "admin_items",
1168 <  "admin_item", "admin_name", "admin_email", "admin_description",
1169 <  "logging_entry", "logging_items", "logging_item", "logging_path",
1170 <  "logging_oper_log", "logging_fuserlog", "logging_ffailed_operlog",
1171 <  "logging_foperlog", "logging_foperspylog", "logging_fglinelog",
1172 <  "logging_fklinelog", "logging_ioerrlog", "logging_killlog",
1173 <  "logging_log_level", "logging_use_logging", "oper_entry", "$@2",
1174 <  "oper_name_b", "oper_items", "oper_item", "oper_name", "oper_name_t",
1175 <  "oper_user", "oper_password", "oper_encrypted",
1176 <  "oper_rsa_public_key_file", "oper_class", "oper_umodes", "$@3",
1177 <  "oper_umodes_items", "oper_umodes_item", "oper_global_kill",
1178 <  "oper_remote", "oper_remoteban", "oper_kline", "oper_xline",
1179 <  "oper_unkline", "oper_gline", "oper_nick_changes", "oper_die",
1180 <  "oper_rehash", "oper_admin", "oper_hidden_admin", "oper_hidden_oper",
1181 <  "oper_operwall", "oper_flags", "$@4", "oper_flags_items",
1182 <  "oper_flags_item", "$@5", "$@6", "oper_flags_item_atom", "class_entry",
1183 <  "$@7", "class_name_b", "class_items", "class_item", "class_name",
1537 <  "class_name_t", "class_ping_time", "class_ping_warning",
1538 <  "class_number_per_ip", "class_connectfreq", "class_max_number",
1167 >  "serverinfo_max_clients", "serverinfo_max_nick_length",
1168 >  "serverinfo_max_topic_length", "serverinfo_hub", "admin_entry",
1169 >  "admin_items", "admin_item", "admin_name", "admin_email",
1170 >  "admin_description", "motd_entry", "$@1", "motd_items", "motd_item",
1171 >  "motd_mask", "motd_file", "logging_entry", "logging_items",
1172 >  "logging_item", "logging_use_logging", "logging_file_entry", "$@2",
1173 >  "logging_file_items", "logging_file_item", "logging_file_name",
1174 >  "logging_file_size", "logging_file_type", "$@3",
1175 >  "logging_file_type_items", "logging_file_type_item", "oper_entry", "$@4",
1176 >  "oper_items", "oper_item", "oper_name", "oper_user", "oper_password",
1177 >  "oper_encrypted", "oper_rsa_public_key_file",
1178 >  "oper_ssl_certificate_fingerprint", "oper_ssl_connection_required",
1179 >  "oper_class", "oper_umodes", "$@5", "oper_umodes_items",
1180 >  "oper_umodes_item", "oper_flags", "$@6", "oper_flags_items",
1181 >  "oper_flags_item", "class_entry", "$@7", "class_items", "class_item",
1182 >  "class_name", "class_ping_time", "class_number_per_ip",
1183 >  "class_connectfreq", "class_max_channels", "class_max_number",
1184    "class_max_global", "class_max_local", "class_max_ident", "class_sendq",
1185 <  "class_cidr_bitlen_ipv4", "class_cidr_bitlen_ipv6",
1186 <  "class_number_per_cidr", "listen_entry", "$@8", "listen_flags", "$@9",
1187 <  "listen_flags_items", "listen_flags_item", "listen_items", "listen_item",
1188 <  "listen_port", "$@10", "port_items", "port_item", "listen_address",
1189 <  "listen_host", "auth_entry", "$@11", "auth_items", "auth_item",
1190 <  "auth_user", "auth_passwd", "auth_spoof_notice", "auth_class",
1191 <  "auth_encrypted", "auth_flags", "$@12", "auth_flags_items",
1192 <  "auth_flags_item", "$@13", "$@14", "auth_flags_item_atom",
1193 <  "auth_kline_exempt", "auth_need_ident", "auth_exceed_limit",
1194 <  "auth_can_flood", "auth_no_tilde", "auth_gline_exempt", "auth_spoof",
1195 <  "auth_redir_serv", "auth_redir_port", "auth_need_password", "resv_entry",
1196 <  "$@15", "resv_items", "resv_item", "resv_creason", "resv_channel",
1197 <  "resv_nick", "shared_entry", "$@16", "shared_items", "shared_item",
1198 <  "shared_name", "shared_user", "shared_type", "$@17", "shared_types",
1199 <  "shared_type_item", "cluster_entry", "$@18", "cluster_items",
1200 <  "cluster_item", "cluster_name", "cluster_type", "$@19", "cluster_types",
1201 <  "cluster_type_item", "connect_entry", "$@20", "connect_name_b",
1557 <  "connect_items", "connect_item", "connect_name", "connect_name_t",
1185 >  "class_recvq", "class_cidr_bitlen_ipv4", "class_cidr_bitlen_ipv6",
1186 >  "class_number_per_cidr", "class_min_idle", "class_max_idle",
1187 >  "class_flags", "$@8", "class_flags_items", "class_flags_item",
1188 >  "listen_entry", "$@9", "listen_flags", "$@10", "listen_flags_items",
1189 >  "listen_flags_item", "listen_items", "listen_item", "listen_port",
1190 >  "$@11", "port_items", "port_item", "listen_address", "listen_host",
1191 >  "auth_entry", "$@12", "auth_items", "auth_item", "auth_user",
1192 >  "auth_passwd", "auth_class", "auth_encrypted", "auth_flags", "$@13",
1193 >  "auth_flags_items", "auth_flags_item", "auth_spoof", "auth_redir_serv",
1194 >  "auth_redir_port", "resv_entry", "$@14", "resv_items", "resv_item",
1195 >  "resv_mask", "resv_reason", "resv_exempt", "service_entry",
1196 >  "service_items", "service_item", "service_name", "shared_entry", "$@15",
1197 >  "shared_items", "shared_item", "shared_name", "shared_user",
1198 >  "shared_type", "$@16", "shared_types", "shared_type_item",
1199 >  "cluster_entry", "$@17", "cluster_items", "cluster_item", "cluster_name",
1200 >  "cluster_type", "$@18", "cluster_types", "cluster_type_item",
1201 >  "connect_entry", "$@19", "connect_items", "connect_item", "connect_name",
1202    "connect_host", "connect_vhost", "connect_send_password",
1203 <  "connect_accept_password", "connect_port", "connect_aftype",
1204 <  "connect_fakename", "connect_flags", "$@21", "connect_flags_items",
1205 <  "connect_flags_item", "$@22", "$@23", "connect_flags_item_atom",
1562 <  "connect_rsa_public_key_file", "connect_encrypted", "connect_cryptlink",
1563 <  "connect_compressed", "connect_auto", "connect_topicburst",
1203 >  "connect_accept_password", "connect_ssl_certificate_fingerprint",
1204 >  "connect_port", "connect_aftype", "connect_flags", "$@20",
1205 >  "connect_flags_items", "connect_flags_item", "connect_encrypted",
1206    "connect_hub_mask", "connect_leaf_mask", "connect_class",
1207 <  "connect_cipher_preference", "kill_entry", "$@24", "kill_type", "$@25",
1208 <  "kill_type_items", "kill_type_item", "kill_items", "kill_item",
1209 <  "kill_user", "kill_reason", "deny_entry", "$@26", "deny_items",
1210 <  "deny_item", "deny_ip", "deny_reason", "exempt_entry", "exempt_items",
1211 <  "exempt_item", "exempt_ip", "gecos_entry", "$@27", "gecos_flags", "$@28",
1212 <  "gecos_flags_items", "gecos_flags_item", "gecos_items", "gecos_item",
1213 <  "gecos_name", "gecos_reason", "general_entry", "general_items",
1214 <  "general_item", "general_max_watch", "general_gline_min_cidr",
1215 <  "general_gline_min_cidr6", "general_burst_away",
1574 <  "general_use_whois_actually", "general_reject_hold_time",
1207 >  "connect_ssl_cipher_list", "kill_entry", "$@21", "kill_items",
1208 >  "kill_item", "kill_user", "kill_reason", "deny_entry", "$@22",
1209 >  "deny_items", "deny_item", "deny_ip", "deny_reason", "exempt_entry",
1210 >  "exempt_items", "exempt_item", "exempt_ip", "gecos_entry", "$@23",
1211 >  "gecos_items", "gecos_item", "gecos_name", "gecos_reason",
1212 >  "general_entry", "general_items", "general_item", "general_max_watch",
1213 >  "general_cycle_on_host_change", "general_gline_enable",
1214 >  "general_gline_duration", "general_gline_request_duration",
1215 >  "general_gline_min_cidr", "general_gline_min_cidr6",
1216    "general_tkline_expire_notices", "general_kill_chase_time_limit",
1217    "general_hide_spoof_ips", "general_ignore_bogus_ts",
1218 <  "general_disable_remote_commands", "general_failed_oper_notice",
1219 <  "general_anti_nick_flood", "general_max_nick_time",
1220 <  "general_max_nick_changes", "general_max_accept",
1221 <  "general_anti_spam_exit_message_time", "general_ts_warn_delta",
1222 <  "general_ts_max_delta", "general_havent_read_conf",
1223 <  "general_kline_with_reason", "general_kline_reason",
1224 <  "general_invisible_on_connect", "general_warn_no_nline",
1225 <  "general_stats_e_disabled", "general_stats_o_oper_only",
1585 <  "general_stats_P_oper_only", "general_stats_k_oper_only",
1218 >  "general_failed_oper_notice", "general_anti_nick_flood",
1219 >  "general_max_nick_time", "general_max_nick_changes",
1220 >  "general_max_accept", "general_anti_spam_exit_message_time",
1221 >  "general_ts_warn_delta", "general_ts_max_delta",
1222 >  "general_havent_read_conf", "general_invisible_on_connect",
1223 >  "general_warn_no_connect_block", "general_stats_e_disabled",
1224 >  "general_stats_o_oper_only", "general_stats_P_oper_only",
1225 >  "general_stats_u_oper_only", "general_stats_k_oper_only",
1226    "general_stats_i_oper_only", "general_pace_wait",
1227    "general_caller_id_wait", "general_opers_bypass_callerid",
1228    "general_pace_wait_simple", "general_short_motd",
1229    "general_no_oper_flood", "general_true_no_oper_flood",
1230 <  "general_oper_pass_resv", "general_message_locale", "general_idletime",
1231 <  "general_dots_in_ident", "general_max_targets", "general_servlink_path",
1232 <  "general_default_cipher_preference", "general_compression_level",
1233 <  "general_use_egd", "general_egdpool_path", "general_ping_cookie",
1234 <  "general_disable_auth", "general_throttle_time", "general_oper_umodes",
1235 <  "$@29", "umode_oitems", "umode_oitem", "general_oper_only_umodes",
1596 <  "$@30", "umode_items", "umode_item", "general_min_nonwildcard",
1230 >  "general_oper_pass_resv", "general_dots_in_ident", "general_max_targets",
1231 >  "general_use_egd", "general_egdpool_path", "general_services_name",
1232 >  "general_ping_cookie", "general_disable_auth", "general_throttle_count",
1233 >  "general_throttle_time", "general_oper_umodes", "$@24", "umode_oitems",
1234 >  "umode_oitem", "general_oper_only_umodes", "$@25", "umode_items",
1235 >  "umode_item", "general_min_nonwildcard",
1236    "general_min_nonwildcard_simple", "general_default_floodcount",
1237 <  "general_client_flood", "general_dot_in_ip6_addr", "gline_entry", "$@31",
1238 <  "gline_items", "gline_item", "gline_enable", "gline_duration",
1239 <  "gline_logging", "$@32", "gline_logging_types",
1240 <  "gline_logging_type_item", "gline_user", "gline_server", "gline_action",
1241 <  "$@33", "gdeny_types", "gdeny_type_item", "channel_entry",
1603 <  "channel_items", "channel_item", "channel_disable_fake_channels",
1604 <  "channel_restrict_channels", "channel_disable_local_channels",
1605 <  "channel_use_except", "channel_use_invex", "channel_use_knock",
1606 <  "channel_knock_delay", "channel_knock_delay_channel",
1607 <  "channel_max_chans_per_user", "channel_quiet_on_ban", "channel_max_bans",
1237 >  "channel_entry", "channel_items", "channel_item",
1238 >  "channel_disable_fake_channels", "channel_invite_client_count",
1239 >  "channel_invite_client_time", "channel_knock_client_count",
1240 >  "channel_knock_client_time", "channel_knock_delay_channel",
1241 >  "channel_max_channels", "channel_max_bans",
1242    "channel_default_split_user_count", "channel_default_split_server_count",
1243    "channel_no_create_on_split", "channel_no_join_on_split",
1244 <  "channel_burst_topicwho", "channel_jflood_count", "channel_jflood_time",
1245 <  "serverhide_entry", "serverhide_items", "serverhide_item",
1246 <  "serverhide_flatten_links", "serverhide_hide_servers",
1247 <  "serverhide_hidden_name", "serverhide_links_delay", "serverhide_hidden",
1248 <  "serverhide_disable_hidden", "serverhide_hide_server_ips", 0
1244 >  "channel_jflood_count", "channel_jflood_time", "serverhide_entry",
1245 >  "serverhide_items", "serverhide_item", "serverhide_flatten_links",
1246 >  "serverhide_disable_remote_commands", "serverhide_hide_servers",
1247 >  "serverhide_hide_services", "serverhide_hidden_name",
1248 >  "serverhide_links_delay", "serverhide_hidden",
1249 >  "serverhide_hide_server_ips", YY_NULLPTR
1250   };
1251   #endif
1252  
1253   # ifdef YYPRINT
1254 < /* YYTOKNUM[YYLEX-NUM] -- Internal token number corresponding to
1255 <   token YYLEX-NUM.  */
1254 > /* YYTOKNUM[NUM] -- (External) token number corresponding to the
1255 >   (internal) symbol number NUM (which must be that of a token).  */
1256   static const yytype_uint16 yytoknum[] =
1257   {
1258         0,   256,   257,   258,   259,   260,   261,   262,   263,   264,
# Line 1643 | Line 1278 | static const yytype_uint16 yytoknum[] =
1278       455,   456,   457,   458,   459,   460,   461,   462,   463,   464,
1279       465,   466,   467,   468,   469,   470,   471,   472,   473,   474,
1280       475,   476,   477,   478,   479,   480,   481,   482,   483,   484,
1281 <     485,   486,   487,   488,   489,   490,   491,   492,   493,   494,
1647 <     495,   496,   497,   498,   499,   500,   501,   502,   503,   504,
1648 <     505,   506,   507,   508,   509,   510,   511,   512,   513,   514,
1649 <     515,   516,    59,   125,   123,    61,    44
1281 >     485,   486,   487,    59,   125,   123,    61,    44,    58
1282   };
1283   # endif
1284  
1285 < /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives.  */
1654 < static const yytype_uint16 yyr1[] =
1655 < {
1656 <       0,   267,   268,   268,   269,   269,   269,   269,   269,   269,
1657 <     269,   269,   269,   269,   269,   269,   269,   269,   269,   269,
1658 <     269,   269,   269,   269,   269,   269,   270,   270,   271,   271,
1659 <     271,   271,   271,   271,   272,   272,   273,   273,   273,   273,
1660 <     274,   275,   275,   276,   276,   276,   277,   278,   279,   280,
1661 <     280,   281,   281,   281,   281,   281,   281,   281,   281,   281,
1662 <     281,   281,   281,   281,   283,   282,   284,   284,   285,   285,
1663 <     286,   287,   288,   289,   290,   291,   292,   293,   294,   295,
1664 <     296,   297,   298,   298,   299,   299,   299,   299,   300,   301,
1665 <     302,   303,   304,   304,   305,   305,   305,   305,   305,   305,
1666 <     305,   305,   305,   305,   305,   305,   305,   306,   307,   308,
1667 <     309,   310,   311,   312,   313,   314,   315,   316,   316,   316,
1668 <     316,   316,   316,   316,   317,   319,   318,   320,   320,   321,
1669 <     321,   322,   322,   322,   322,   322,   322,   322,   322,   322,
1670 <     322,   322,   322,   322,   322,   322,   322,   322,   322,   322,
1671 <     322,   322,   322,   322,   323,   324,   325,   326,   327,   328,
1672 <     329,   331,   330,   332,   332,   333,   333,   333,   333,   333,
1673 <     333,   333,   333,   333,   333,   333,   333,   333,   333,   333,
1674 <     333,   333,   333,   333,   334,   335,   336,   337,   338,   339,
1675 <     340,   341,   342,   343,   344,   345,   346,   347,   349,   348,
1676 <     350,   350,   352,   351,   353,   351,   354,   354,   354,   354,
1677 <     354,   354,   354,   354,   354,   354,   354,   354,   354,   354,
1678 <     354,   354,   356,   355,   357,   357,   358,   358,   359,   359,
1679 <     359,   359,   359,   359,   359,   359,   359,   359,   359,   359,
1680 <     359,   359,   360,   361,   362,   363,   364,   365,   366,   367,
1681 <     368,   369,   370,   371,   372,   373,   375,   374,   377,   376,
1682 <     378,   378,   379,   379,   379,   380,   380,   381,   381,   381,
1683 <     381,   381,   383,   382,   384,   384,   385,   385,   386,   387,
1684 <     389,   388,   390,   390,   391,   391,   391,   391,   391,   391,
1685 <     391,   391,   391,   391,   391,   391,   391,   391,   391,   391,
1686 <     391,   392,   393,   394,   395,   396,   398,   397,   399,   399,
1687 <     401,   400,   402,   400,   403,   403,   403,   403,   403,   403,
1688 <     403,   403,   403,   403,   404,   405,   406,   407,   408,   409,
1689 <     410,   411,   412,   413,   415,   414,   416,   416,   417,   417,
1690 <     417,   417,   418,   419,   420,   422,   421,   423,   423,   424,
1691 <     424,   424,   424,   425,   426,   428,   427,   429,   429,   430,
1692 <     430,   430,   430,   430,   430,   430,   430,   430,   430,   430,
1693 <     432,   431,   433,   433,   434,   434,   434,   435,   437,   436,
1694 <     438,   438,   439,   439,   439,   439,   439,   439,   439,   439,
1695 <     439,   439,   439,   441,   440,   442,   442,   443,   443,   444,
1696 <     444,   444,   444,   444,   444,   444,   444,   444,   444,   444,
1697 <     444,   444,   444,   444,   444,   444,   444,   444,   444,   445,
1698 <     446,   447,   448,   449,   450,   451,   452,   452,   453,   455,
1699 <     454,   456,   456,   458,   457,   459,   457,   460,   460,   460,
1700 <     460,   460,   461,   462,   463,   464,   465,   466,   467,   468,
1701 <     469,   470,   472,   471,   474,   473,   475,   475,   476,   477,
1702 <     477,   478,   478,   478,   478,   479,   480,   482,   481,   483,
1703 <     483,   484,   484,   484,   485,   486,   487,   488,   488,   489,
1704 <     489,   490,   492,   491,   494,   493,   495,   495,   496,   497,
1705 <     497,   498,   498,   498,   498,   499,   500,   501,   502,   502,
1706 <     503,   503,   503,   503,   503,   503,   503,   503,   503,   503,
1707 <     503,   503,   503,   503,   503,   503,   503,   503,   503,   503,
1708 <     503,   503,   503,   503,   503,   503,   503,   503,   503,   503,
1709 <     503,   503,   503,   503,   503,   503,   503,   503,   503,   503,
1710 <     503,   503,   503,   503,   503,   503,   503,   503,   503,   503,
1711 <     503,   503,   503,   503,   503,   503,   503,   504,   505,   506,
1712 <     507,   508,   509,   510,   511,   512,   513,   514,   515,   516,
1713 <     517,   518,   519,   520,   521,   522,   523,   524,   525,   526,
1714 <     527,   528,   529,   530,   531,   531,   532,   532,   533,   534,
1715 <     535,   536,   537,   538,   539,   540,   541,   542,   543,   544,
1716 <     545,   546,   547,   548,   549,   550,   551,   552,   554,   553,
1717 <     555,   555,   556,   556,   556,   556,   556,   556,   556,   556,
1718 <     556,   556,   556,   556,   556,   556,   556,   556,   556,   556,
1719 <     556,   558,   557,   559,   559,   560,   560,   560,   560,   560,
1720 <     560,   560,   560,   560,   560,   560,   560,   560,   560,   560,
1721 <     560,   560,   560,   560,   561,   562,   563,   564,   565,   567,
1722 <     566,   568,   568,   569,   569,   569,   569,   569,   569,   569,
1723 <     570,   571,   573,   572,   574,   574,   575,   575,   576,   577,
1724 <     579,   578,   580,   580,   581,   581,   582,   583,   583,   584,
1725 <     584,   584,   584,   584,   584,   584,   584,   584,   584,   584,
1726 <     584,   584,   584,   584,   584,   584,   584,   584,   585,   586,
1727 <     587,   588,   589,   590,   591,   592,   593,   594,   595,   596,
1728 <     597,   598,   599,   600,   601,   602,   603,   604,   604,   605,
1729 <     605,   605,   605,   605,   605,   605,   605,   606,   607,   608,
1730 <     609,   610,   611,   612
1731 < };
1285 > #define YYPACT_NINF -789
1286  
1287 < /* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN.  */
1288 < static const yytype_uint8 yyr2[] =
1287 > #define yypact_value_is_default(Yystate) \
1288 >  (!!((Yystate) == (-789)))
1289 >
1290 > #define YYTABLE_NINF -128
1291 >
1292 > #define yytable_value_is_error(Yytable_value) \
1293 >  0
1294 >
1295 >  /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
1296 >     STATE-NUM.  */
1297 > static const yytype_int16 yypact[] =
1298   {
1299 <       0,     2,     0,     2,     1,     1,     1,     1,     1,     1,
1300 <       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1301 <       1,     1,     1,     1,     2,     2,     0,     1,     2,     3,
1302 <       3,     3,     3,     3,     0,     1,     2,     3,     3,     3,
1303 <       5,     2,     1,     1,     1,     2,     4,     4,     5,     2,
1304 <       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1305 <       1,     1,     1,     2,     0,     5,     3,     1,     1,     1,
1306 <       4,     4,     4,     4,     4,     4,     4,     4,     4,     4,
1307 <       4,     5,     2,     1,     1,     1,     1,     2,     4,     4,
1308 <       4,     5,     2,     1,     1,     1,     1,     1,     1,     1,
1309 <       1,     1,     1,     1,     1,     1,     2,     4,     4,     4,
1310 <       4,     4,     4,     4,     4,     4,     4,     4,     4,     4,
1311 <       4,     4,     4,     4,     4,     0,     7,     0,     1,     2,
1312 <       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1313 <       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1314 <       1,     1,     1,     2,     4,     1,     4,     4,     4,     4,
1315 <       4,     0,     5,     3,     1,     1,     1,     1,     1,     1,
1316 <       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1317 <       1,     1,     1,     1,     4,     4,     4,     4,     4,     4,
1318 <       4,     4,     4,     4,     4,     4,     4,     4,     0,     5,
1319 <       3,     1,     0,     3,     0,     2,     1,     1,     1,     1,
1320 <       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1321 <       1,     1,     0,     7,     0,     1,     2,     1,     1,     1,
1322 <       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1323 <       1,     2,     4,     1,     4,     4,     4,     4,     4,     4,
1324 <       4,     4,     4,     4,     4,     4,     0,     6,     0,     5,
1325 <       3,     1,     1,     1,     1,     2,     1,     1,     1,     1,
1326 <       1,     2,     0,     5,     3,     1,     1,     3,     4,     4,
1327 <       0,     6,     2,     1,     1,     1,     1,     1,     1,     1,
1328 <       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1329 <       2,     4,     4,     4,     4,     4,     0,     5,     3,     1,
1330 <       0,     3,     0,     2,     1,     1,     1,     1,     1,     1,
1331 <       1,     1,     1,     1,     4,     4,     4,     4,     4,     4,
1332 <       4,     4,     4,     4,     0,     6,     2,     1,     1,     1,
1333 <       1,     2,     4,     4,     4,     0,     6,     2,     1,     1,
1334 <       1,     1,     2,     4,     4,     0,     5,     3,     1,     1,
1335 <       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1336 <       0,     6,     2,     1,     1,     1,     2,     4,     0,     5,
1337 <       3,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1338 <       1,     1,     1,     0,     7,     0,     1,     2,     1,     1,
1339 <       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1340 <       1,     1,     1,     1,     1,     1,     1,     1,     2,     4,
1341 <       1,     4,     4,     4,     4,     4,     4,     4,     4,     0,
1342 <       5,     3,     1,     0,     3,     0,     2,     1,     1,     1,
1343 <       1,     1,     4,     4,     4,     4,     4,     4,     4,     4,
1344 <       4,     4,     0,     6,     0,     5,     3,     1,     1,     2,
1345 <       1,     1,     1,     1,     1,     4,     4,     0,     6,     2,
1346 <       1,     1,     1,     1,     4,     4,     5,     2,     1,     1,
1347 <       1,     4,     0,     6,     0,     5,     3,     1,     1,     2,
1348 <       1,     1,     1,     1,     1,     4,     4,     5,     2,     1,
1349 <       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1350 <       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1351 <       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1352 <       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1353 <       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1354 <       1,     1,     1,     1,     1,     1,     1,     4,     4,     4,
1355 <       4,     4,     4,     4,     4,     4,     4,     4,     4,     4,
1356 <       4,     4,     4,     4,     4,     4,     4,     4,     4,     4,
1357 <       4,     4,     4,     4,     4,     4,     4,     4,     4,     4,
1358 <       4,     4,     4,     4,     4,     4,     4,     4,     4,     4,
1359 <       4,     4,     4,     4,     4,     4,     4,     4,     0,     5,
1360 <       3,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1361 <       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1362 <       1,     0,     5,     3,     1,     1,     1,     1,     1,     1,
1363 <       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1364 <       1,     1,     1,     1,     4,     4,     4,     4,     4,     0,
1365 <       6,     2,     1,     1,     1,     1,     1,     1,     1,     1,
1366 <       4,     4,     0,     5,     3,     1,     1,     1,     4,     4,
1367 <       0,     5,     3,     1,     1,     1,     5,     2,     1,     1,
1368 <       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1369 <       1,     1,     1,     1,     1,     1,     1,     1,     4,     4,
1370 <       4,     4,     4,     4,     4,     4,     4,     4,     4,     4,
1371 <       4,     4,     4,     4,     4,     4,     5,     2,     1,     1,
1372 <       1,     1,     1,     1,     1,     1,     1,     4,     4,     4,
1373 <       4,     4,     4,     4
1299 >    -789,   656,  -789,   -59,  -226,  -220,  -789,  -789,  -789,  -217,
1300 >    -789,  -198,  -789,  -789,  -789,  -195,  -789,  -789,  -789,  -192,
1301 >    -189,  -789,  -181,  -171,  -789,  -789,  -789,  -789,  -789,  -789,
1302 >    -789,  -789,  -789,  -789,  -789,  -789,  -789,  -789,  -789,  -789,
1303 >    -789,  -789,  -789,  -789,  -789,  -789,  -789,  -789,  -789,   307,
1304 >     925,  -169,  -160,  -158,    22,  -155,   387,  -136,  -121,  -119,
1305 >      50,  -116,  -114,   -97,   761,   433,   -84,    34,     2,   -82,
1306 >     -73,   -47,   -34,   -27,     9,  -789,  -789,  -789,  -789,  -789,
1307 >     -22,    -7,    -1,    44,    68,    79,    82,    84,    88,    92,
1308 >      98,   102,   104,   112,   266,  -789,  -789,  -789,  -789,  -789,
1309 >    -789,  -789,  -789,  -789,  -789,  -789,  -789,  -789,  -789,  -789,
1310 >     681,   563,    19,  -789,   115,    21,  -789,  -789,    26,  -789,
1311 >     119,   129,   131,   141,   143,   145,   147,   148,   150,   154,
1312 >     155,   156,   159,   160,   164,   167,   175,   176,   177,   179,
1313 >     180,   183,   184,   186,   188,   189,   190,  -789,   194,  -789,
1314 >     207,   209,   210,   211,   215,   216,   217,   218,   220,   221,
1315 >     224,   225,   226,   227,   228,   230,   231,   232,   234,   235,
1316 >      61,  -789,  -789,  -789,  -789,  -789,  -789,  -789,  -789,  -789,
1317 >    -789,  -789,  -789,  -789,  -789,  -789,  -789,  -789,  -789,  -789,
1318 >    -789,  -789,  -789,  -789,  -789,  -789,  -789,  -789,  -789,  -789,
1319 >    -789,  -789,  -789,  -789,  -789,  -789,  -789,  -789,  -789,  -789,
1320 >    -789,  -789,  -789,  -789,  -789,  -789,  -789,  -789,  -789,  -789,
1321 >    -789,  -789,   343,    69,   301,   -70,   236,   239,    16,  -789,
1322 >    -789,  -789,   125,   388,   275,  -789,   241,   243,   251,   252,
1323 >     253,   255,   257,   259,   308,  -789,  -789,  -789,  -789,  -789,
1324 >    -789,  -789,  -789,  -789,   -29,   260,   263,   269,   273,   285,
1325 >     286,   288,   293,   294,   295,   296,   297,   300,   304,   305,
1326 >     310,   317,   319,   320,   168,  -789,  -789,  -789,  -789,  -789,
1327 >    -789,  -789,  -789,  -789,  -789,  -789,  -789,  -789,  -789,  -789,
1328 >    -789,  -789,  -789,  -789,  -789,    25,    53,   321,    10,  -789,
1329 >    -789,  -789,    89,  -789,   322,    97,  -789,  -789,    93,  -789,
1330 >     258,   398,   432,    73,  -789,   249,   270,   345,   449,   450,
1331 >     451,   450,   457,   450,   450,   460,   461,   359,   361,   344,
1332 >    -789,   348,   342,   349,   350,  -789,   352,   353,   362,   364,
1333 >     365,   366,   370,   375,   376,   378,   383,   384,   386,   146,
1334 >    -789,  -789,  -789,  -789,  -789,  -789,  -789,  -789,  -789,  -789,
1335 >    -789,  -789,  -789,  -789,  -789,  -789,  -789,  -789,   377,   389,
1336 >     391,   393,   395,   396,   397,  -789,   401,   403,   404,   407,
1337 >     412,   414,   415,    11,  -789,  -789,  -789,  -789,  -789,  -789,
1338 >    -789,  -789,  -789,  -789,  -789,  -789,  -789,  -789,  -789,  -789,
1339 >     417,   418,     7,  -789,  -789,  -789,   468,   413,  -789,  -789,
1340 >     419,   422,    38,  -789,  -789,  -789,   382,   450,   450,   409,
1341 >     547,   446,   552,   539,   453,   450,   454,   559,   566,   450,
1342 >     567,   466,   469,   470,   450,   574,   575,   450,   578,   580,
1343 >     586,   587,   486,   439,   488,   472,   489,   450,   450,   491,
1344 >     495,   497,  -190,  -183,   498,   499,   500,   589,   605,   450,
1345 >     505,   506,   450,   450,   508,   509,   492,  -789,   496,   502,
1346 >     507,  -789,   510,   511,   514,   515,   516,    57,  -789,  -789,
1347 >    -789,  -789,  -789,  -789,  -789,  -789,  -789,  -789,   517,   518,
1348 >      41,  -789,  -789,  -789,   501,   523,   524,  -789,   525,  -789,
1349 >      18,  -789,  -789,  -789,  -789,  -789,   601,   603,   512,  -789,
1350 >     530,   534,   535,    29,  -789,  -789,  -789,   542,   536,   540,
1351 >    -789,   544,   549,   553,   557,   560,  -789,   561,    62,  -789,
1352 >    -789,  -789,  -789,  -789,  -789,  -789,  -789,  -789,  -789,  -789,
1353 >     545,   564,   571,   573,    12,  -789,  -789,  -789,  -789,   520,
1354 >     526,   529,   604,   584,   588,   597,   450,   555,  -789,  -789,
1355 >     606,   599,   675,   620,   706,   692,   693,   695,   696,   697,
1356 >     698,   700,   702,   718,   704,   142,   149,   705,   707,   600,
1357 >    -789,   602,   607,  -789,    30,  -789,  -789,  -789,  -789,   621,
1358 >     608,  -789,   609,   710,   612,  -789,   613,   614,  -789,   616,
1359 >      23,  -789,  -789,  -789,  -789,   615,   625,   628,  -789,   631,
1360 >     633,   636,   638,   374,   639,   642,   644,   645,   646,   647,
1361 >     649,   651,   655,   657,  -789,  -789,   726,   737,   450,   617,
1362 >     742,   777,   779,   450,   780,   781,   450,   715,   782,   784,
1363 >     450,   791,   791,   673,  -789,  -789,   783,   192,   786,   709,
1364 >     790,   792,   672,   793,   795,   799,   798,   807,   813,   817,
1365 >     712,  -789,   824,   827,   722,  -789,   727,  -789,   837,   838,
1366 >     733,  -789,   734,   735,   736,   739,   741,   744,   745,   746,
1367 >     749,   750,   751,   752,   753,   754,   757,   758,   759,   760,
1368 >     763,   765,   766,   770,   771,   772,   773,   774,   778,   764,
1369 >     785,   688,   787,   788,   789,   794,   796,   797,   802,   803,
1370 >     804,   805,   806,   808,   809,   810,   811,   812,   814,   815,
1371 >     816,   818,   819,   820,  -789,  -789,   843,   800,   776,   848,
1372 >     869,   870,   883,   886,   821,  -789,   887,   889,   822,  -789,
1373 >    -789,   890,   892,   823,   911,   825,  -789,   828,   829,  -789,
1374 >    -789,   897,   898,   830,  -789,  -789,   899,   831,   832,   901,
1375 >     904,   905,   913,   835,   833,   929,   834,  -789,  -789,   930,
1376 >     933,   937,   839,  -789,   840,   841,   842,   844,   845,   846,
1377 >     847,   849,  -789,   850,   851,   852,   853,   854,   855,   856,
1378 >     857,   858,   859,   860,   861,   862,   863,   864,  -789,  -789,
1379 >    -188,  -789,  -789,  -789,  -185,  -789,   865,   866,  -789,  -789,
1380 >     938,   867,   868,  -789,   871,  -789,   182,   872,  -789,  -789,
1381 >     939,   873,   943,   874,  -789,  -789,  -789,  -789,  -789,  -789,
1382 >    -789,  -789,   450,   450,   450,   450,   450,   450,   450,  -789,
1383 >    -789,  -789,  -789,  -789,  -789,  -789,  -789,  -789,  -789,  -789,
1384 >    -789,   875,   877,   878,   -32,   879,   880,   881,   882,   884,
1385 >     885,   888,   891,   893,   894,   895,   289,   896,   900,  -789,
1386 >     902,   903,   906,   907,   908,   909,   910,    -3,   912,   914,
1387 >     915,   916,   917,   918,   919,  -789,   920,   921,  -789,  -789,
1388 >     922,   923,  -789,  -789,  -789,  -789,  -789,  -789,  -789,  -789,
1389 >    -789,  -789,  -789,  -789,  -789,  -789,  -789,  -789,  -789,  -789,
1390 >    -789,  -789,  -789,  -789,  -789,  -789,  -789,  -789,  -789,  -789,
1391 >    -789,  -789,  -789,  -789,  -789,  -789,  -789,  -789,  -789,  -789,
1392 >    -789,  -789,  -789,  -789,  -789,  -789,  -789,  -789,  -789,  -789,
1393 >    -180,  -789,  -789,  -789,  -789,  -789,  -789,  -789,  -789,  -789,
1394 >    -789,  -789,  -789,  -789,  -789,  -789,  -789,  -789,  -789,  -789,
1395 >    -789,  -789,  -789,  -789,  -789,  -178,  -789,  -789,  -789,  -789,
1396 >    -789,  -789,  -789,  -789,  -789,  -789,  -789,  -789,  -789,  -789,
1397 >    -789,  -789,  -789,  -789,  -789,  -789,  -789,  -789,  -789,   924,
1398 >     926,   541,   927,   928,   931,   932,   934,  -789,   935,   936,
1399 >    -789,   940,   941,     1,   947,   942,  -789,  -789,  -789,  -789,
1400 >     944,   945,  -789,   948,   949,   494,   950,   951,   952,   953,
1401 >     954,   730,   955,  -789,   956,   957,   958,  -789,  -789,  -789,
1402 >    -789,  -789,  -789,  -789,  -789,  -789,  -789,  -789,  -789,  -789,
1403 >    -789,  -789,  -789,  -789,  -789,  -789,  -789,  -789,  -789,  -789,
1404 >    -789,  -789,   142,  -789,   149,  -789,  -789,   959,   576,  -789,
1405 >    -789,   960,   961,   962,  -789,    32,  -789,  -789,  -789,  -789,
1406 >    -789,   963,   748,   966,  -789,  -789,  -789,  -789,  -789,  -789,
1407 >    -789,  -789,  -789,  -789,  -789,  -789,  -789,  -177,  -789,  -789,
1408 >    -789,  -789,  -789,  -789,  -789,  -789,  -789,  -789,  -789,  -789,
1409 >     791,   791,   791,  -789,  -789,  -789,  -789,  -789,  -789,  -789,
1410 >    -789,  -789,  -789,  -789,  -789,  -789,  -172,  -789,  -789,  -789,
1411 >    -789,  -789,  -789,  -789,  -789,  -789,  -789,  -789,  -789,  -789,
1412 >     764,  -789,   688,  -789,  -789,  -789,  -789,  -789,  -789,  -789,
1413 >    -789,  -789,  -789,  -789,  -789,   -65,  -789,  -789,  -789,  -789,
1414 >    -789,  -789,  -789,  -789,  -789,  -789,  -789,  -789,  -789,   -43,
1415 >    -789,   964,   911,   967,  -789,  -789,  -789,  -789,  -789,   965,
1416 >    -789,  -789,   968,  -789,  -789,  -789,  -789,   969,  -789,  -789,
1417 >    -789,  -789,  -789,  -789,  -789,  -789,  -789,  -789,   -41,  -789,
1418 >    -789,  -789,  -789,  -789,  -789,  -789,  -789,  -789,  -789,  -789,
1419 >    -789,  -789,  -789,  -789,  -789,  -789,  -789,  -789,  -789,  -789,
1420 >    -789,  -789,  -789,  -789,  -789,  -789,  -789,   -30,  -789,  -789,
1421 >    -789,  -789,  -789,  -789,  -789,  -789,  -789,  -789,  -789,  -789,
1422 >    -789,  -789,  -789,  -789,  -789,  -789,   -18,  -789,  -789,   973,
1423 >     -74,   972,   971,  -789,  -789,  -789,  -789,  -789,  -789,  -789,
1424 >    -789,  -789,  -789,  -789,  -789,   -17,  -789,  -789,  -789,   -32,
1425 >    -789,  -789,  -789,  -789,    -3,  -789,  -789,  -789,   541,  -789,
1426 >       1,  -789,  -789,  -789,   983,   986,   987,  -789,   494,  -789,
1427 >     730,  -789,   576,   976,   977,   978,   410,  -789,  -789,   748,
1428 >    -789,  -789,  -789,  -789,  -789,  -789,  -789,  -789,  -789,  -789,
1429 >    -789,  -789,  -789,  -789,  -789,  -789,  -789,  -789,  -789,  -789,
1430 >    -789,  -789,    70,  -789,  -789,  -789,   410,  -789
1431   };
1432  
1433 < /* YYDEFACT[STATE-NAME] -- Default rule to reduce with in state
1434 <   STATE-NUM when YYTABLE doesn't specify something else to do.  Zero
1435 <   means the default is an error.  */
1433 >  /* YYDEFACT[STATE-NUM] -- Default reduction number in state STATE-NUM.
1434 >     Performed when YYTABLE does not specify something else to do.  Zero
1435 >     means the default is an error.  */
1436   static const yytype_uint16 yydefact[] =
1437   {
1438 <       2,     0,     1,     0,     0,     0,   222,   393,   467,     0,
1439 <     482,     0,   659,   280,   452,   256,     0,     0,   125,   334,
1440 <       0,     0,   345,   370,     3,    23,    11,     4,     5,     6,
1441 <       8,     9,    10,    13,    14,    15,    16,    17,    18,    19,
1442 <      22,    20,    21,     7,    12,    24,    25,     0,     0,   224,
1823 <     395,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1824 <       0,   127,     0,     0,     0,     0,     0,     0,     0,     0,
1825 <       0,     0,    83,    84,    86,    85,   707,     0,     0,     0,
1826 <       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1827 <       0,     0,     0,     0,     0,     0,   688,   706,   701,   689,
1828 <     690,   691,   692,   694,   695,   696,   697,   693,   698,   699,
1829 <     700,   702,   703,   704,   705,   243,     0,   225,   420,     0,
1830 <     396,     0,   480,     0,     0,   478,   479,     0,   556,     0,
1438 >       2,     0,     1,     0,     0,     0,   227,   392,   440,     0,
1439 >     455,     0,   295,   431,   271,     0,   111,   151,   329,     0,
1440 >       0,   370,     0,     0,   346,     3,    23,    11,     4,    24,
1441 >       5,     6,     8,     9,    10,    13,    14,    15,    16,    17,
1442 >      18,    19,    20,    22,    21,     7,    12,    25,    26,     0,
1443         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1444         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1445 +       0,     0,     0,     0,     0,   103,   104,   106,   105,   635,
1446         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1447 <       0,     0,   631,     0,   608,     0,     0,     0,     0,     0,
1447 >       0,     0,     0,     0,     0,   620,   634,   622,   623,   624,
1448 >     625,   626,   627,   621,   628,   629,   630,   631,   632,   633,
1449 >       0,     0,     0,   453,     0,     0,   451,   452,     0,   517,
1450         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1836       0,     0,     0,     0,     0,     0,   499,   555,   550,   551,
1837     548,   552,   553,   549,   510,   500,   501,   539,   502,   503,
1838     504,   505,   506,   507,   508,   509,   544,   511,   512,   513,
1839     514,   554,   516,   521,   517,   519,   518,   533,   534,   520,
1840     522,   523,   524,   525,   527,   526,   515,   529,   538,   540,
1841     541,   530,   531,   546,   547,   543,   532,   528,   536,   537,
1842     535,   542,   545,     0,     0,     0,     0,     0,     0,     0,
1451         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1452 <       0,    93,    94,    95,    98,   105,    99,   103,   100,   101,
1845 <     104,   102,    96,    97,     0,     0,     0,     0,    42,    43,
1846 <      44,   155,     0,   128,     0,   736,     0,     0,     0,     0,
1847 <       0,     0,     0,     0,   728,   729,   730,   734,   731,   733,
1848 <     732,   735,     0,     0,     0,     0,     0,     0,     0,     0,
1849 <      64,     0,     0,     0,     0,     0,    50,    62,    61,    58,
1850 <      51,    60,    54,    55,    56,    52,    59,    57,    53,     0,
1851 <       0,    87,     0,     0,     0,     0,    82,     0,     0,     0,
1452 >       0,     0,     0,     0,     0,     0,     0,   591,     0,   565,
1453         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1853       0,     0,     0,     0,     0,     0,   687,     0,     0,   473,
1854       0,     0,     0,   470,   471,   472,     0,     0,   477,   494,
1855       0,     0,   484,   493,     0,   490,   491,   492,     0,     0,
1454         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1455 +       0,   466,   514,   516,   508,   509,   510,   511,   512,   507,
1456 +     477,   467,   468,   469,   470,   471,   472,   473,   474,   475,
1457 +     476,   504,   478,   479,   513,   481,   486,   487,   482,   484,
1458 +     483,   497,   498,   485,   488,   489,   490,   491,   480,   493,
1459 +     494,   495,   515,   505,   506,   502,   503,   496,   492,   500,
1460 +     501,   499,     0,     0,     0,     0,     0,     0,     0,    45,
1461 +      46,    47,     0,     0,     0,   661,     0,     0,     0,     0,
1462 +       0,     0,     0,     0,     0,   652,   653,   654,   655,   656,
1463 +     659,   657,   658,   660,     0,     0,     0,     0,     0,     0,
1464         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1465 +       0,     0,     0,     0,     0,    53,    69,    70,    68,    65,
1466 +      63,    71,    72,    64,    54,    67,    57,    58,    59,    55,
1467 +      66,    60,    61,    62,    56,     0,     0,     0,     0,   122,
1468 +     123,   124,     0,   344,     0,     0,   342,   343,     0,   107,
1469 +       0,     0,     0,     0,   102,     0,     0,     0,     0,     0,
1470         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1471 +     619,     0,     0,     0,     0,   265,     0,     0,     0,     0,
1472         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1473 +     230,   231,   234,   236,   237,   238,   239,   240,   241,   242,
1474 +     243,   244,   232,   233,   235,   245,   246,   247,     0,     0,
1475 +       0,     0,     0,     0,     0,   420,     0,     0,     0,     0,
1476 +       0,     0,     0,     0,   395,   396,   397,   398,   399,   400,
1477 +     401,   403,   402,   405,   409,   406,   407,   408,   404,   446,
1478 +       0,     0,     0,   443,   444,   445,     0,     0,   450,   461,
1479 +       0,     0,     0,   458,   459,   460,     0,     0,     0,     0,
1480         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1861       0,     0,     0,     0,     0,   498,   669,   680,     0,     0,
1862     672,     0,     0,     0,   662,   663,   664,   665,   666,   667,
1863     668,     0,     0,     0,     0,     0,   306,     0,     0,     0,
1864       0,     0,     0,     0,     0,     0,     0,     0,     0,   283,
1865     284,   285,   294,   286,   299,   287,   288,   289,   290,   297,
1866     291,   292,   293,   295,   296,   298,   464,     0,   454,     0,
1867     463,     0,   460,   461,   462,     0,   258,     0,     0,     0,
1868     268,     0,   266,   267,   269,   270,   106,     0,     0,     0,
1481         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1870      92,    45,     0,     0,     0,    41,     0,     0,     0,     0,
1871       0,     0,   337,   338,   339,   340,     0,     0,     0,     0,
1872       0,     0,     0,     0,   727,    63,     0,     0,     0,     0,
1873       0,     0,     0,     0,     0,     0,     0,     0,     0,    49,
1874       0,     0,   355,     0,     0,   348,   349,   350,   351,     0,
1875       0,   378,     0,   373,   374,   375,     0,     0,     0,    81,
1876       0,     0,     0,     0,     0,    26,     0,     0,     0,     0,
1877       0,     0,     0,     0,     0,     0,     0,     0,     0,   686,
1482         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1879       0,     0,     0,     0,     0,   227,   228,   231,   232,   234,
1880     235,   236,   237,   238,   239,   240,   229,   230,   233,     0,
1881       0,     0,     0,     0,     0,     0,     0,     0,     0,   429,
1483         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1484 <     398,   399,   400,   401,   402,   403,   405,   404,   406,   407,
1485 <     415,   412,   414,   413,   411,   417,   408,   409,   410,   416,
1486 <       0,     0,     0,   469,     0,   476,     0,     0,     0,     0,
1487 <     489,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1484 >       0,     0,     0,     0,     0,     0,     0,   465,     0,     0,
1485 >       0,   312,     0,     0,     0,     0,     0,     0,   298,   299,
1486 >     300,   301,   306,   302,   303,   304,   305,   437,     0,     0,
1487 >       0,   434,   435,   436,     0,     0,     0,   273,     0,   283,
1488 >       0,   281,   282,   284,   285,    48,     0,     0,     0,    44,
1489 >       0,     0,     0,     0,   114,   115,   116,     0,     0,     0,
1490 >     200,     0,     0,     0,     0,     0,   174,     0,     0,   154,
1491 >     155,   156,   157,   160,   161,   162,   163,   159,   158,   164,
1492 >       0,     0,     0,     0,     0,   332,   333,   334,   335,     0,
1493 >       0,     0,     0,     0,     0,     0,     0,     0,   651,    73,
1494         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1495         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1496 +      52,     0,     0,   378,     0,   373,   374,   375,   125,     0,
1497 +       0,   121,     0,     0,     0,   341,     0,     0,   356,     0,
1498 +       0,   349,   350,   351,   352,     0,     0,     0,   101,     0,
1499 +       0,     0,     0,    27,     0,     0,     0,     0,     0,     0,
1500 +       0,     0,     0,     0,   618,   248,     0,     0,     0,     0,
1501         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1502 +       0,     0,     0,     0,   229,   410,     0,     0,     0,     0,
1503         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1504 <       0,     0,     0,    34,     0,     0,     0,     0,     0,     0,
1505 <     497,     0,     0,     0,     0,     0,     0,     0,   661,   300,
1504 >       0,   394,     0,     0,     0,   442,     0,   449,     0,     0,
1505 >       0,   457,     0,     0,     0,     0,     0,     0,     0,     0,
1506         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1894       0,     0,     0,     0,     0,     0,     0,   282,     0,     0,
1895       0,     0,   459,   271,     0,     0,     0,     0,     0,   265,
1507         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1897       0,     0,     0,     0,     0,     0,     0,     0,    91,     0,
1898       0,    40,     0,     0,     0,     0,     0,   198,     0,     0,
1508         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1900       0,   161,     0,     0,     0,     0,   130,   131,   132,   133,
1901     150,   151,   137,   136,   138,   139,   145,   140,   141,   142,
1902     143,   144,   146,   147,   148,   134,   135,   149,   152,   341,
1903       0,     0,     0,     0,   336,     0,     0,     0,     0,     0,
1904       0,     0,   726,     0,     0,     0,     0,     0,     0,     0,
1905       0,     0,     0,     0,     0,    48,   352,     0,     0,     0,
1906       0,   347,   376,     0,     0,     0,   372,    90,    89,    88,
1907     723,   720,   719,   708,   710,    26,    26,    26,    26,    26,
1908      28,    27,   714,   715,   718,   716,   721,   722,   724,   725,
1909     717,   709,   711,   712,   713,   241,     0,     0,     0,     0,
1509         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1510 <     226,   418,     0,     0,     0,     0,     0,     0,     0,     0,
1510 >       0,     0,     0,     0,   464,   307,     0,     0,     0,     0,
1511 >       0,     0,     0,     0,     0,   297,     0,     0,     0,   433,
1512 >     286,     0,     0,     0,     0,     0,   280,     0,     0,    43,
1513 >     117,     0,     0,     0,   113,   165,     0,     0,     0,     0,
1514 >       0,     0,     0,     0,     0,     0,     0,   153,   336,     0,
1515 >       0,     0,     0,   331,     0,     0,     0,     0,     0,     0,
1516 >       0,     0,   650,     0,     0,     0,     0,     0,     0,     0,
1517 >       0,     0,     0,     0,     0,     0,     0,     0,    78,    79,
1518 >       0,    77,    82,    83,     0,    81,     0,     0,    51,   376,
1519 >       0,     0,     0,   372,     0,   120,     0,     0,   340,   353,
1520 >       0,     0,     0,     0,   348,   110,   109,   108,   645,   644,
1521 >     636,   637,    27,    27,    27,    27,    27,    27,    27,    29,
1522 >      28,   638,   648,   649,   639,   640,   641,   643,   642,   646,
1523 >     647,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1524 >       0,     0,     0,     0,     0,     0,    37,     0,     0,   228,
1525         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1526 <       0,     0,   397,     0,     0,   468,   481,     0,     0,     0,
1527 <     483,   569,   573,   560,   589,   602,   601,   656,   606,   567,
1528 <     658,   598,   604,   568,   558,   559,   576,   565,   597,   566,
1529 <     579,   564,   578,   577,   572,   571,   570,   599,   557,   596,
1530 <     654,   655,   593,   590,   635,   651,   652,   636,   637,   638,
1531 <     639,   646,   640,   649,   653,   642,   647,   643,   648,   641,
1532 <     645,   644,   650,     0,   634,   595,   612,   628,   629,   613,
1533 <     614,   615,   616,   623,   617,   626,   630,   619,   624,   620,
1534 <     625,   618,   622,   621,   627,     0,   611,   588,   591,   605,
1535 <     562,   600,   563,   592,   581,   586,   587,   584,   585,   582,
1536 <     583,   575,   574,    34,    34,    34,    36,    35,   657,   607,
1537 <     594,   603,   561,   580,     0,     0,     0,     0,     0,     0,
1538 <     660,     0,     0,     0,     0,   312,     0,     0,     0,     0,
1539 <       0,     0,     0,     0,     0,     0,     0,   281,     0,     0,
1540 <       0,   453,     0,     0,     0,   276,   272,   275,   257,   110,
1541 <     116,   114,   113,   115,   111,   112,   109,   117,   123,   118,
1542 <     122,   120,   121,   119,   108,   107,   124,    46,    47,   153,
1543 <       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1544 <       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1545 <       0,     0,     0,   129,     0,     0,     0,   335,   742,   737,
1546 <     741,   739,   743,   738,   740,    74,    80,    72,    76,    75,
1547 <      71,    70,    68,    69,     0,    67,    73,    79,    77,    78,
1548 <       0,     0,     0,   346,     0,     0,   371,    29,    30,    31,
1549 <      32,    33,     0,     0,     0,     0,     0,     0,     0,     0,
1550 <       0,     0,     0,     0,     0,   223,     0,     0,     0,     0,
1551 <       0,     0,     0,     0,     0,     0,   435,     0,     0,     0,
1552 <       0,     0,     0,     0,     0,     0,   394,   474,   475,   495,
1553 <     496,   488,     0,   487,   632,     0,   609,     0,    37,    38,
1554 <      39,   685,   684,     0,   683,   671,   670,   677,   676,     0,
1555 <     675,   679,   678,   327,   304,   305,   326,   310,     0,   309,
1556 <       0,   329,   325,   324,   333,   328,   302,   332,   331,   330,
1557 <     303,   301,   466,   458,     0,   457,   465,   263,   264,   262,
1558 <       0,   261,   279,   278,     0,     0,     0,     0,     0,     0,
1559 <       0,   204,     0,     0,     0,     0,     0,     0,     0,     0,
1560 <       0,     0,     0,     0,     0,     0,     0,     0,     0,   126,
1561 <     343,   344,   342,    65,     0,   353,   359,   365,   369,   368,
1562 <     367,   364,   360,   363,   366,   361,   362,     0,   358,   354,
1563 <     377,   382,   388,   392,   391,   390,   387,   383,   386,   389,
1564 <     384,   385,     0,   381,   253,   254,   247,   249,   251,   250,
1565 <     248,   242,   255,   246,   244,   245,   252,   424,   426,   427,
1566 <     446,   451,   450,   445,   444,   443,   428,   433,     0,   432,
1567 <       0,   421,   448,   449,   419,   425,   442,   423,   447,   422,
1568 <     485,     0,   633,   610,   681,     0,   673,     0,     0,   307,
1569 <     312,   318,   319,   315,   321,   317,   316,   323,   320,   322,
1957 <     314,   313,   455,     0,   259,     0,   277,   274,   273,   194,
1958 <     160,   192,   158,   202,     0,   201,     0,   190,   184,   195,
1959 <     196,   187,   154,   191,   157,   193,   185,   186,   159,   197,
1960 <     165,   181,   182,   166,   167,   168,   169,   176,   170,   179,
1961 <     183,   172,   177,   173,   178,   171,   175,   174,   180,     0,
1962 <     164,   189,   156,   188,    66,   356,     0,   379,     0,     0,
1963 <     430,   435,   439,   440,   437,   438,   441,   436,   486,   682,
1964 <     674,   311,   308,   456,   260,     0,   199,   204,   214,   212,
1965 <     221,   211,   206,   215,   219,   208,   216,   218,   213,   207,
1966 <     220,   217,   209,   210,   205,   162,     0,   357,   380,   434,
1967 <     431,   203,   200,   163
1968 < };
1969 <
1970 < /* YYDEFGOTO[NTERM-NUM].  */
1971 < static const yytype_int16 yydefgoto[] =
1972 < {
1973 <      -1,     1,    24,   900,   901,  1056,  1057,    25,   277,   278,
1974 <     279,   280,    26,   315,   316,   317,   553,  1164,  1165,   318,
1975 <     319,   320,   321,   322,   323,   324,   325,   326,   327,   328,
1976 <      27,    71,    72,    73,    74,    75,    28,   260,   261,   262,
1977 <     263,   264,   265,   266,   267,   268,   269,   270,   271,   272,
1978 <     273,    29,    61,   282,   825,   826,   827,   283,   828,   829,
1979 <     830,   831,   832,   833,  1138,  1439,  1440,   834,   835,   836,
1980 <     837,   838,   839,   840,   841,   842,   843,   844,   845,   846,
1981 <     847,   848,  1124,  1404,  1405,  1465,  1406,  1484,    30,    49,
1982 <     116,   614,   615,   616,   117,   617,   618,   619,   620,   621,
1983 <     622,   623,   624,   625,   626,   627,   628,    31,    58,   500,
1984 <     774,  1270,  1271,   501,   502,   503,  1276,  1096,  1097,   504,
1985 <     505,    32,    56,   468,   469,   470,   471,   472,   473,   474,
1986 <     475,   754,  1248,  1249,  1378,  1250,  1391,   476,   477,   478,
1987 <     479,   480,   481,   482,   483,   484,   485,    33,    62,   531,
1988 <     532,   533,   534,   535,    34,    65,   564,   565,   566,   567,
1989 <     568,   878,  1317,  1318,    35,    66,   572,   573,   574,   575,
1990 <     884,  1332,  1333,    36,    50,   119,   649,   650,   651,   120,
1991 <     652,   653,   654,   655,   656,   657,   658,   659,   941,  1358,
1992 <    1359,  1449,  1360,  1457,   660,   661,   662,   663,   664,   665,
1993 <     666,   667,   668,   669,    37,    57,   490,   769,  1264,  1265,
1994 <     491,   492,   493,   494,    38,    51,   362,   363,   364,   365,
1995 <      39,   124,   125,   126,    40,    53,   373,   678,  1222,  1223,
1996 <     374,   375,   376,   377,    41,   185,   186,   187,   188,   189,
1997 <     190,   191,   192,   193,   194,   195,   196,   197,   198,   199,
1998 <     200,   201,   202,   203,   204,   205,   206,   207,   208,   209,
1999 <     210,   211,   212,   213,   214,   215,   216,   217,   218,   219,
2000 <     220,   221,   222,   223,   224,   225,   226,   227,   228,   229,
2001 <     230,   231,   232,   233,   234,   235,   236,   413,  1035,  1036,
2002 <     237,   411,  1013,  1014,   238,   239,   240,   241,   242,    42,
2003 <      55,   443,   444,   445,   446,   447,   744,  1239,  1240,   448,
2004 <     449,   450,   741,  1233,  1234,    43,    95,    96,    97,    98,
2005 <      99,   100,   101,   102,   103,   104,   105,   106,   107,   108,
2006 <     109,   110,   111,   112,   113,   114,    44,   293,   294,   295,
2007 <     296,   297,   298,   299,   300,   301
1526 >       0,     0,     0,     0,     0,   393,     0,     0,   441,   454,
1527 >       0,     0,   456,   530,   534,   549,   519,   617,   562,   556,
1528 >     559,   529,   521,   520,   523,   524,   522,   537,   527,   528,
1529 >     538,   526,   533,   532,   531,   557,   518,   615,   616,   553,
1530 >     601,   595,   611,   596,   597,   598,   606,   614,   599,   608,
1531 >     612,   602,   613,   603,   607,   600,   610,   605,   604,   609,
1532 >       0,   594,   555,   574,   575,   576,   569,   587,   570,   571,
1533 >     572,   582,   590,   573,   584,   588,   578,   589,   579,   583,
1534 >     577,   586,   581,   580,   585,     0,   568,   550,   548,   551,
1535 >     561,   552,   540,   546,   547,   544,   545,   541,   542,   543,
1536 >     560,   563,   564,   525,   554,   536,   535,   558,   539,     0,
1537 >       0,     0,     0,     0,     0,     0,     0,   296,     0,     0,
1538 >     432,     0,     0,     0,   291,   287,   290,   272,    49,    50,
1539 >       0,     0,   112,     0,     0,     0,     0,     0,     0,     0,
1540 >       0,     0,     0,   152,     0,     0,     0,   330,   663,   662,
1541 >     668,   666,   669,   664,   665,   667,    92,   100,    91,    98,
1542 >      99,    90,    94,    93,    85,    84,    89,    86,    88,    97,
1543 >      87,    74,     0,    75,     0,    95,    96,     0,     0,   371,
1544 >     126,     0,     0,     0,   138,     0,   130,   131,   133,   132,
1545 >     345,     0,     0,     0,   347,    30,    31,    32,    33,    34,
1546 >      35,    36,   260,   261,   252,   270,   269,     0,   268,   253,
1547 >     255,   257,   264,   256,   254,   263,   249,   262,   251,   250,
1548 >      37,    37,    37,    39,    38,   258,   259,   415,   418,   419,
1549 >     429,   426,   412,   427,   424,   425,     0,   423,   428,   411,
1550 >     417,   414,   416,   430,   413,   447,   448,   462,   463,   592,
1551 >       0,   566,     0,   310,   311,   320,   317,   322,   318,   319,
1552 >     325,   321,   323,   316,   324,     0,   315,   309,   328,   327,
1553 >     326,   308,   439,   438,   294,   293,   278,   279,   277,     0,
1554 >     276,     0,     0,     0,   118,   119,   173,   169,   220,   207,
1555 >     217,   216,   205,   210,   226,   219,   224,   209,   212,   221,
1556 >     223,   218,   225,   213,   215,   222,   211,   214,     0,   203,
1557 >     166,   168,   170,   171,   172,   183,   184,   185,   178,   196,
1558 >     179,   180,   181,   191,   199,   182,   193,   197,   187,   198,
1559 >     188,   192,   186,   195,   190,   189,   194,     0,   177,   167,
1560 >     339,   337,   338,    76,    80,   377,   382,   388,   391,   384,
1561 >     390,   385,   389,   387,   383,   386,     0,   381,   134,     0,
1562 >       0,     0,     0,   129,   354,   360,   366,   369,   362,   368,
1563 >     363,   367,   365,   361,   364,     0,   359,   355,   266,     0,
1564 >      40,    41,    42,   421,     0,   593,   567,   313,     0,   274,
1565 >       0,   292,   289,   288,     0,     0,     0,   201,     0,   175,
1566 >       0,   379,     0,     0,     0,     0,     0,   128,   357,     0,
1567 >     267,   422,   314,   275,   206,   204,   208,   202,   176,   380,
1568 >     135,   137,   136,   144,   149,   148,   143,   146,   150,   147,
1569 >     142,   145,     0,   141,   358,   139,     0,   140
1570   };
1571  
1572 < /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
1573 <   STATE-NUM.  */
2012 < #define YYPACT_NINF -952
2013 < static const yytype_int16 yypact[] =
1572 >  /* YYPGOTO[NTERM-NUM].  */
1573 > static const yytype_int16 yypgoto[] =
1574   {
1575 <    -952,   888,  -952,  -233,  -260,  -258,  -952,  -952,  -952,  -255,
1576 <    -952,  -253,  -952,  -952,  -952,  -952,  -250,  -237,  -952,  -952,
1577 <    -228,  -226,  -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,
1578 <    -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,
1579 <    -952,  -952,  -952,  -952,  -952,  -952,  -952,   302,   766,  -136,
1580 <    -112,  -199,    17,  -193,   475,  -190,  -187,  -173,  -167,   702,
1581 <       2,   -46,  -149,   361,   520,  -140,  -134,  -130,  -121,  -102,
1582 <     -84,     4,  -952,  -952,  -952,  -952,  -952,   -82,   -77,   -62,
1583 <     -57,   -51,   -33,   -30,   -25,   -16,    -5,    -4,    20,    24,
1584 <      37,    40,    46,    49,    59,   286,  -952,  -952,  -952,  -952,
1585 <    -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,
1586 <    -952,  -952,  -952,  -952,  -952,  -952,    36,  -952,  -952,    63,
1587 <    -952,    19,  -952,    70,     7,  -952,  -952,   159,  -952,    71,
1588 <      76,    79,    84,    91,    98,   104,   105,   107,   108,   109,
1589 <     112,   113,   114,   116,   117,   118,   121,   125,   126,   130,
1590 <     132,   136,   140,   142,   144,   146,   148,   153,   155,   157,
1591 <     161,   164,  -952,   165,  -952,   169,   170,   171,   172,   173,
1592 <     181,   184,   185,   194,   196,   198,   199,   200,   201,   204,
1593 <     206,   209,   210,   212,   213,    23,  -952,  -952,  -952,  -952,
1594 <    -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,
1595 <    -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,
1596 <    -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,
1597 <    -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,
1598 <    -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,
1599 <    -952,  -952,  -952,   552,   784,    93,    88,   217,   215,   216,
1600 <     220,   224,   225,   226,   227,   231,   232,   234,   235,   239,
1601 <     133,  -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,
1602 <    -952,  -952,  -952,  -952,   243,   241,   245,    27,  -952,  -952,
1603 <    -952,  -952,   247,  -952,    25,  -952,   248,   250,   252,   259,
1604 <     260,   261,   266,    45,  -952,  -952,  -952,  -952,  -952,  -952,
2045 <    -952,  -952,   271,   269,   270,   272,   276,   278,   279,   280,
2046 <    -952,   281,   285,   289,   290,   303,  -952,  -952,  -952,  -952,
2047 <    -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,    56,
2048 <      62,  -952,   357,   381,   396,   296,  -952,   363,   434,   436,
2049 <     374,   375,   444,   444,   449,   450,   387,   390,   462,   444,
2050 <     397,   400,   403,   404,   405,   318,  -952,   634,   703,  -952,
2051 <     342,   343,    15,  -952,  -952,  -952,   454,   348,  -952,  -952,
2052 <     346,   353,  -952,  -952,   158,  -952,  -952,  -952,   414,   444,
2053 <     421,   444,   494,   476,   497,   433,   435,   437,   500,   483,
2054 <     440,   510,   513,   514,   451,   444,   452,   453,   516,   499,
2055 <     461,   529,   530,   444,   533,   542,   512,   543,   546,   481,
2056 <     482,   417,   484,   419,   444,   444,   486,   444,   536,   489,
2057 <     493,   495,  -150,  -141,   496,   498,   444,   444,   560,   444,
2058 <     501,   503,   509,   511,   455,  -952,  -952,  -952,   446,   456,
2059 <    -952,   457,   459,    44,  -952,  -952,  -952,  -952,  -952,  -952,
2060 <    -952,   463,   467,   468,   485,   487,  -952,   490,   506,   507,
2061 <     508,   519,   524,   526,   527,   531,   532,   544,   160,  -952,
2062 <    -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,
2063 <    -952,  -952,  -952,  -952,  -952,  -952,  -952,   548,  -952,   550,
2064 <    -952,    12,  -952,  -952,  -952,   465,  -952,   551,   553,   554,
2065 <    -952,    14,  -952,  -952,  -952,  -952,  -952,   557,   559,   561,
2066 <     564,   585,   586,   591,   592,   230,   596,   613,   577,   537,
2067 <    -952,  -952,   640,   643,   549,  -952,   574,   555,   556,   562,
2068 <     563,    32,  -952,  -952,  -952,  -952,   623,   630,   631,   665,
2069 <     632,   633,   444,   575,  -952,  -952,   681,   639,   685,   688,
2070 <     689,   690,   691,   582,   693,   565,   694,   695,   589,  -952,
2071 <     590,   593,  -952,   594,     9,  -952,  -952,  -952,  -952,   601,
2072 <     607,  -952,    33,  -952,  -952,  -952,   604,   614,   615,  -952,
2073 <     616,   619,   620,   624,   625,   189,   628,   629,   635,   636,
2074 <     637,   638,   641,   642,   644,   646,   647,   651,   654,  -952,
2075 <     656,   610,   618,   627,   655,   660,   661,   662,   663,   664,
2076 <     667,   669,   670,   671,   223,  -952,  -952,  -952,  -952,  -952,
2077 <    -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,   657,
2078 <     672,   673,   674,   676,   679,   680,   683,   684,   686,  -952,
2079 <     687,   696,   697,   699,   700,   701,   704,   705,   706,   238,
2080 <    -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,
2081 <    -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,
2082 <     730,   741,   659,  -952,   668,  -952,   746,   747,   707,   711,
2083 <    -952,   712,   713,   716,   717,   719,   720,   721,   722,   723,
2084 <     724,   725,   726,   727,   729,   731,   732,   733,   734,   735,
2085 <     736,   737,   738,   739,   740,   742,   743,   744,   745,   748,
2086 <     749,   750,   751,   752,   815,   753,   871,   754,   755,   767,
2087 <     771,   774,   775,   776,   777,   778,   779,   780,   781,   782,
2088 <     786,   790,   791,   315,   793,   794,   796,   797,   798,   800,
2089 <    -952,   799,   444,   756,   801,   795,   803,   805,  -952,  -952,
2090 <     760,   812,   769,   804,   807,   809,   864,   866,   869,   870,
2091 <     918,   566,   919,   927,   886,   934,   828,  -952,   937,   829,
2092 <     938,   833,  -952,  -952,   831,   942,   943,   772,   837,  -952,
2093 <     838,   842,   846,   847,   849,   850,   857,   860,   865,   867,
2094 <     868,   872,   873,   874,   875,   879,   883,   884,  -952,   887,
2095 <     889,  -952,   890,   861,   891,   892,   893,  -952,   894,   895,
2096 <     896,   897,   898,   899,   900,   901,   902,   903,   904,   905,
2097 <     906,  -952,   907,   909,   910,   149,  -952,  -952,  -952,  -952,
2098 <    -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,
2099 <    -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,
2100 <     976,   977,   978,   911,  -952,   914,   915,   916,   917,   920,
2101 <     921,   922,  -952,   923,   924,   925,   926,   928,   929,   930,
2102 <     -15,   931,   932,   933,   935,  -952,  -952,   993,   936,   998,
2103 <     940,  -952,  -952,   999,   939,   941,  -952,  -952,  -952,  -952,
2104 <    -952,  -952,  -952,  -952,  -952,   444,   444,   444,   444,   444,
2105 <    -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,
2106 <    -952,  -952,  -952,  -952,  -952,  -952,   813,  1022,   444,  1047,
2107 <    1048,  1056,  1063,  1043,  1066,  1067,   444,   444,   560,   944,
2108 <    -952,  -952,  1050,   -13,  1008,  1053,  1054,  1011,  1012,  1013,
2109 <    1058,   949,  1060,  1061,  1062,  1064,  1085,  1065,  1068,  1023,
2110 <    1069,   959,  -952,   963,   964,  -952,  -952,   965,   966,  1070,
2111 <    -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,
2112 <    -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,
2113 <    -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,
2114 <    -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,
2115 <    -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,
2116 <    -952,  -952,  -952,  -245,  -952,  -952,  -952,  -952,  -952,  -952,
2117 <    -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,
2118 <    -952,  -952,  -952,  -952,  -952,  -202,  -952,  -952,  -952,  -952,
2119 <    -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,
2120 <    -952,  -952,  -952,   560,   560,   560,  -952,  -952,  -952,  -952,
2121 <    -952,  -952,  -952,  -952,     1,   967,   969,    11,   970,   971,
2122 <    -952,   972,   973,   974,   975,  1106,   979,   980,   981,   982,
2123 <     983,   984,   985,   986,   987,   988,   989,  -952,   990,  1079,
2124 <     991,  -952,     0,   992,   994,   650,   995,  -952,  -952,  -952,
2125 <    -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,
2126 <    -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,
2127 <    1041,  1100,  1059,  1071,   997,  1072,  1073,  1074,  1075,  1076,
2128 <    1102,  1077,  1104,  1078,  1080,  1081,  1105,  1082,  1000,  1083,
2129 <    1108,  1084,  1002,  -952,  1004,  1005,  1006,  -952,  -952,  -952,
2130 <    -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,
2131 <    -952,  -952,  -952,  -952,  -174,  -952,  -952,  -952,  -952,  -952,
2132 <    1007,   534,  1016,  -952,  1024,   621,  -952,  -952,  -952,  -952,
2133 <    -952,  -952,  1025,  1026,  1027,  1028,  1029,  1030,  1031,  1032,
2134 <    1033,  1034,  1035,  1036,  1037,  -952,  1038,  1039,  1040,  1042,
2135 <    1044,  1045,  1046,  1049,  1051,  1052,  1152,  1055,  1057,  1086,
2136 <    1087,  1088,  1089,  1090,  1091,  1092,  -952,  -952,  -952,  -952,
2137 <    -952,  -952,  -148,  -952,  -952,   815,  -952,   871,  -952,  -952,
2138 <    -952,  -952,  -952,  -145,  -952,  -952,  -952,  -952,  -952,  -129,
2139 <    -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,  -117,  -952,
2140 <     447,  -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,
2141 <    -952,  -952,  -952,  -952,   -35,  -952,  -952,  -952,  -952,  -952,
2142 <     -10,  -952,  -952,  -952,  1170,   772,  1093,  1094,  1095,  1096,
2143 <    1097,  1153,  1098,  1099,  1101,  1103,  1107,  1109,  1110,  1111,
2144 <    1112,  1113,  1114,  1115,  1116,   908,  1117,  1118,  1119,  -952,
2145 <    -952,  -952,  -952,  -952,   -15,  -952,  -952,  -952,  -952,  -952,
2146 <    -952,  -952,  -952,  -952,  -952,  -952,  -952,    -8,  -952,  -952,
2147 <    -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,
2148 <    -952,  -952,    35,  -952,  -952,  -952,  -952,  -952,  -952,  -952,
2149 <    -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,
2150 <    -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,    80,  -952,
2151 <      13,  -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,
2152 <    -952,  1070,  -952,  -952,  -952,     1,  -952,    11,   447,  -952,
2153 <    1106,  -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,
2154 <    -952,  -952,  -952,  1079,  -952,     0,  -952,  -952,  -952,  -952,
2155 <    -952,  -952,  -952,  -952,    89,  -952,   366,  -952,  -952,  -952,
2156 <    -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,
2157 <    -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,
2158 <    -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,    95,
2159 <    -952,  -952,  -952,  -952,  -952,  -952,   534,  -952,   621,    13,
2160 <    -952,  1152,  -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,
2161 <    -952,  -952,  -952,  -952,  -952,   366,  -952,  1153,  -952,  -952,
2162 <    -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,
2163 <    -952,  -952,  -952,  -952,  -952,  -952,   908,  -952,  -952,  -952,
2164 <    -952,  -952,  -952,  -952
1575 >    -789,  -789,  -789,  -396,  -317,  -788,  -641,  -789,  -789,   974,
1576 >    -789,  -789,  -789,  -789,   946,  -789,  -789,  -789,    54,  -789,
1577 >      17,  -789,  -789,  -789,  -789,  -789,  -789,  -789,  -789,  -789,
1578 >    -789,  -789,  -789,  -789,  -789,  -789,  -789,  -789,  -789,  -789,
1579 >    1007,  -789,  -789,  -789,  -789,  -789,  -789,   610,  -789,  -789,
1580 >    -789,  -789,   836,  -789,  -789,  -789,  -789,    37,  -789,  -789,
1581 >    -789,  -789,  -789,  -194,  -789,  -789,  -789,   618,  -789,  -789,
1582 >    -789,  -789,  -789,  -789,  -789,  -789,  -789,  -789,  -789,  -150,
1583 >    -789,  -789,  -789,  -153,  -789,  -789,  -789,   826,  -789,  -789,
1584 >    -789,  -789,  -789,  -789,  -789,  -789,  -789,  -789,  -789,  -789,
1585 >    -789,  -789,  -789,  -789,  -789,  -789,  -789,  -128,  -789,  -789,
1586 >    -789,  -789,  -789,  -138,  -789,   637,  -789,  -789,  -789,   -24,
1587 >    -789,  -789,  -789,  -789,  -789,   667,  -789,  -789,  -789,  -789,
1588 >    -789,  -789,  -789,  -110,  -789,  -789,  -789,  -789,  -789,  -789,
1589 >     619,  -789,  -789,  -789,  -789,  -789,   970,  -789,  -789,  -789,
1590 >    -789,   562,  -789,  -789,  -789,  -789,  -789,  -123,  -789,  -789,
1591 >    -789,   592,  -789,  -789,  -789,  -789,  -111,  -789,  -789,  -789,
1592 >     876,  -789,  -789,  -789,  -789,  -789,  -789,  -789,  -789,  -789,
1593 >    -789,  -789,   -92,  -789,  -789,  -789,  -789,  -789,  -789,  -789,
1594 >    -789,   690,  -789,  -789,  -789,  -789,  -789,   975,  -789,  -789,
1595 >    -789,  -789,  1079,  -789,  -789,  -789,  -789,   801,  -789,  -789,
1596 >    -789,  -789,  1025,  -789,  -789,  -789,  -789,  -789,  -789,  -789,
1597 >    -789,  -789,  -789,  -789,  -789,  -789,  -789,  -789,  -789,  -789,
1598 >    -789,  -789,  -789,  -789,  -789,  -789,  -789,  -789,  -789,  -789,
1599 >    -789,  -789,  -789,  -789,  -789,  -789,  -789,  -789,  -789,  -789,
1600 >    -789,  -789,  -789,  -789,  -789,  -789,  -789,  -789,  -789,  -789,
1601 >    -789,    80,  -789,  -789,  -789,    71,  -789,  -789,  -789,  -789,
1602 >    -789,  1111,  -789,  -789,  -789,  -789,  -789,  -789,  -789,  -789,
1603 >    -789,  -789,  -789,  -789,  -789,  -789,  -789,  -789,   979,  -789,
1604 >    -789,  -789,  -789,  -789,  -789,  -789,  -789
1605   };
1606  
1607 < /* YYPGOTO[NTERM-NUM].  */
1608 < static const yytype_int16 yypgoto[] =
1607 >  /* YYDEFGOTO[NTERM-NUM].  */
1608 > static const yytype_int16 yydefgoto[] =
1609   {
1610 <    -952,  -952,  -952,  -816,  -342,  -951,  -426,  -952,  -952,   578,
1611 <    -952,  -952,  -952,  -952,   541,  -952,  -952,  -952,     5,  -952,
1612 <    -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,
1613 <    -952,  -952,  1234,  -952,  -952,  -952,  -952,  -952,  1122,  -952,
1614 <    -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,
1615 <    -952,  -952,  -952,  -952,  -952,   491,  -952,  -952,  -952,  -952,
1616 <    -952,  -952,  -952,  -952,  -952,  -952,  -176,  -952,  -952,  -952,
1617 <    -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,
1618 <    -952,  -952,  -952,  -952,  -155,  -952,  -952,  -147,  -952,  -952,
1619 <    -952,  -952,   708,  -952,  -952,  -952,  -952,  -952,  -952,  -952,
1620 <    -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,
1621 <    -952,  -952,   -80,  -952,   819,  -952,  -952,  -952,    48,  -952,
1622 <    -952,  -952,  -952,  -952,   853,  -952,  -952,  -952,  -952,  -952,
1623 <    -952,  -952,  -952,   -56,  -952,  -952,   -53,  -952,  -952,  -952,
1624 <    -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,
1625 <     802,  -952,  -952,  -952,  -952,  -952,  -952,   762,  -952,  -952,
1626 <    -952,  -952,  -952,  -119,  -952,  -952,  -952,   757,  -952,  -952,
1627 <    -952,  -952,  -120,  -952,  -952,  -952,  -952,   682,  -952,  -952,
1628 <    -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,
1629 <    -116,  -952,  -952,  -115,  -952,  -952,  -952,  -952,  -952,  -952,
1630 <    -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,   -63,
1631 <    -952,   841,  -952,  -952,  -952,  -952,  -952,  1021,  -952,  -952,
1632 <    -952,  -952,  1212,  -952,  -952,  -952,  -952,  -952,  -952,   -34,
1633 <    -952,   968,  -952,  -952,  -952,  -952,  1154,  -952,  -952,  -952,
1634 <    -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,
1635 <    -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,
1636 <    -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,
1637 <    -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,
1638 <    -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,   111,
1639 <    -952,  -952,  -952,   115,  -952,  -952,  -952,  -952,  -952,  -952,
2200 <    -952,  -952,   945,  -952,  -952,  -952,  -952,  -952,   -36,  -952,
2201 <    -952,  -952,  -952,  -952,   -32,  -952,  -952,  1249,  -952,  -952,
2202 <    -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,
2203 <    -952,  -952,  -952,  -952,  -952,  -952,  -952,  -952,  1120,  -952,
2204 <    -952,  -952,  -952,  -952,  -952,  -952
1610 >      -1,     1,    25,   839,   840,  1103,  1104,    26,   228,   229,
1611 >     230,   231,    27,   274,   275,   276,   277,   800,   801,   804,
1612 >     805,   278,   279,   280,   281,   282,   283,   284,   285,   286,
1613 >     287,   288,   289,   290,   291,   292,   293,   294,    28,    74,
1614 >      75,    76,    77,    78,    29,    61,   513,   514,   515,   516,
1615 >      30,   298,   299,   300,   301,   302,  1065,  1066,  1067,  1068,
1616 >    1069,  1241,  1312,  1313,    31,    62,   528,   529,   530,   531,
1617 >     532,   533,   534,   535,   536,   537,   538,   764,  1217,  1218,
1618 >     539,   758,  1188,  1189,    32,    51,   349,   350,   351,   352,
1619 >     353,   354,   355,   356,   357,   358,   359,   360,   361,   362,
1620 >     363,   364,   365,   366,   367,   629,  1087,  1088,    33,    59,
1621 >     499,   743,  1159,  1160,   500,   501,   502,  1163,  1005,  1006,
1622 >     503,   504,    34,    57,   477,   478,   479,   480,   481,   482,
1623 >     483,   728,  1145,  1146,   484,   485,   486,    35,    63,   544,
1624 >     545,   546,   547,   548,    36,   305,   306,   307,    37,    69,
1625 >     600,   601,   602,   603,   604,   821,  1255,  1256,    38,    66,
1626 >     584,   585,   586,   587,   811,  1236,  1237,    39,    52,   383,
1627 >     384,   385,   386,   387,   388,   389,   390,   391,   392,   393,
1628 >     652,  1116,  1117,   394,   395,   396,   397,   398,    40,    58,
1629 >     490,   491,   492,   493,    41,    53,   402,   403,   404,   405,
1630 >      42,   115,   116,   117,    43,    55,   412,   413,   414,   415,
1631 >      44,   170,   171,   172,   173,   174,   175,   176,   177,   178,
1632 >     179,   180,   181,   182,   183,   184,   185,   186,   187,   188,
1633 >     189,   190,   191,   192,   193,   194,   195,   196,   197,   198,
1634 >     199,   200,   201,   202,   203,   204,   205,   206,   207,   208,
1635 >     209,   210,   211,   212,   213,   214,   215,   216,   217,   445,
1636 >     965,   966,   218,   443,   940,   941,   219,   220,   221,    45,
1637 >      94,    95,    96,    97,    98,    99,   100,   101,   102,   103,
1638 >     104,   105,   106,   107,   108,   109,    46,   244,   245,   246,
1639 >     247,   248,   249,   250,   251,   252,   253
1640   };
1641  
1642 < /* YYTABLE[YYPACT[STATE-NUM]].  What to do in state STATE-NUM.  If
1643 <   positive, shift that token.  If negative, reduce the rule which
1644 <   number is the opposite.  If zero, do what YYDEFACT says.
1645 <   If YYTABLE_NINF, syntax error.  */
2211 < #define YYTABLE_NINF -1
2212 < static const yytype_uint16 yytable[] =
1642 >  /* YYTABLE[YYPACT[STATE-NUM]] -- What to do in state STATE-NUM.  If
1643 >     positive, shift that token.  If negative, reduce the rule whose
1644 >     number is the opposite.  If YYTABLE_NINF, syntax error.  */
1645 > static const yytype_int16 yytable[] =
1646   {
1647 <     586,   587,   734,   274,    47,    67,    48,   593,   122,    52,
1648 <     560,    54,  1231,   486,    59,   495,   359,  1224,   122,   115,
1649 <     359,  1225,  1237,  1452,   128,  1453,   527,    60,   274,    45,
1650 <      46,   129,   130,   527,   569,   131,    63,   682,    64,   684,
1651 <    1454,    68,   132,   118,  1455,   436,   285,   528,   437,   725,
1652 <     726,   133,    69,   698,   528,   134,   135,   560,   727,   728,
1653 <    1226,   706,   136,   569,  1227,   121,   137,   138,   139,   496,
1654 <     140,   127,   717,   718,   243,   720,   141,   244,  1267,  1177,
1655 <    1178,  1179,  1180,  1181,   731,   732,   286,   735,  1303,   495,
1656 <     438,   245,  1304,   439,   486,   142,   143,   246,   123,   497,
1657 <     144,   287,  1228,  1229,  1230,   498,   360,   145,   123,   281,
1658 <     360,   146,   147,   148,  1370,   284,   149,  1374,  1371,   150,
1659 <     151,  1375,   275,   288,   329,   289,    70,   290,   291,   152,
1660 <     330,   561,   331,  1376,   247,   153,   154,  1377,   155,   156,
1661 <     157,   158,   159,   496,   332,  1379,   292,   275,   440,  1380,
1662 <     802,   529,   276,   160,   803,   570,  1162,  1163,   529,   369,
1663 <     369,   451,   161,   333,   162,   163,   441,   164,   499,   487,
1664 <     165,   166,   361,   497,   167,   804,   361,   276,   561,   498,
1665 <     452,   334,   530,   337,   570,   168,   453,   805,   338,   530,
1666 <     248,   249,   250,   251,   252,   253,   254,   255,   562,   806,
1667 <     861,   488,  1232,   339,   807,  1197,  1198,   169,   340,   170,
1668 <     454,   455,  1238,   171,   341,   456,   808,   172,   173,   174,
1669 <     175,   176,   571,   809,   600,   177,   178,  1392,   810,   457,
1670 <     811,  1393,   342,  1268,   179,   343,   458,  1269,   256,   629,
1671 <     344,   630,   499,   812,   631,   562,   601,   602,   632,   345,
1672 <     487,   571,  1394,   603,  1445,   459,  1395,  1456,  1446,   563,
1673 <     346,   347,   489,   633,   634,   635,   180,   335,   181,   636,
1674 <     367,   813,   880,   257,   182,   771,   814,   778,   672,   183,
1675 <     370,   370,   488,   460,   184,   348,   434,    76,   637,   349,
1676 <     524,   461,   638,   639,   442,   853,   885,  1447,   815,    77,
1677 <     357,  1448,   350,    67,   302,   351,   563,   747,   543,   462,
1678 <     816,   352,   817,   818,   353,   371,   371,   819,   463,   464,
1679 <      78,    79,   585,   640,   354,   641,    80,   358,    81,  1053,
1680 <    1054,  1055,   604,   605,   606,   366,   378,   607,   642,    68,
1681 <     303,   379,  1450,   489,   380,   608,  1451,   372,   372,   381,
1682 <      69,  1466,   465,   466,   258,  1467,   382,  1485,   609,   610,
1683 <     643,  1486,   285,   383,   895,   896,   897,   898,   899,   384,
1684 <     385,  1468,   386,   387,   388,   611,   612,   389,   390,   391,
1685 <     820,   392,   393,   394,    82,    83,   395,   821,   259,   304,
1686 <     396,   397,   644,    84,    85,   398,   519,   399,   822,   823,
1687 <    1065,   400,   286,   613,  1469,   401,   645,   402,   824,   403,
1688 <     467,   404,  1142,   405,    86,    87,  1470,   287,   406,   646,
1689 <     407,   679,   408,   766,    70,   305,   409,   306,   307,   410,
1690 <     412,    88,    89,  1471,   414,   415,   416,   417,   418,   288,
1691 <    1472,   289,    90,   290,   291,  1473,   419,  1474,   733,   420,
1692 <     421,    91,   788,   789,   790,   791,   792,   793,   794,   422,
1693 <    1475,   423,   292,   424,   425,   426,   427,  1381,  1382,   428,
1694 <     308,   429,   309,   310,   430,   431,   128,   432,   433,   506,
1695 <     507,   508,   647,   129,   130,   509,   929,   131,   311,   510,
1696 <     511,   512,   513,  1476,   132,   648,   514,   515,  1383,   516,
1697 <     517,   951,  1194,   133,   518,   521,   522,   134,   135,  1477,
1698 <     523,   526,   576,   536,   136,   537,  1384,   538,   137,   138,
1699 <     139,   302,   140,  1385,   539,   540,   541,  1478,   141,  1479,
1700 <    1480,   542,   312,   545,   546,   547,   577,   548,    92,    93,
1701 <      94,   549,  1386,   550,   551,   552,   554,   142,   143,   355,
1702 <     555,   578,   144,   436,   556,   557,   437,   303,   579,   145,
1703 <     313,   314,   580,   146,   147,   148,   558,   581,   149,   582,
1704 <    1387,   150,   151,   583,   584,   802,  1184,   585,  1388,   803,
1705 <     599,   152,   588,   589,  1192,  1193,   590,   153,   154,   591,
1706 <     155,   156,   157,   158,   159,   592,   594,  1481,   438,   595,
1707 <     804,   439,   596,   597,   598,   160,   304,   670,   671,   674,
1708 <     675,   676,   805,   681,   161,  1482,   162,   163,   677,   164,
1709 <     683,  1389,   165,   166,   806,  1483,   167,   685,  1306,   807,
1710 <     687,   686,   688,   691,   689,   600,   690,   168,   692,   693,
1711 <    1390,   808,   305,   694,   306,   307,   695,   696,   809,   701,
1712 <     697,   699,   700,   810,   702,   811,   440,   601,   602,   169,
1713 <     703,   170,   704,   705,   603,   171,   707,   709,   812,   172,
1714 <     173,   174,   175,   176,   441,   708,   710,   177,   178,   711,
1715 <     712,   713,   714,   715,   716,   719,   179,   308,   722,   309,
1716 <     310,   721,   723,   733,   724,   729,   813,   730,   872,  1082,
1717 <     736,   814,   737,   247,   629,   311,   630,  1307,   738,   631,
1718 <     739,   742,   780,   632,   781,  1321,   782,   740,   180,   783,
1719 <     181,   743,   745,   815,   746,   749,   182,   773,   633,   634,
1720 <     635,   183,   750,   751,   636,   816,   184,   817,   818,  1308,
1721 <     784,   785,   819,   604,   605,   606,   786,   787,   607,   312,
1722 <     752,   795,   753,   637,  1309,   755,   608,   638,   639,   248,
1723 <     249,   250,   251,   252,   253,   254,   255,    76,   796,   609,
1724 <     610,   756,   757,   758,  1310,  1311,   797,   313,   314,    77,
1725 <    1312,  1313,  1314,  1315,   759,   451,   611,   612,   640,   760,
1726 <     641,   761,   762,  1316,  1322,   799,   763,   764,   800,   798,
1727 <      78,    79,   442,   642,   452,   820,    80,   256,    81,   765,
1728 <     453,   801,   821,   768,   613,   770,   775,   849,   776,   777,
1729 <     858,   850,   855,   822,   823,   643,  1323,   851,   852,   856,
1730 <     857,   859,   860,   824,   454,   455,   863,   862,   864,   456,
1731 <     865,  1324,   257,   866,   867,   868,   869,   870,   871,   873,
1732 <     874,   875,   876,   457,  1274,   525,   559,   644,   877,   879,
1733 <     458,  1325,  1326,   882,    82,    83,   887,  1327,  1328,  1329,
1734 <    1330,   645,   883,    84,    85,   916,   888,   889,   890,   459,
1735 <    1331,   891,   892,   917,   646,   953,   893,   894,     2,     3,
1736 <     902,   903,   918,     4,    86,    87,   954,   904,   905,   906,
1737 <     907,   957,   958,   908,   909,  1095,   910,   460,   911,   912,
1738 <       5,    88,    89,   913,     6,   461,   914,     7,   915,   931,
1739 <     919,   955,    90,   258,     8,   920,   921,   922,   923,   924,
1740 <     956,    91,   925,   462,   926,   927,   928,   932,   933,   934,
1741 <       9,   935,   463,   464,   936,   937,  1182,   647,   938,   939,
1742 <    1068,   940,   942,    10,    11,  1066,    12,   259,  1069,  1071,
1743 <     648,   943,   944,    13,   945,   946,   947,  1072,  1073,   948,
1744 <     949,   950,   959,   960,   961,   962,   465,   466,   963,   964,
1745 <      14,   965,   966,   967,   968,   969,   970,   971,   972,   973,
1746 <      15,   974,    16,   975,   976,   977,   978,   979,   980,   981,
1747 <     982,   983,   984,  1074,   985,   986,   987,   988,  1076,    17,
1748 <     989,   990,   991,   992,   993,  1015,  1037,  1038,    92,    93,
1749 <      94,   994,   995,   996,   997,   998,    18,   999,  1000,  1039,
1750 <    1001,  1002,  1003,  1040,   467,  1004,  1041,  1042,  1043,  1044,
1751 <    1045,  1046,  1047,  1048,  1049,  1005,  1006,  1007,  1050,  1008,
1752 <    1009,  1010,  1051,  1052,  1011,  1058,  1059,  1012,  1060,  1061,
1753 <    1062,    19,  1063,  1077,  1064,  1078,  1067,  1070,  1079,  1080,
1754 <      20,    21,  1075,  1081,  1083,    22,    23,  1016,  1017,  1018,
1755 <    1019,  1020,  1084,  1021,  1022,  1085,  1023,  1024,  1025,  1086,
1756 <    1087,  1026,  1088,  1090,  1089,  1091,  1092,  1093,  1094,  1098,
1757 <    1099,  1027,  1028,  1029,  1100,  1030,  1031,  1032,  1101,  1102,
1758 <    1033,  1103,  1104,  1034,  1420,  1421,  1422,  1423,  1424,  1105,
1759 <    1425,  1426,  1106,  1427,  1428,  1429,  1120,  1107,  1430,  1108,
1760 <    1109,  1144,  1145,  1146,  1110,  1111,  1112,  1113,  1431,  1432,
1761 <    1433,  1114,  1434,  1435,  1436,  1115,  1116,  1437,  1170,  1117,
1762 <    1438,  1118,  1119,  1172,  1174,  1183,  1121,  1122,  1123,  1125,
1763 <    1126,  1127,  1128,  1129,  1130,  1131,  1132,  1133,  1134,  1135,
1764 <    1136,  1137,  1139,  1147,  1140,  1141,  1148,  1149,  1150,  1151,
1765 <    1185,  1186,  1152,  1153,  1154,  1155,  1156,  1157,  1158,  1187,
1766 <    1159,  1160,  1161,  1166,  1167,  1168,  1188,  1169,  1189,  1190,
1767 <    1191,  1171,  1173,  1176,  1175,  1196,  1195,  1199,  1200,  1201,
1768 <    1202,  1203,  1204,  1205,  1206,  1207,  1208,  1209,  1211,  1210,
1769 <    1212,  1216,  1214,  1213,  1215,  1217,  1218,  1219,  1220,  1235,
1770 <    1221,  1236,  1241,  1242,  1243,  1244,  1245,  1246,  1247,  1263,
1771 <    1277,  1251,  1252,  1253,  1254,  1255,  1256,  1257,  1258,  1259,
1772 <    1260,  1261,  1262,  1266,  1272,  1278,  1273,  1287,  1279,  1289,
2340 <    1293,  1275,  1281,  1297,  1299,  1295,  1300,  1301,  1302,  1305,
2341 <    1280,  1282,  1283,  1284,  1285,  1286,  1288,  1290,  1319,  1291,
2342 <    1292,  1294,  1296,  1298,  1357,  1403,  1320,  1334,  1335,  1336,
2343 <    1337,  1338,  1339,  1340,  1341,  1342,  1343,  1344,  1345,  1346,
2344 <    1347,  1348,  1349,  1396,  1350,   336,  1351,  1352,  1353,  1444,
2345 <    1493,  1354,  1492,  1355,  1356,  1464,  1143,  1361,  1491,  1362,
2346 <     779,   767,   930,  1397,  1462,  1461,   881,  1487,  1488,   886,
2347 <    1463,   952,   772,   854,  1489,  1490,   368,  1458,  1373,   435,
2348 <    1372,  1460,   680,  1459,   356,     0,     0,     0,  1363,  1364,
2349 <    1365,  1366,  1367,  1368,  1369,  1398,  1399,  1400,  1401,  1402,
2350 <    1407,  1408,     0,  1409,     0,  1410,     0,     0,     0,  1411,
2351 <       0,  1412,  1413,  1414,  1415,  1416,  1417,  1418,  1419,  1441,
2352 <    1442,  1443,   520,   673,     0,     0,     0,     0,   748,     0,
1647 >     867,   868,   614,   303,   616,  1114,   618,   619,   399,    49,
1648 >      70,   296,   368,   540,   369,    50,   370,   225,    54,   494,
1649 >     399,  1085,   113,   113,   596,   708,   581,   409,   371,   709,
1650 >     510,   581,   710,  1061,    71,   296,   711,    56,   866,   409,
1651 >      60,    72,   487,    64,   372,  1051,    65,   541,  1053,  1052,
1652 >    1156,   225,  1054,  1129,    67,  1131,  1258,  1130,   468,  1132,
1653 >    1259,  1263,   119,   517,    68,  1264,   110,   120,   121,   373,
1654 >     487,   374,   400,   122,   469,   111,   495,   112,   375,   518,
1655 >     118,   123,   124,   496,   400,   497,   114,   114,   125,   376,
1656 >     470,   126,   127,   542,   596,   519,  1086,   128,   303,   222,
1657 >     673,   674,   129,   130,   304,   131,   132,   133,   681,   134,
1658 >     511,    73,   685,   377,   223,   226,   224,   690,   135,   232,
1659 >     693,   233,   136,   137,   471,   597,   510,   582,   410,   520,
1660 >     703,   704,   582,   138,  1062,  1284,   401,   378,   234,   227,
1661 >     410,   543,   717,   139,   498,   720,   721,   331,   401,   226,
1662 >     140,   295,   141,   308,   142,   411,   143,   379,   144,   145,
1663 >     309,   332,   333,   505,   521,   334,   380,   411,  1267,   254,
1664 >     488,   146,  1268,   227,    47,    48,   147,   148,   149,   472,
1665 >     150,   151,   152,  1061,   522,   153,  -127,   473,   474,   310,
1666 >    1269,  1157,  1277,   255,  1270,   597,  1278,  1115,   488,   304,
1667 >     523,  1158,   311,  1279,   559,   512,   511,  1280,   475,   312,
1668 >    -127,   154,   381,   335,   315,  1281,  1288,   524,   525,  1282,
1669 >    1289,   155,   156,   157,   158,   159,   160,   256,  1063,   316,
1670 >     336,   337,   338,   339,   340,   317,   257,   297,   341,   781,
1671 >     382,   664,   342,   313,   590,   660,   772,   598,   343,   583,
1672 >     508,   599,   745,   161,   583,   407,  1064,   823,   258,   344,
1673 >     345,   297,   259,   753,   812,   592,  1242,    79,   526,   489,
1674 >     260,   346,   670,   261,   262,   738,   540,   162,   163,   164,
1675 >     318,   165,   166,   167,  1062,   476,   588,   168,    80,    81,
1676 >     527,   734,   169,   347,    82,   466,   766,   489,  1100,  1101,
1677 >    1102,   512,   494,  1315,   319,   263,   608,  1316,    70,   235,
1678 >     541,   853,  1260,  1261,  1262,   320,   858,   598,   321,   861,
1679 >     322,   599,   264,   865,   323,   265,   266,   267,   324,    83,
1680 >      84,   594,    71,   348,   325,    85,    86,   236,   326,    72,
1681 >     327,    87,    88,    89,   468,   237,   798,   799,   328,    90,
1682 >      91,   406,   268,   802,   803,   416,   542,   238,   239,   495,
1683 >     469,   609,   240,   241,   242,   417,   496,   418,   497,   269,
1684 >     270,   271,   871,   872,    92,    93,   470,   419,  1063,   420,
1685 >     643,   421,   610,   422,   423,   605,   424,   243,   119,   517,
1686 >     425,   426,   427,   120,   121,   428,   429,   272,   273,   122,
1687 >     430,   866,   579,   431,   543,   518,  1064,   123,   124,    73,
1688 >     471,   432,   433,   434,   125,   435,   436,   126,   127,   437,
1689 >     438,   519,   439,   128,   440,   441,   442,   498,   129,   130,
1690 >     444,   131,   132,   133,   254,   134,  1075,  1076,  1077,  1078,
1691 >    1079,  1080,  1081,   446,   135,   447,   448,   449,   136,   137,
1692 >    1303,   450,   451,   452,   453,   520,   454,   455,   255,   138,
1693 >     456,   457,   458,   459,   460,   472,   461,   462,   463,   139,
1694 >     464,   465,   506,   473,   474,   507,   140,   549,   141,   550,
1695 >     142,  1304,   143,  1305,   144,   145,   613,   551,   552,   553,
1696 >     521,   554,   256,   555,   475,   556,   560,   146,  1168,   561,
1697 >     329,   257,   147,   148,   149,   562,   150,   151,   152,   563,
1698 >     522,   153,  1169,   832,   833,   834,   835,   836,   837,   838,
1699 >    1170,   564,   565,   258,   566,   606,   523,   259,  1306,   567,
1700 >     568,   569,   570,   571,  1171,   260,   572,   154,   261,   262,
1701 >     573,   574,   557,   524,   525,  1307,   575,   155,   156,   157,
1702 >     158,   159,   160,   576,  1135,   577,   578,   589,   593,   607,
1703 >     611,   612,   613,   615,   368,  1172,   369,  1173,   370,   617,
1704 >     263,   476,   620,   621,   622,  1136,   623,   624,   626,   161,
1705 >     371,   625,  1308,  1309,  1137,   627,   628,   264,   630,   631,
1706 >     265,   266,   267,  1174,   526,   666,   372,   672,   632,  1285,
1707 >     633,   634,   635,   162,   163,   164,   636,   165,   166,   167,
1708 >     645,   637,   638,   168,   639,  1138,   527,   268,   169,   640,
1709 >     641,   373,   642,   374,   675,   646,  1175,   647,  1176,   648,
1710 >     375,   649,   650,   651,   269,   270,   271,   653,  1310,   654,
1711 >     655,   376,  1311,   656,  1139,  1140,   667,  1177,   657,  1226,
1712 >     658,   659,  1141,   662,   663,   668,     2,     3,   669,   676,
1713 >       4,   677,   272,   273,   678,   377,   679,  1178,   680,   682,
1714 >       5,   683,  1179,     6,     7,   699,  1180,  1142,   684,   686,
1715 >       8,   687,   331,  1181,   688,   689,   691,   692,  1182,   378,
1716 >     694,     9,   695,  1143,    10,    11,   332,   333,   696,   697,
1717 >     334,   698,  1183,   700,   702,  1184,   705,  1185,   701,   379,
1718 >     706,  1227,   707,   712,   713,   714,   715,   716,   380,  1186,
1719 >     718,   719,    12,   722,   723,   724,  1187,    13,   747,   725,
1720 >     748,   777,   786,   783,   740,   774,    14,   943,   726,   944,
1721 >     945,   775,  1228,   727,   776,   749,   729,   730,   335,  1229,
1722 >     731,   732,   733,   736,   737,  1144,    15,    16,  1230,   741,
1723 >     742,   744,   235,   750,   381,   336,   337,   338,   339,   340,
1724 >     751,   752,   756,   341,    17,   755,   757,   342,   768,  1195,
1725 >     759,  1196,  1197,   343,  1231,   760,  1232,  1233,   782,   761,
1726 >     236,    18,   382,   762,   344,   345,   763,   765,   237,   778,
1727 >     769,  1234,   785,   779,    19,    20,   346,   770,  1235,   771,
1728 >     238,   239,   780,   920,   784,   240,   241,   242,   787,   788,
1729 >     789,  1245,   790,   791,   792,   793,    21,   794,   347,   795,
1730 >     796,   797,   806,   808,   807,   809,   814,   817,   851,    22,
1731 >     243,   815,   862,   810,   816,   818,   819,    23,   825,   852,
1732 >     820,    24,   822,   854,   855,   946,   947,   948,   826,   949,
1733 >     950,   827,   951,   952,   828,   953,   829,   954,   348,   830,
1734 >     955,   831,   841,   956,   957,   842,   958,   843,   844,   845,
1735 >     846,   959,   847,  1246,   848,   960,   961,   962,   849,   856,
1736 >     850,   857,   859,   860,   863,   963,   864,  1198,  1199,  1200,
1737 >     964,  1201,  1202,   866,  1203,  1204,   869,  1205,   877,  1206,
1738 >     870,   880,  1207,   873,  1247,  1208,  1209,   875,  1210,   876,
1739 >     878,  1248,   879,  1211,   874,   881,    79,  1212,  1213,  1214,
1740 >    1249,   921,   922,   923,   882,   924,   925,  1215,   926,   927,
1741 >     883,   928,  1216,   929,   884,   885,   930,    80,    81,   931,
1742 >     932,   886,   933,    82,   887,   888,  1250,   934,  1251,  1252,
1743 >     889,   935,   936,   937,   890,   891,   892,   893,   894,   895,
1744 >     989,   938,   896,  1253,   897,   992,   939,   898,   899,   900,
1745 >    1254,   993,   901,   902,   903,   904,   905,   906,    83,    84,
1746 >     907,   908,   909,   910,    85,    86,   911,   994,   912,   913,
1747 >      87,    88,    89,   914,   915,   916,   917,   918,    90,    91,
1748 >     995,   919,   991,   996,   998,   990,   999,  1001,   942,  1002,
1749 >     967,   968,   969,  1004,  1010,  1011,  1013,   970,  1016,   971,
1750 >     972,  1017,  1018,    92,    93,   973,   974,   975,   976,   977,
1751 >    1019,   978,   979,   980,   981,   982,  1014,   983,   984,   985,
1752 >    1020,   986,   987,   988,   997,  1000,  1022,  1024,  1007,  1003,
1753 >    1025,  1008,  1009,  1012,  1026,  1057,  1071,  1023,  1015,  1021,
1754 >    1073,  1224,  1027,  1028,  1029,  1030,  1271,  1031,  1032,  1033,
1755 >    1034,   314,  1035,  1036,  1037,  1038,  1039,  1040,  1041,  1042,
1756 >    1043,  1044,  1045,  1046,  1047,  1048,  1049,  1050,  1055,  1056,
1757 >    1283,  1059,  1243,  1058,  1060,  1070,  1223,  1074,  1082,  1072,
1758 >    1083,  1084,  1089,  1090,  1091,  1092,  1294,  1093,  1094,  1295,
1759 >    1296,  1095,  1317,   754,  1096,  1297,  1097,  1098,  1099,  1105,
1760 >    1298,  1290,  1293,  1106,   591,  1107,  1108,   746,  1272,  1109,
1761 >    1110,  1111,  1112,  1113,   735,  1118,   767,  1119,  1120,  1121,
1762 >    1122,  1123,  1124,  1125,  1126,  1127,  1128,  1133,  1292,  1134,
1763 >    1147,  1148,   824,   773,  1149,  1150,  1314,  1151,  1152,  1153,
1764 >    1161,  1299,  1291,  1154,  1155,   644,   813,  1164,  1165,  1162,
1765 >     739,  1166,  1167,  1190,  1191,  1192,  1193,  1194,  1219,  1220,
1766 >    1221,  1222,  1225,  1238,   408,   467,  1244,  1239,  1240,  1257,
1767 >    1273,  1265,   509,  1274,  1287,   330,  1275,  1276,  1286,  1300,
1768 >    1301,  1302,  1266,   671,     0,     0,     0,     0,     0,     0,
1769 >     580,     0,     0,   558,     0,     0,     0,     0,     0,     0,
1770 >       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1771 >       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1772 >       0,     0,     0,     0,     0,     0,     0,     0,     0,   661,
1773         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1774 +       0,     0,     0,     0,     0,   595,     0,     0,     0,     0,
1775         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1776 <       0,     0,     0,   544
1776 >       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1777 >       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1778 >       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1779 >       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1780 >       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1781 >       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1782 >       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1783 >       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1784 >       0,     0,     0,     0,     0,     0,     0,   665
1785   };
1786  
1787   static const yytype_int16 yycheck[] =
1788   {
1789 <     342,   343,   428,     1,   264,     1,   264,   349,     1,   264,
1790 <       1,   264,    11,     1,   264,     1,     1,   262,     1,   155,
1791 <       1,   266,    11,    10,     1,    12,     1,   264,     1,   262,
1792 <     263,     8,     9,     1,     1,    12,   264,   379,   264,   381,
1793 <      27,    37,    19,   155,    31,     1,     1,    22,     4,   199,
1794 <     200,    28,    48,   395,    22,    32,    33,     1,   199,   200,
1795 <     262,   403,    39,     1,   266,   264,    43,    44,    45,    55,
1796 <      47,   264,   414,   415,   264,   417,    53,   264,    78,   895,
1797 <     896,   897,   898,   899,   426,   427,    41,   429,   262,     1,
1798 <      46,   264,   266,    49,     1,    72,    73,   264,    91,    85,
1799 <      77,    56,  1053,  1054,  1055,    91,    91,    84,    91,   155,
1800 <      91,    88,    89,    90,   262,   264,    93,   262,   266,    96,
1801 <      97,   266,   120,    78,   264,    80,   122,    82,    83,   106,
1802 <     264,   122,   262,   262,     1,   112,   113,   266,   115,   116,
1803 <     117,   118,   119,    55,   265,   262,   101,   120,   104,   266,
1804 <       1,   126,   150,   130,     5,   122,   171,   172,   126,     1,
1805 <       1,     1,   139,   265,   141,   142,   122,   144,   154,   157,
1806 <     147,   148,   157,    85,   151,    26,   157,   150,   122,    91,
1807 <      20,   265,   157,   265,   122,   162,    26,    38,   265,   157,
1808 <      57,    58,    59,    60,    61,    62,    63,    64,   189,    50,
1809 <     542,   189,   201,   265,    55,   218,   219,   184,   265,   186,
1810 <      50,    51,   201,   190,   265,    55,    67,   194,   195,   196,
1811 <     197,   198,   189,    74,     1,   202,   203,   262,    79,    69,
1812 <      81,   266,   265,   233,   211,   265,    76,   237,   105,     1,
1813 <     265,     3,   154,    94,     6,   189,    23,    24,    10,   265,
1814 <     157,   189,   262,    30,   262,    95,   266,   244,   266,   250,
1815 <     265,   265,   250,    25,    26,    27,   243,   263,   245,    31,
1816 <     263,   122,   263,   140,   251,   263,   127,   263,   263,   256,
1817 <     122,   122,   189,   123,   261,   265,   263,     1,    50,   265,
1818 <     263,   131,    54,    55,   250,   263,   263,   262,   149,    13,
1819 <     264,   266,   265,     1,     1,   265,   250,   263,   263,   149,
1820 <     161,   265,   163,   164,   265,   157,   157,   168,   158,   159,
1821 <      34,    35,   133,    85,   265,    87,    40,   264,    42,    14,
1822 <      15,    16,   109,   110,   111,   265,   265,   114,   100,    37,
1823 <      37,   265,   262,   250,   265,   122,   266,   189,   189,   265,
1824 <      48,   262,   192,   193,   221,   266,   265,   262,   135,   136,
1825 <     122,   266,     1,   265,   175,   176,   177,   178,   179,   265,
1826 <     265,     5,   265,   265,   265,   152,   153,   265,   265,   265,
1827 <     231,   265,   265,   265,    98,    99,   265,   238,   255,    86,
1828 <     265,   265,   154,   107,   108,   265,   263,   265,   249,   250,
1829 <     742,   265,    41,   180,    38,   265,   168,   265,   259,   265,
1830 <     250,   265,   263,   265,   128,   129,    50,    56,   265,   181,
1831 <     265,   263,   265,   263,   122,   122,   265,   124,   125,   265,
1832 <     265,   145,   146,    67,   265,   265,   265,   265,   265,    78,
1833 <      74,    80,   156,    82,    83,    79,   265,    81,   133,   265,
1834 <     265,   165,   222,   223,   224,   225,   226,   227,   228,   265,
1835 <      94,   265,   101,   265,   265,   265,   265,    20,    21,   265,
1836 <     167,   265,   169,   170,   265,   265,     1,   265,   265,   262,
1837 <     265,   265,   244,     8,     9,   265,   263,    12,   185,   265,
1838 <     265,   265,   265,   127,    19,   257,   265,   265,    51,   265,
1839 <     265,   263,   928,    28,   265,   262,   265,    32,    33,   143,
1840 <     265,   264,   155,   265,    39,   265,    69,   265,    43,    44,
1841 <      45,     1,    47,    76,   265,   265,   265,   161,    53,   163,
1842 <     164,   265,   229,   262,   265,   265,   155,   265,   252,   253,
1843 <     254,   265,    95,   265,   265,   265,   265,    72,    73,   263,
1844 <     265,   155,    77,     1,   265,   265,     4,    37,   262,    84,
1845 <     257,   258,   199,    88,    89,    90,   263,   133,    93,   133,
1846 <     123,    96,    97,   199,   199,     1,   918,   133,   131,     5,
1847 <     262,   106,   133,   133,   926,   927,   199,   112,   113,   199,
1848 <     115,   116,   117,   118,   119,   133,   199,   231,    46,   199,
1849 <      26,    49,   199,   199,   199,   130,    86,   265,   265,   155,
1850 <     262,   265,    38,   199,   139,   249,   141,   142,   265,   144,
1851 <     199,   174,   147,   148,    50,   259,   151,   133,    94,    55,
1852 <     133,   155,   199,   133,   199,     1,   199,   162,   155,   199,
1853 <     193,    67,   122,   133,   124,   125,   133,   133,    74,   133,
1854 <     199,   199,   199,    79,   155,    81,   104,    23,    24,   184,
1855 <     199,   186,   133,   133,    30,   190,   133,   155,    94,   194,
1856 <     195,   196,   197,   198,   122,   133,   133,   202,   203,   133,
1857 <     199,   199,   265,   199,   265,   199,   211,   167,   199,   169,
1858 <     170,   155,   199,   133,   199,   199,   122,   199,   133,   133,
1859 <     199,   127,   199,     1,     1,   185,     3,   173,   199,     6,
1860 <     199,   265,   155,    10,   155,    94,   155,   262,   243,   155,
1861 <     245,   265,   265,   149,   265,   262,   251,   262,    25,    26,
1862 <      27,   256,   265,   265,    31,   161,   261,   163,   164,   205,
1863 <     155,   155,   168,   109,   110,   111,   155,   155,   114,   229,
1864 <     265,   155,   265,    50,   220,   265,   122,    54,    55,    57,
1865 <      58,    59,    60,    61,    62,    63,    64,     1,   155,   135,
1866 <     136,   265,   265,   265,   240,   241,   199,   257,   258,    13,
1867 <     246,   247,   248,   249,   265,     1,   152,   153,    85,   265,
1868 <      87,   265,   265,   259,   173,   155,   265,   265,   155,   262,
1869 <      34,    35,   250,   100,    20,   231,    40,   105,    42,   265,
1870 <      26,   262,   238,   265,   180,   265,   265,   262,   265,   265,
1871 <     155,   265,   199,   249,   250,   122,   205,   265,   265,   199,
1872 <     199,   199,   199,   259,    50,    51,   155,   262,   199,    55,
1873 <     155,   220,   140,   155,   155,   155,   155,   265,   155,   155,
1874 <     155,   262,   262,    69,   204,   277,   315,   154,   265,   265,
1875 <      76,   240,   241,   262,    98,    99,   262,   246,   247,   248,
1876 <     249,   168,   265,   107,   108,   265,   262,   262,   262,    95,
1877 <     259,   262,   262,   265,   181,   155,   262,   262,     0,     1,
1878 <     262,   262,   265,     5,   128,   129,   155,   262,   262,   262,
1879 <     262,   155,   155,   262,   262,   133,   262,   123,   262,   262,
1880 <      22,   145,   146,   262,    26,   131,   262,    29,   262,   262,
1881 <     265,   262,   156,   221,    36,   265,   265,   265,   265,   265,
1882 <     262,   165,   265,   149,   265,   265,   265,   265,   265,   265,
1883 <      52,   265,   158,   159,   265,   265,   133,   244,   265,   265,
1884 <     155,   265,   265,    65,    66,   199,    68,   255,   155,   199,
1885 <     257,   265,   265,    75,   265,   265,   265,   155,   199,   265,
1886 <     265,   265,   265,   262,   262,   262,   192,   193,   262,   262,
1887 <      92,   262,   262,   262,   262,   262,   262,   262,   262,   262,
1888 <     102,   262,   104,   262,   262,   262,   262,   262,   262,   262,
1889 <     262,   262,   262,   199,   262,   262,   262,   262,   199,   121,
1890 <     262,   262,   262,   262,   262,   262,   262,   262,   252,   253,
1891 <     254,   206,   207,   208,   209,   210,   138,   212,   213,   262,
1892 <     215,   216,   217,   262,   250,   220,   262,   262,   262,   262,
1893 <     262,   262,   262,   262,   262,   230,   231,   232,   262,   234,
1894 <     235,   236,   262,   262,   239,   262,   262,   242,   262,   262,
1895 <     262,   173,   262,   199,   265,   199,   265,   262,   199,   199,
1896 <     182,   183,   265,   155,   155,   187,   188,   206,   207,   208,
1897 <     209,   210,   155,   212,   213,   199,   215,   216,   217,   155,
1898 <     262,   220,   155,   155,   265,   262,   265,   155,   155,   262,
1899 <     262,   230,   231,   232,   262,   234,   235,   236,   262,   262,
1900 <     239,   262,   262,   242,   206,   207,   208,   209,   210,   262,
1901 <     212,   213,   262,   215,   216,   217,   265,   262,   220,   262,
1902 <     262,   155,   155,   155,   262,   262,   262,   262,   230,   231,
1903 <     232,   262,   234,   235,   236,   262,   262,   239,   155,   262,
1904 <     242,   262,   262,   155,   155,   133,   265,   265,   265,   265,
1905 <     265,   265,   265,   265,   265,   265,   265,   265,   265,   265,
1906 <     265,   265,   265,   262,   265,   265,   262,   262,   262,   262,
1907 <     133,   133,   262,   262,   262,   262,   262,   262,   262,   133,
1908 <     262,   262,   262,   262,   262,   262,   133,   262,   155,   133,
1909 <     133,   265,   262,   262,   265,   155,   262,   199,   155,   155,
1910 <     199,   199,   199,   155,   265,   155,   155,   155,   133,   155,
1911 <     155,   262,   199,   155,   155,   262,   262,   262,   262,   262,
1912 <     160,   262,   262,   262,   262,   262,   262,   262,   132,   160,
1913 <     199,   262,   262,   262,   262,   262,   262,   262,   262,   262,
1914 <     262,   262,   262,   262,   262,   155,   262,   155,   199,   155,
1915 <     155,   266,   265,   155,   262,   265,   262,   262,   262,   262,
1916 <     199,   199,   199,   199,   199,   199,   199,   199,   262,   199,
1917 <     199,   199,   199,   199,   132,   132,   262,   262,   262,   262,
1918 <     262,   262,   262,   262,   262,   262,   262,   262,   262,   262,
1919 <     262,   262,   262,   133,   262,    71,   262,   262,   262,  1304,
1920 <    1486,   262,  1467,   262,   262,  1395,   825,   262,  1465,   262,
1921 <     501,   468,   614,  1275,  1380,  1378,   564,  1446,  1448,   572,
2493 <    1393,   649,   491,   531,  1449,  1451,   124,  1371,  1227,   185,
2494 <    1225,  1377,   374,  1375,    95,    -1,    -1,    -1,   262,   262,
2495 <     262,   262,   262,   262,   262,   262,   262,   262,   262,   262,
2496 <     262,   262,    -1,   262,    -1,   262,    -1,    -1,    -1,   262,
2497 <      -1,   262,   262,   262,   262,   262,   262,   262,   262,   262,
2498 <     262,   262,   260,   362,    -1,    -1,    -1,    -1,   443,    -1,
1789 >     641,   642,   319,     1,   321,     8,   323,   324,     1,   235,
1790 >       1,     1,     1,     1,     3,   235,     5,     1,   235,     1,
1791 >       1,    53,     1,     1,     1,   215,     1,     1,    17,   219,
1792 >       1,     1,   215,     1,    25,     1,   219,   235,   112,     1,
1793 >     235,    32,     1,   235,    33,   233,   235,    35,   233,   237,
1794 >      49,     1,   237,   233,   235,   233,   233,   237,     1,   237,
1795 >     237,   233,     1,     1,   235,   237,   235,     6,     7,    58,
1796 >       1,    60,    65,    12,    17,   235,    58,   235,    67,    17,
1797 >     235,    20,    21,    65,    65,    67,    65,    65,    27,    78,
1798 >      33,    30,    31,    81,     1,    33,   128,    36,     1,   235,
1799 >     417,   418,    41,    42,   102,    44,    45,    46,   425,    48,
1800 >      81,   102,   429,   102,   235,    99,   235,   434,    57,   235,
1801 >     437,   235,    61,    62,    67,   102,     1,   102,   102,    67,
1802 >     447,   448,   102,    72,   102,   209,   129,   126,   235,   123,
1803 >     102,   129,   459,    82,   126,   462,   463,     1,   129,    99,
1804 >      89,   235,    91,   235,    93,   129,    95,   146,    97,    98,
1805 >     233,    15,    16,   233,   102,    19,   155,   129,   233,     1,
1806 >     129,   110,   237,   123,   233,   234,   115,   116,   117,   122,
1807 >     119,   120,   121,     1,   122,   124,   176,   130,   131,   236,
1808 >     233,   190,   233,    25,   237,   102,   237,   200,   129,   102,
1809 >     138,   200,   236,   233,   233,   176,    81,   237,   151,   236,
1810 >     176,   150,   201,    67,   236,   233,   233,   155,   156,   237,
1811 >     237,   160,   161,   162,   163,   164,   165,    59,   196,   236,
1812 >      84,    85,    86,    87,    88,   236,    68,   227,    92,   556,
1813 >     229,   234,    96,   234,   234,   234,   234,   224,   102,   224,
1814 >     234,   228,   234,   192,   224,   234,   224,   234,    90,   113,
1815 >     114,   227,    94,   234,   234,   176,   234,     1,   206,   228,
1816 >     102,   125,   234,   105,   106,   234,     1,   216,   217,   218,
1817 >     236,   220,   221,   222,   102,   228,   233,   226,    22,    23,
1818 >     228,   234,   231,   147,    28,   234,   234,   228,     9,    10,
1819 >      11,   176,     1,   233,   236,   137,   233,   237,     1,     1,
1820 >      35,   628,  1100,  1101,  1102,   236,   633,   224,   236,   636,
1821 >     236,   228,   154,   640,   236,   157,   158,   159,   236,    63,
1822 >      64,   234,    25,   187,   236,    69,    70,    29,   236,    32,
1823 >     236,    75,    76,    77,     1,    37,   204,   205,   236,    83,
1824 >      84,   236,   184,   204,   205,   236,    81,    49,    50,    58,
1825 >      17,   112,    54,    55,    56,   236,    65,   236,    67,   201,
1826 >     202,   203,   180,   181,   108,   109,    33,   236,   196,   236,
1827 >     234,   236,   112,   236,   236,   127,   236,    79,     1,     1,
1828 >     236,   236,   236,     6,     7,   236,   236,   229,   230,    12,
1829 >     236,   112,   234,   236,   129,    17,   224,    20,    21,   102,
1830 >      67,   236,   236,   236,    27,   236,   236,    30,    31,   236,
1831 >     236,    33,   236,    36,   236,   236,   236,   126,    41,    42,
1832 >     236,    44,    45,    46,     1,    48,   832,   833,   834,   835,
1833 >     836,   837,   838,   236,    57,   236,   236,   236,    61,    62,
1834 >      40,   236,   236,   236,   236,    67,   236,   236,    25,    72,
1835 >     236,   236,   236,   236,   236,   122,   236,   236,   236,    82,
1836 >     236,   236,   236,   130,   131,   236,    89,   236,    91,   236,
1837 >      93,    71,    95,    73,    97,    98,   112,   236,   236,   236,
1838 >     102,   236,    59,   236,   151,   236,   236,   110,     4,   236,
1839 >     234,    68,   115,   116,   117,   236,   119,   120,   121,   236,
1840 >     122,   124,    18,   139,   140,   141,   142,   143,   144,   145,
1841 >      26,   236,   236,    90,   236,   127,   138,    94,   118,   236,
1842 >     236,   236,   236,   236,    40,   102,   236,   150,   105,   106,
1843 >     236,   236,   234,   155,   156,   135,   236,   160,   161,   162,
1844 >     163,   164,   165,   236,    13,   236,   236,   236,   236,   127,
1845 >     215,   112,   112,   112,     1,    71,     3,    73,     5,   112,
1846 >     137,   228,   112,   112,   215,    34,   215,   233,   236,   192,
1847 >      17,   233,   172,   173,    43,   236,   236,   154,   236,   236,
1848 >     157,   158,   159,    99,   206,   127,    33,   215,   236,  1240,
1849 >     236,   236,   236,   216,   217,   218,   236,   220,   221,   222,
1850 >     233,   236,   236,   226,   236,    74,   228,   184,   231,   236,
1851 >     236,    58,   236,    60,   215,   236,   132,   236,   134,   236,
1852 >      67,   236,   236,   236,   201,   202,   203,   236,   228,   236,
1853 >     236,    78,   232,   236,   103,   104,   233,   153,   236,    73,
1854 >     236,   236,   111,   236,   236,   236,     0,     1,   236,   112,
1855 >       4,   215,   229,   230,   112,   102,   127,   173,   215,   215,
1856 >      14,   112,   178,    17,    18,   236,   182,   136,   112,   112,
1857 >      24,   215,     1,   189,   215,   215,   112,   112,   194,   126,
1858 >     112,    35,   112,   152,    38,    39,    15,    16,   112,   112,
1859 >      19,   215,   208,   215,   215,   211,   215,   213,   236,   146,
1860 >     215,   135,   215,   215,   215,   215,   127,   112,   155,   225,
1861 >     215,   215,    66,   215,   215,   233,   232,    71,   127,   233,
1862 >     127,   127,   112,   127,   233,   215,    80,    49,   236,    51,
1863 >      52,   215,   166,   236,   215,   233,   236,   236,    67,   173,
1864 >     236,   236,   236,   236,   236,   214,   100,   101,   182,   236,
1865 >     236,   236,     1,   233,   201,    84,    85,    86,    87,    88,
1866 >     236,   236,   236,    92,   118,   233,   236,    96,   233,    49,
1867 >     236,    51,    52,   102,   208,   236,   210,   211,   233,   236,
1868 >      29,   135,   229,   236,   113,   114,   236,   236,    37,   215,
1869 >     236,   225,   127,   215,   148,   149,   125,   236,   232,   236,
1870 >      49,    50,   215,    49,   215,    54,    55,    56,   112,   127,
1871 >     127,    73,   127,   127,   127,   127,   170,   127,   147,   127,
1872 >     112,   127,   127,   233,   127,   233,   215,   127,   112,   183,
1873 >      79,   233,   127,   236,   235,   233,   233,   191,   233,   112,
1874 >     236,   195,   236,   236,   112,   167,   168,   169,   233,   171,
1875 >     172,   233,   174,   175,   233,   177,   233,   179,   187,   233,
1876 >     182,   233,   233,   185,   186,   233,   188,   233,   233,   233,
1877 >     233,   193,   233,   135,   233,   197,   198,   199,   233,   112,
1878 >     233,   112,   112,   112,   112,   207,   112,   167,   168,   169,
1879 >     212,   171,   172,   112,   174,   175,   233,   177,   236,   179,
1880 >     127,   112,   182,   127,   166,   185,   186,   127,   188,   127,
1881 >     127,   173,   127,   193,   215,   127,     1,   197,   198,   199,
1882 >     182,   167,   168,   169,   127,   171,   172,   207,   174,   175,
1883 >     127,   177,   212,   179,   127,   233,   182,    22,    23,   185,
1884 >     186,   127,   188,    28,   127,   233,   208,   193,   210,   211,
1885 >     233,   197,   198,   199,   127,   127,   233,   233,   233,   233,
1886 >     127,   207,   233,   225,   233,   127,   212,   233,   233,   233,
1887 >     232,   112,   233,   233,   233,   233,   233,   233,    63,    64,
1888 >     233,   233,   233,   233,    69,    70,   233,   127,   233,   233,
1889 >      75,    76,    77,   233,   233,   233,   233,   233,    83,    84,
1890 >     127,   233,   236,   127,   127,   215,   127,   127,   233,   127,
1891 >     233,   233,   233,   112,   127,   127,   127,   233,   127,   233,
1892 >     233,   127,   127,   108,   109,   233,   233,   233,   233,   233,
1893 >     127,   233,   233,   233,   233,   233,   215,   233,   233,   233,
1894 >     215,   233,   233,   233,   233,   233,   127,   127,   233,   236,
1895 >     127,   233,   233,   233,   127,   127,   127,   233,   236,   236,
1896 >     127,  1054,   233,   233,   233,   233,   112,   233,   233,   233,
1897 >     233,    74,   233,   233,   233,   233,   233,   233,   233,   233,
1898 >     233,   233,   233,   233,   233,   233,   233,   233,   233,   233,
1899 >     127,   233,  1065,   236,   233,   233,  1052,   233,   233,   236,
1900 >     233,   233,   233,   233,   233,   233,   133,   233,   233,   133,
1901 >     133,   233,  1316,   513,   233,  1278,   233,   233,   233,   233,
1902 >    1280,  1259,  1270,   233,   298,   233,   233,   500,  1162,   233,
1903 >     233,   233,   233,   233,   477,   233,   528,   233,   233,   233,
1904 >     233,   233,   233,   233,   233,   233,   233,   233,  1268,   233,
1905 >     233,   233,   600,   544,   233,   233,  1289,   233,   233,   233,
1906 >     223,  1282,  1264,   233,   233,   349,   584,   233,   233,   237,
1907 >     490,   233,   233,   233,   233,   233,   233,   233,   233,   233,
1908 >     233,   233,   233,   233,   115,   170,   233,   236,   236,   233,
1909 >     233,  1130,   228,   238,   233,    94,   238,   238,   236,   233,
1910 >     233,   233,  1132,   412,    -1,    -1,    -1,    -1,    -1,    -1,
1911 >     274,    -1,    -1,   244,    -1,    -1,    -1,    -1,    -1,    -1,
1912 >      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1913 >      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1914 >      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   383,
1915 >      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1916 >      -1,    -1,    -1,    -1,    -1,   305,    -1,    -1,    -1,    -1,
1917 >      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1918 >      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1919 >      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1920 >      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1921 >      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1922        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1923        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1924 <      -1,    -1,    -1,   293
1924 >      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1925 >      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1926 >      -1,    -1,    -1,    -1,    -1,    -1,    -1,   402
1927   };
1928  
1929 < /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
1930 <   symbol of state STATE-NUM.  */
1929 >  /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
1930 >     symbol of state STATE-NUM.  */
1931   static const yytype_uint16 yystos[] =
1932   {
1933 <       0,   268,     0,     1,     5,    22,    26,    29,    36,    52,
1934 <      65,    66,    68,    75,    92,   102,   104,   121,   138,   173,
1935 <     182,   183,   187,   188,   269,   274,   279,   297,   303,   318,
1936 <     355,   374,   388,   414,   421,   431,   440,   471,   481,   487,
1937 <     491,   501,   566,   582,   603,   262,   263,   264,   264,   356,
1938 <     441,   482,   264,   492,   264,   567,   389,   472,   375,   264,
1939 <     264,   319,   415,   264,   264,   422,   432,     1,    37,    48,
1940 <     122,   298,   299,   300,   301,   302,     1,    13,    34,    35,
1941 <      40,    42,    98,    99,   107,   108,   128,   129,   145,   146,
1942 <     156,   165,   252,   253,   254,   583,   584,   585,   586,   587,
1943 <     588,   589,   590,   591,   592,   593,   594,   595,   596,   597,
1944 <     598,   599,   600,   601,   602,   155,   357,   361,   155,   442,
1945 <     446,   264,     1,    91,   488,   489,   490,   264,     1,     8,
1946 <       9,    12,    19,    28,    32,    33,    39,    43,    44,    45,
1947 <      47,    53,    72,    73,    77,    84,    88,    89,    90,    93,
1948 <      96,    97,   106,   112,   113,   115,   116,   117,   118,   119,
1949 <     130,   139,   141,   142,   144,   147,   148,   151,   162,   184,
1950 <     186,   190,   194,   195,   196,   197,   198,   202,   203,   211,
1951 <     243,   245,   251,   256,   261,   502,   503,   504,   505,   506,
1952 <     507,   508,   509,   510,   511,   512,   513,   514,   515,   516,
1953 <     517,   518,   519,   520,   521,   522,   523,   524,   525,   526,
1954 <     527,   528,   529,   530,   531,   532,   533,   534,   535,   536,
1955 <     537,   538,   539,   540,   541,   542,   543,   544,   545,   546,
1956 <     547,   548,   549,   550,   551,   552,   553,   557,   561,   562,
1957 <     563,   564,   565,   264,   264,   264,   264,     1,    57,    58,
1958 <      59,    60,    61,    62,    63,    64,   105,   140,   221,   255,
1959 <     304,   305,   306,   307,   308,   309,   310,   311,   312,   313,
1960 <     314,   315,   316,   317,     1,   120,   150,   275,   276,   277,
1961 <     278,   155,   320,   324,   264,     1,    41,    56,    78,    80,
1962 <      82,    83,   101,   604,   605,   606,   607,   608,   609,   610,
1963 <     611,   612,     1,    37,    86,   122,   124,   125,   167,   169,
1964 <     170,   185,   229,   257,   258,   280,   281,   282,   286,   287,
1965 <     288,   289,   290,   291,   292,   293,   294,   295,   296,   264,
1966 <     264,   262,   265,   265,   265,   263,   299,   265,   265,   265,
1967 <     265,   265,   265,   265,   265,   265,   265,   265,   265,   265,
1968 <     265,   265,   265,   265,   265,   263,   584,   264,   264,     1,
1969 <      91,   157,   483,   484,   485,   486,   265,   263,   489,     1,
1970 <     122,   157,   189,   493,   497,   498,   499,   500,   265,   265,
1971 <     265,   265,   265,   265,   265,   265,   265,   265,   265,   265,
1972 <     265,   265,   265,   265,   265,   265,   265,   265,   265,   265,
1973 <     265,   265,   265,   265,   265,   265,   265,   265,   265,   265,
1974 <     265,   558,   265,   554,   265,   265,   265,   265,   265,   265,
1975 <     265,   265,   265,   265,   265,   265,   265,   265,   265,   265,
1976 <     265,   265,   265,   265,   263,   503,     1,     4,    46,    49,
1977 <     104,   122,   250,   568,   569,   570,   571,   572,   576,   577,
1978 <     578,     1,    20,    26,    50,    51,    55,    69,    76,    95,
1979 <     123,   131,   149,   158,   159,   192,   193,   250,   390,   391,
1980 <     392,   393,   394,   395,   396,   397,   404,   405,   406,   407,
1981 <     408,   409,   410,   411,   412,   413,     1,   157,   189,   250,
1982 <     473,   477,   478,   479,   480,     1,    55,    85,    91,   154,
1983 <     376,   380,   381,   382,   386,   387,   262,   265,   265,   265,
1984 <     265,   265,   265,   265,   265,   265,   265,   265,   265,   263,
1985 <     305,   262,   265,   265,   263,   276,   264,     1,    22,   126,
1986 <     157,   416,   417,   418,   419,   420,   265,   265,   265,   265,
1987 <     265,   265,   265,   263,   605,   262,   265,   265,   265,   265,
1988 <     265,   265,   265,   283,   265,   265,   265,   265,   263,   281,
1989 <       1,   122,   189,   250,   423,   424,   425,   426,   427,     1,
1990 <     122,   189,   433,   434,   435,   436,   155,   155,   155,   262,
1991 <     199,   133,   133,   199,   199,   133,   271,   271,   133,   133,
1992 <     199,   199,   133,   271,   199,   199,   199,   199,   199,   262,
1993 <       1,    23,    24,    30,   109,   110,   111,   114,   122,   135,
1994 <     136,   152,   153,   180,   358,   359,   360,   362,   363,   364,
1995 <     365,   366,   367,   368,   369,   370,   371,   372,   373,     1,
1996 <       3,     6,    10,    25,    26,    27,    31,    50,    54,    55,
1997 <      85,    87,   100,   122,   154,   168,   181,   244,   257,   443,
1998 <     444,   445,   447,   448,   449,   450,   451,   452,   453,   454,
1999 <     461,   462,   463,   464,   465,   466,   467,   468,   469,   470,
2000 <     265,   265,   263,   484,   155,   262,   265,   265,   494,   263,
2001 <     498,   199,   271,   199,   271,   133,   155,   133,   199,   199,
2002 <     199,   133,   155,   199,   133,   133,   133,   199,   271,   199,
2003 <     199,   133,   155,   199,   133,   133,   271,   133,   133,   155,
2004 <     133,   133,   199,   199,   265,   199,   265,   271,   271,   199,
2005 <     271,   155,   199,   199,   199,   199,   200,   199,   200,   199,
2006 <     199,   271,   271,   133,   273,   271,   199,   199,   199,   199,
2007 <     262,   579,   265,   265,   573,   265,   265,   263,   569,   262,
2008 <     265,   265,   265,   265,   398,   265,   265,   265,   265,   265,
2009 <     265,   265,   265,   265,   265,   265,   263,   391,   265,   474,
2010 <     265,   263,   478,   262,   377,   265,   265,   265,   263,   381,
2011 <     155,   155,   155,   155,   155,   155,   155,   155,   222,   223,
2012 <     224,   225,   226,   227,   228,   155,   155,   199,   262,   155,
2013 <     155,   262,     1,     5,    26,    38,    50,    55,    67,    74,
2014 <      79,    81,    94,   122,   127,   149,   161,   163,   164,   168,
2015 <     231,   238,   249,   250,   259,   321,   322,   323,   325,   326,
2016 <     327,   328,   329,   330,   334,   335,   336,   337,   338,   339,
2017 <     340,   341,   342,   343,   344,   345,   346,   347,   348,   262,
2018 <     265,   265,   265,   263,   417,   199,   199,   199,   155,   199,
2019 <     199,   271,   262,   155,   199,   155,   155,   155,   155,   155,
2020 <     265,   155,   133,   155,   155,   262,   262,   265,   428,   265,
2021 <     263,   424,   262,   265,   437,   263,   434,   262,   262,   262,
2022 <     262,   262,   262,   262,   262,   175,   176,   177,   178,   179,
2023 <     270,   271,   262,   262,   262,   262,   262,   262,   262,   262,
2024 <     262,   262,   262,   262,   262,   262,   265,   265,   265,   265,
2025 <     265,   265,   265,   265,   265,   265,   265,   265,   265,   263,
2026 <     359,   262,   265,   265,   265,   265,   265,   265,   265,   265,
2027 <     265,   455,   265,   265,   265,   265,   265,   265,   265,   265,
2028 <     265,   263,   444,   155,   155,   262,   262,   155,   155,   265,
2029 <     262,   262,   262,   262,   262,   262,   262,   262,   262,   262,
2030 <     262,   262,   262,   262,   262,   262,   262,   262,   262,   262,
2031 <     262,   262,   262,   262,   262,   262,   262,   262,   262,   262,
2032 <     262,   262,   262,   262,   206,   207,   208,   209,   210,   212,
2033 <     213,   215,   216,   217,   220,   230,   231,   232,   234,   235,
2034 <     236,   239,   242,   559,   560,   262,   206,   207,   208,   209,
2035 <     210,   212,   213,   215,   216,   217,   220,   230,   231,   232,
2036 <     234,   235,   236,   239,   242,   555,   556,   262,   262,   262,
2037 <     262,   262,   262,   262,   262,   262,   262,   262,   262,   262,
2038 <     262,   262,   262,    14,    15,    16,   272,   273,   262,   262,
2039 <     262,   262,   262,   262,   265,   271,   199,   265,   155,   155,
2040 <     262,   199,   155,   199,   199,   265,   199,   199,   199,   199,
2041 <     199,   155,   133,   155,   155,   199,   155,   262,   155,   265,
2042 <     155,   262,   265,   155,   155,   133,   384,   385,   262,   262,
2043 <     262,   262,   262,   262,   262,   262,   262,   262,   262,   262,
2044 <     262,   262,   262,   262,   262,   262,   262,   262,   262,   262,
2045 <     265,   265,   265,   265,   349,   265,   265,   265,   265,   265,
2046 <     265,   265,   265,   265,   265,   265,   265,   265,   331,   265,
2047 <     265,   265,   263,   322,   155,   155,   155,   262,   262,   262,
2048 <     262,   262,   262,   262,   262,   262,   262,   262,   262,   262,
2049 <     262,   262,   171,   172,   284,   285,   262,   262,   262,   262,
2050 <     155,   265,   155,   262,   155,   265,   262,   270,   270,   270,
2051 <     270,   270,   133,   133,   271,   133,   133,   133,   133,   155,
2052 <     133,   133,   271,   271,   273,   262,   155,   218,   219,   199,
2053 <     155,   155,   199,   199,   199,   155,   265,   155,   155,   155,
2054 <     155,   133,   155,   155,   199,   155,   262,   262,   262,   262,
2055 <     262,   160,   495,   496,   262,   266,   262,   266,   272,   272,
2056 <     272,    11,   201,   580,   581,   262,   262,    11,   201,   574,
2057 <     575,   262,   262,   262,   262,   262,   262,   132,   399,   400,
2058 <     402,   262,   262,   262,   262,   262,   262,   262,   262,   262,
2059 <     262,   262,   262,   160,   475,   476,   262,    78,   233,   237,
2060 <     378,   379,   262,   262,   204,   266,   383,   199,   155,   199,
2061 <     199,   265,   199,   199,   199,   199,   199,   155,   199,   155,
2062 <     199,   199,   199,   155,   199,   265,   199,   155,   199,   262,
2063 <     262,   262,   262,   262,   266,   262,    94,   173,   205,   220,
2064 <     240,   241,   246,   247,   248,   249,   259,   429,   430,   262,
2640 <     262,    94,   173,   205,   220,   240,   241,   246,   247,   248,
2641 <     249,   259,   438,   439,   262,   262,   262,   262,   262,   262,
2642 <     262,   262,   262,   262,   262,   262,   262,   262,   262,   262,
2643 <     262,   262,   262,   262,   262,   262,   262,   132,   456,   457,
2644 <     459,   262,   262,   262,   262,   262,   262,   262,   262,   262,
2645 <     262,   266,   560,   556,   262,   266,   262,   266,   401,   262,
2646 <     266,    20,    21,    51,    69,    76,    95,   123,   131,   174,
2647 <     193,   403,   262,   266,   262,   266,   133,   385,   262,   262,
2648 <     262,   262,   262,   132,   350,   351,   353,   262,   262,   262,
2649 <     262,   262,   262,   262,   262,   262,   262,   262,   262,   262,
2650 <     206,   207,   208,   209,   210,   212,   213,   215,   216,   217,
2651 <     220,   230,   231,   232,   234,   235,   236,   239,   242,   332,
2652 <     333,   262,   262,   262,   285,   262,   266,   262,   266,   458,
2653 <     262,   266,    10,    12,    27,    31,   244,   460,   496,   581,
2654 <     575,   403,   400,   476,   379,   352,   262,   266,     5,    38,
2655 <      50,    67,    74,    79,    81,    94,   127,   143,   161,   163,
2656 <     164,   231,   249,   259,   354,   262,   266,   430,   439,   460,
2657 <     457,   354,   351,   333
1933 >       0,   240,     0,     1,     4,    14,    17,    18,    24,    35,
1934 >      38,    39,    66,    71,    80,   100,   101,   118,   135,   148,
1935 >     149,   170,   183,   191,   195,   241,   246,   251,   277,   283,
1936 >     289,   303,   323,   347,   361,   376,   383,   387,   397,   406,
1937 >     427,   433,   439,   443,   449,   508,   525,   233,   234,   235,
1938 >     235,   324,   407,   434,   235,   444,   235,   362,   428,   348,
1939 >     235,   284,   304,   377,   235,   235,   398,   235,   235,   388,
1940 >       1,    25,    32,   102,   278,   279,   280,   281,   282,     1,
1941 >      22,    23,    28,    63,    64,    69,    70,    75,    76,    77,
1942 >      83,    84,   108,   109,   509,   510,   511,   512,   513,   514,
1943 >     515,   516,   517,   518,   519,   520,   521,   522,   523,   524,
1944 >     235,   235,   235,     1,    65,   440,   441,   442,   235,     1,
1945 >       6,     7,    12,    20,    21,    27,    30,    31,    36,    41,
1946 >      42,    44,    45,    46,    48,    57,    61,    62,    72,    82,
1947 >      89,    91,    93,    95,    97,    98,   110,   115,   116,   117,
1948 >     119,   120,   121,   124,   150,   160,   161,   162,   163,   164,
1949 >     165,   192,   216,   217,   218,   220,   221,   222,   226,   231,
1950 >     450,   451,   452,   453,   454,   455,   456,   457,   458,   459,
1951 >     460,   461,   462,   463,   464,   465,   466,   467,   468,   469,
1952 >     470,   471,   472,   473,   474,   475,   476,   477,   478,   479,
1953 >     480,   481,   482,   483,   484,   485,   486,   487,   488,   489,
1954 >     490,   491,   492,   493,   494,   495,   496,   497,   501,   505,
1955 >     506,   507,   235,   235,   235,     1,    99,   123,   247,   248,
1956 >     249,   250,   235,   235,   235,     1,    29,    37,    49,    50,
1957 >      54,    55,    56,    79,   526,   527,   528,   529,   530,   531,
1958 >     532,   533,   534,   535,     1,    25,    59,    68,    90,    94,
1959 >     102,   105,   106,   137,   154,   157,   158,   159,   184,   201,
1960 >     202,   203,   229,   230,   252,   253,   254,   255,   260,   261,
1961 >     262,   263,   264,   265,   266,   267,   268,   269,   270,   271,
1962 >     272,   273,   274,   275,   276,   235,     1,   227,   290,   291,
1963 >     292,   293,   294,     1,   102,   384,   385,   386,   235,   233,
1964 >     236,   236,   236,   234,   279,   236,   236,   236,   236,   236,
1965 >     236,   236,   236,   236,   236,   236,   236,   236,   236,   234,
1966 >     510,     1,    15,    16,    19,    67,    84,    85,    86,    87,
1967 >      88,    92,    96,   102,   113,   114,   125,   147,   187,   325,
1968 >     326,   327,   328,   329,   330,   331,   332,   333,   334,   335,
1969 >     336,   337,   338,   339,   340,   341,   342,   343,     1,     3,
1970 >       5,    17,    33,    58,    60,    67,    78,   102,   126,   146,
1971 >     155,   201,   229,   408,   409,   410,   411,   412,   413,   414,
1972 >     415,   416,   417,   418,   422,   423,   424,   425,   426,     1,
1973 >      65,   129,   435,   436,   437,   438,   236,   234,   441,     1,
1974 >     102,   129,   445,   446,   447,   448,   236,   236,   236,   236,
1975 >     236,   236,   236,   236,   236,   236,   236,   236,   236,   236,
1976 >     236,   236,   236,   236,   236,   236,   236,   236,   236,   236,
1977 >     236,   236,   236,   502,   236,   498,   236,   236,   236,   236,
1978 >     236,   236,   236,   236,   236,   236,   236,   236,   236,   236,
1979 >     236,   236,   236,   236,   236,   236,   234,   451,     1,    17,
1980 >      33,    67,   122,   130,   131,   151,   228,   363,   364,   365,
1981 >     366,   367,   368,   369,   373,   374,   375,     1,   129,   228,
1982 >     429,   430,   431,   432,     1,    58,    65,    67,   126,   349,
1983 >     353,   354,   355,   359,   360,   233,   236,   236,   234,   248,
1984 >       1,    81,   176,   285,   286,   287,   288,     1,    17,    33,
1985 >      67,   102,   122,   138,   155,   156,   206,   228,   305,   306,
1986 >     307,   308,   309,   310,   311,   312,   313,   314,   315,   319,
1987 >       1,    35,    81,   129,   378,   379,   380,   381,   382,   236,
1988 >     236,   236,   236,   236,   236,   236,   236,   234,   527,   233,
1989 >     236,   236,   236,   236,   236,   236,   236,   236,   236,   236,
1990 >     236,   236,   236,   236,   236,   236,   236,   236,   236,   234,
1991 >     253,     1,   102,   224,   399,   400,   401,   402,   233,   236,
1992 >     234,   291,   176,   236,   234,   385,     1,   102,   224,   228,
1993 >     389,   390,   391,   392,   393,   127,   127,   127,   233,   112,
1994 >     112,   215,   112,   112,   243,   112,   243,   112,   243,   243,
1995 >     112,   112,   215,   215,   233,   233,   236,   236,   236,   344,
1996 >     236,   236,   236,   236,   236,   236,   236,   236,   236,   236,
1997 >     236,   236,   236,   234,   326,   233,   236,   236,   236,   236,
1998 >     236,   236,   419,   236,   236,   236,   236,   236,   236,   236,
1999 >     234,   409,   236,   236,   234,   436,   127,   233,   236,   236,
2000 >     234,   446,   215,   243,   243,   215,   112,   215,   112,   127,
2001 >     215,   243,   215,   112,   112,   243,   112,   215,   215,   215,
2002 >     243,   112,   112,   243,   112,   112,   112,   112,   215,   236,
2003 >     215,   236,   215,   243,   243,   215,   215,   215,   215,   219,
2004 >     215,   219,   215,   215,   215,   127,   112,   243,   215,   215,
2005 >     243,   243,   215,   215,   233,   233,   236,   236,   370,   236,
2006 >     236,   236,   236,   236,   234,   364,   236,   236,   234,   430,
2007 >     233,   236,   236,   350,   236,   234,   354,   127,   127,   233,
2008 >     233,   236,   236,   234,   286,   233,   236,   236,   320,   236,
2009 >     236,   236,   236,   236,   316,   236,   234,   306,   233,   236,
2010 >     236,   236,   234,   379,   215,   215,   215,   127,   215,   215,
2011 >     215,   243,   233,   127,   215,   127,   112,   112,   127,   127,
2012 >     127,   127,   127,   127,   127,   127,   112,   127,   204,   205,
2013 >     256,   257,   204,   205,   258,   259,   127,   127,   233,   233,
2014 >     236,   403,   234,   400,   215,   233,   235,   127,   233,   233,
2015 >     236,   394,   236,   234,   390,   233,   233,   233,   233,   233,
2016 >     233,   233,   139,   140,   141,   142,   143,   144,   145,   242,
2017 >     243,   233,   233,   233,   233,   233,   233,   233,   233,   233,
2018 >     233,   112,   112,   243,   236,   112,   112,   112,   243,   112,
2019 >     112,   243,   127,   112,   112,   243,   112,   245,   245,   233,
2020 >     127,   180,   181,   127,   215,   127,   127,   236,   127,   127,
2021 >     112,   127,   127,   127,   127,   233,   127,   127,   233,   233,
2022 >     127,   127,   233,   233,   233,   233,   233,   233,   233,   233,
2023 >     233,   233,   233,   233,   233,   233,   233,   233,   233,   233,
2024 >     233,   233,   233,   233,   233,   233,   233,   233,   233,   233,
2025 >      49,   167,   168,   169,   171,   172,   174,   175,   177,   179,
2026 >     182,   185,   186,   188,   193,   197,   198,   199,   207,   212,
2027 >     503,   504,   233,    49,    51,    52,   167,   168,   169,   171,
2028 >     172,   174,   175,   177,   179,   182,   185,   186,   188,   193,
2029 >     197,   198,   199,   207,   212,   499,   500,   233,   233,   233,
2030 >     233,   233,   233,   233,   233,   233,   233,   233,   233,   233,
2031 >     233,   233,   233,   233,   233,   233,   233,   233,   233,   127,
2032 >     215,   236,   127,   112,   127,   127,   127,   233,   127,   127,
2033 >     233,   127,   127,   236,   112,   357,   358,   233,   233,   233,
2034 >     127,   127,   233,   127,   215,   236,   127,   127,   127,   127,
2035 >     215,   236,   127,   233,   127,   127,   127,   233,   233,   233,
2036 >     233,   233,   233,   233,   233,   233,   233,   233,   233,   233,
2037 >     233,   233,   233,   233,   233,   233,   233,   233,   233,   233,
2038 >     233,   233,   237,   233,   237,   233,   233,   127,   236,   233,
2039 >     233,     1,   102,   196,   224,   295,   296,   297,   298,   299,
2040 >     233,   127,   236,   127,   233,   242,   242,   242,   242,   242,
2041 >     242,   242,   233,   233,   233,    53,   128,   345,   346,   233,
2042 >     233,   233,   233,   233,   233,   233,   233,   233,   233,   233,
2043 >       9,    10,    11,   244,   245,   233,   233,   233,   233,   233,
2044 >     233,   233,   233,   233,     8,   200,   420,   421,   233,   233,
2045 >     233,   233,   233,   233,   233,   233,   233,   233,   233,   233,
2046 >     237,   233,   237,   233,   233,    13,    34,    43,    74,   103,
2047 >     104,   111,   136,   152,   214,   371,   372,   233,   233,   233,
2048 >     233,   233,   233,   233,   233,   233,    49,   190,   200,   351,
2049 >     352,   223,   237,   356,   233,   233,   233,   233,     4,    18,
2050 >      26,    40,    71,    73,    99,   132,   134,   153,   173,   178,
2051 >     182,   189,   194,   208,   211,   213,   225,   232,   321,   322,
2052 >     233,   233,   233,   233,   233,    49,    51,    52,   167,   168,
2053 >     169,   171,   172,   174,   175,   177,   179,   182,   185,   186,
2054 >     188,   193,   197,   198,   199,   207,   212,   317,   318,   233,
2055 >     233,   233,   233,   257,   259,   233,    73,   135,   166,   173,
2056 >     182,   208,   210,   211,   225,   232,   404,   405,   233,   236,
2057 >     236,   300,   234,   296,   233,    73,   135,   166,   173,   182,
2058 >     208,   210,   211,   225,   232,   395,   396,   233,   233,   237,
2059 >     244,   244,   244,   233,   237,   504,   500,   233,   237,   233,
2060 >     237,   112,   358,   233,   238,   238,   238,   233,   237,   233,
2061 >     237,   233,   237,   127,   209,   245,   236,   233,   233,   237,
2062 >     346,   421,   372,   352,   133,   133,   133,   322,   318,   405,
2063 >     233,   233,   233,    40,    71,    73,   118,   135,   172,   173,
2064 >     228,   232,   301,   302,   396,   233,   237,   302
2065   };
2066  
2067 < #define yyerrok         (yyerrstatus = 0)
2068 < #define yyclearin       (yychar = YYEMPTY)
2069 < #define YYEMPTY         (-2)
2070 < #define YYEOF           0
2067 >  /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives.  */
2068 > static const yytype_uint16 yyr1[] =
2069 > {
2070 >       0,   239,   240,   240,   241,   241,   241,   241,   241,   241,
2071 >     241,   241,   241,   241,   241,   241,   241,   241,   241,   241,
2072 >     241,   241,   241,   241,   241,   241,   241,   242,   242,   243,
2073 >     243,   243,   243,   243,   243,   243,   243,   244,   244,   245,
2074 >     245,   245,   245,   246,   247,   247,   248,   248,   248,   249,
2075 >     250,   251,   252,   252,   253,   253,   253,   253,   253,   253,
2076 >     253,   253,   253,   253,   253,   253,   253,   253,   253,   253,
2077 >     253,   253,   253,   253,   254,   255,   256,   256,   257,   257,
2078 >     258,   258,   259,   259,   260,   261,   262,   263,   264,   265,
2079 >     266,   267,   268,   269,   270,   271,   272,   273,   274,   275,
2080 >     276,   277,   278,   278,   279,   279,   279,   279,   280,   281,
2081 >     282,   284,   283,   285,   285,   286,   286,   286,   287,   288,
2082 >     289,   290,   290,   291,   291,   291,   292,   294,   293,   295,
2083 >     295,   296,   296,   296,   296,   297,   298,   298,   300,   299,
2084 >     301,   301,   302,   302,   302,   302,   302,   302,   302,   302,
2085 >     302,   304,   303,   305,   305,   306,   306,   306,   306,   306,
2086 >     306,   306,   306,   306,   306,   306,   307,   308,   309,   310,
2087 >     311,   312,   313,   314,   316,   315,   317,   317,   318,   318,
2088 >     318,   318,   318,   318,   318,   318,   318,   318,   318,   318,
2089 >     318,   318,   318,   318,   318,   318,   318,   318,   318,   318,
2090 >     320,   319,   321,   321,   322,   322,   322,   322,   322,   322,
2091 >     322,   322,   322,   322,   322,   322,   322,   322,   322,   322,
2092 >     322,   322,   322,   322,   322,   322,   322,   324,   323,   325,
2093 >     325,   326,   326,   326,   326,   326,   326,   326,   326,   326,
2094 >     326,   326,   326,   326,   326,   326,   326,   326,   326,   327,
2095 >     328,   329,   330,   331,   332,   333,   334,   335,   336,   337,
2096 >     338,   339,   340,   341,   342,   344,   343,   345,   345,   346,
2097 >     346,   348,   347,   350,   349,   351,   351,   352,   352,   352,
2098 >     353,   353,   354,   354,   354,   354,   354,   356,   355,   357,
2099 >     357,   358,   358,   359,   360,   362,   361,   363,   363,   364,
2100 >     364,   364,   364,   364,   364,   364,   364,   364,   365,   366,
2101 >     367,   368,   370,   369,   371,   371,   372,   372,   372,   372,
2102 >     372,   372,   372,   372,   372,   372,   373,   374,   375,   377,
2103 >     376,   378,   378,   379,   379,   379,   379,   380,   381,   382,
2104 >     383,   384,   384,   385,   385,   386,   388,   387,   389,   389,
2105 >     390,   390,   390,   390,   391,   392,   394,   393,   395,   395,
2106 >     396,   396,   396,   396,   396,   396,   396,   396,   396,   396,
2107 >     398,   397,   399,   399,   400,   400,   400,   401,   403,   402,
2108 >     404,   404,   405,   405,   405,   405,   405,   405,   405,   405,
2109 >     405,   405,   407,   406,   408,   408,   409,   409,   409,   409,
2110 >     409,   409,   409,   409,   409,   409,   409,   409,   409,   409,
2111 >     409,   410,   411,   412,   413,   414,   415,   416,   417,   417,
2112 >     419,   418,   420,   420,   421,   421,   422,   423,   424,   425,
2113 >     426,   428,   427,   429,   429,   430,   430,   430,   431,   432,
2114 >     434,   433,   435,   435,   436,   436,   436,   437,   438,   439,
2115 >     440,   440,   441,   441,   442,   444,   443,   445,   445,   446,
2116 >     446,   446,   447,   448,   449,   450,   450,   451,   451,   451,
2117 >     451,   451,   451,   451,   451,   451,   451,   451,   451,   451,
2118 >     451,   451,   451,   451,   451,   451,   451,   451,   451,   451,
2119 >     451,   451,   451,   451,   451,   451,   451,   451,   451,   451,
2120 >     451,   451,   451,   451,   451,   451,   451,   451,   451,   451,
2121 >     451,   451,   451,   451,   451,   451,   451,   451,   452,   453,
2122 >     454,   455,   456,   457,   458,   459,   460,   461,   462,   463,
2123 >     464,   465,   466,   467,   468,   469,   470,   471,   472,   473,
2124 >     474,   475,   476,   477,   478,   478,   479,   479,   480,   481,
2125 >     482,   483,   484,   485,   486,   487,   488,   489,   490,   491,
2126 >     492,   493,   494,   495,   496,   498,   497,   499,   499,   500,
2127 >     500,   500,   500,   500,   500,   500,   500,   500,   500,   500,
2128 >     500,   500,   500,   500,   500,   500,   500,   500,   500,   500,
2129 >     500,   502,   501,   503,   503,   504,   504,   504,   504,   504,
2130 >     504,   504,   504,   504,   504,   504,   504,   504,   504,   504,
2131 >     504,   504,   504,   504,   504,   505,   506,   507,   508,   509,
2132 >     509,   510,   510,   510,   510,   510,   510,   510,   510,   510,
2133 >     510,   510,   510,   510,   510,   510,   511,   512,   513,   514,
2134 >     515,   516,   517,   518,   519,   520,   521,   522,   523,   524,
2135 >     525,   526,   526,   527,   527,   527,   527,   527,   527,   527,
2136 >     527,   527,   528,   529,   530,   531,   532,   533,   534,   535
2137 > };
2138  
2139 < #define YYACCEPT        goto yyacceptlab
2140 < #define YYABORT         goto yyabortlab
2141 < #define YYERROR         goto yyerrorlab
2139 >  /* YYR2[YYN] -- Number of symbols on the right hand side of rule YYN.  */
2140 > static const yytype_uint8 yyr2[] =
2141 > {
2142 >       0,     2,     0,     2,     1,     1,     1,     1,     1,     1,
2143 >       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
2144 >       1,     1,     1,     1,     1,     2,     2,     0,     1,     2,
2145 >       3,     3,     3,     3,     3,     3,     3,     0,     1,     2,
2146 >       3,     3,     3,     5,     2,     1,     1,     1,     2,     4,
2147 >       4,     5,     2,     1,     1,     1,     1,     1,     1,     1,
2148 >       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
2149 >       1,     1,     1,     2,     4,     4,     3,     1,     1,     1,
2150 >       3,     1,     1,     1,     4,     4,     4,     4,     4,     4,
2151 >       4,     4,     4,     4,     4,     4,     4,     4,     4,     4,
2152 >       4,     5,     2,     1,     1,     1,     1,     2,     4,     4,
2153 >       4,     0,     6,     2,     1,     1,     1,     2,     4,     4,
2154 >       5,     2,     1,     1,     1,     2,     4,     0,     6,     2,
2155 >       1,     1,     1,     1,     2,     4,     4,     4,     0,     5,
2156 >       3,     1,     1,     1,     1,     1,     1,     1,     1,     1,
2157 >       1,     0,     6,     2,     1,     1,     1,     1,     1,     1,
2158 >       1,     1,     1,     1,     1,     2,     4,     4,     4,     4,
2159 >       4,     4,     4,     4,     0,     5,     3,     1,     1,     1,
2160 >       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
2161 >       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
2162 >       0,     5,     3,     1,     3,     1,     3,     1,     3,     1,
2163 >       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
2164 >       1,     1,     1,     1,     1,     1,     1,     0,     6,     2,
2165 >       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
2166 >       1,     1,     1,     1,     1,     1,     1,     1,     2,     4,
2167 >       4,     4,     4,     4,     4,     4,     4,     4,     4,     4,
2168 >       4,     4,     4,     4,     4,     0,     5,     3,     1,     1,
2169 >       1,     0,     6,     0,     5,     3,     1,     1,     1,     1,
2170 >       2,     1,     1,     1,     1,     1,     2,     0,     5,     3,
2171 >       1,     1,     3,     4,     4,     0,     6,     2,     1,     1,
2172 >       1,     1,     1,     1,     1,     1,     1,     2,     4,     4,
2173 >       4,     4,     0,     5,     3,     1,     1,     1,     1,     1,
2174 >       1,     1,     1,     1,     1,     1,     4,     4,     4,     0,
2175 >       6,     2,     1,     1,     1,     1,     2,     4,     4,     4,
2176 >       5,     2,     1,     1,     1,     4,     0,     6,     2,     1,
2177 >       1,     1,     1,     2,     4,     4,     0,     5,     3,     1,
2178 >       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
2179 >       0,     6,     2,     1,     1,     1,     2,     4,     0,     5,
2180 >       3,     1,     1,     1,     1,     1,     1,     1,     1,     1,
2181 >       1,     1,     0,     6,     2,     1,     1,     1,     1,     1,
2182 >       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
2183 >       2,     4,     4,     4,     4,     4,     4,     4,     4,     4,
2184 >       0,     5,     3,     1,     1,     1,     4,     4,     4,     4,
2185 >       4,     0,     6,     2,     1,     1,     1,     1,     4,     4,
2186 >       0,     6,     2,     1,     1,     1,     1,     4,     4,     5,
2187 >       2,     1,     1,     1,     4,     0,     6,     2,     1,     1,
2188 >       1,     1,     4,     4,     5,     2,     1,     1,     1,     1,
2189 >       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
2190 >       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
2191 >       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
2192 >       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
2193 >       1,     1,     1,     1,     1,     1,     1,     1,     4,     4,
2194 >       4,     4,     4,     4,     4,     4,     4,     4,     4,     4,
2195 >       4,     4,     4,     4,     4,     4,     4,     4,     4,     4,
2196 >       4,     4,     4,     4,     4,     4,     4,     4,     4,     4,
2197 >       4,     4,     4,     4,     4,     4,     4,     4,     4,     4,
2198 >       4,     4,     4,     4,     4,     0,     5,     3,     1,     1,
2199 >       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
2200 >       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
2201 >       1,     0,     5,     3,     1,     1,     1,     1,     1,     1,
2202 >       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
2203 >       1,     1,     1,     1,     1,     4,     4,     4,     5,     2,
2204 >       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
2205 >       1,     1,     1,     1,     1,     1,     4,     4,     4,     4,
2206 >       4,     4,     4,     4,     4,     4,     4,     4,     4,     4,
2207 >       5,     2,     1,     1,     1,     1,     1,     1,     1,     1,
2208 >       1,     1,     4,     4,     4,     4,     4,     4,     4,     4
2209 > };
2210  
2211  
2212 < /* Like YYERROR except do call yyerror.  This remains here temporarily
2213 <   to ease the transition to the new meaning of YYERROR, for GCC.
2214 <   Once GCC version 2 has supplanted version 1, this can go.  */
2212 > #define yyerrok         (yyerrstatus = 0)
2213 > #define yyclearin       (yychar = YYEMPTY)
2214 > #define YYEMPTY         (-2)
2215 > #define YYEOF           0
2216 >
2217 > #define YYACCEPT        goto yyacceptlab
2218 > #define YYABORT         goto yyabortlab
2219 > #define YYERROR         goto yyerrorlab
2220  
2674 #define YYFAIL          goto yyerrlab
2221  
2222   #define YYRECOVERING()  (!!yyerrstatus)
2223  
2224 < #define YYBACKUP(Token, Value)                                  \
2225 < do                                                              \
2226 <  if (yychar == YYEMPTY && yylen == 1)                          \
2227 <    {                                                           \
2228 <      yychar = (Token);                                         \
2229 <      yylval = (Value);                                         \
2230 <      yytoken = YYTRANSLATE (yychar);                           \
2231 <      YYPOPSTACK (1);                                           \
2232 <      goto yybackup;                                            \
2233 <    }                                                           \
2234 <  else                                                          \
2235 <    {                                                           \
2224 > #define YYBACKUP(Token, Value)                                  \
2225 > do                                                              \
2226 >  if (yychar == YYEMPTY)                                        \
2227 >    {                                                           \
2228 >      yychar = (Token);                                         \
2229 >      yylval = (Value);                                         \
2230 >      YYPOPSTACK (yylen);                                       \
2231 >      yystate = *yyssp;                                         \
2232 >      goto yybackup;                                            \
2233 >    }                                                           \
2234 >  else                                                          \
2235 >    {                                                           \
2236        yyerror (YY_("syntax error: cannot back up")); \
2237 <      YYERROR;                                                  \
2238 <    }                                                           \
2239 < while (YYID (0))
2240 <
2241 <
2242 < #define YYTERROR        1
2243 < #define YYERRCODE       256
2698 <
2699 <
2700 < /* YYLLOC_DEFAULT -- Set CURRENT to span from RHS[1] to RHS[N].
2701 <   If N is 0, then set CURRENT to the empty location which ends
2702 <   the previous symbol: RHS[0] (always defined).  */
2703 <
2704 < #define YYRHSLOC(Rhs, K) ((Rhs)[K])
2705 < #ifndef YYLLOC_DEFAULT
2706 < # define YYLLOC_DEFAULT(Current, Rhs, N)                                \
2707 <    do                                                                  \
2708 <      if (YYID (N))                                                    \
2709 <        {                                                               \
2710 <          (Current).first_line   = YYRHSLOC (Rhs, 1).first_line;        \
2711 <          (Current).first_column = YYRHSLOC (Rhs, 1).first_column;      \
2712 <          (Current).last_line    = YYRHSLOC (Rhs, N).last_line;         \
2713 <          (Current).last_column  = YYRHSLOC (Rhs, N).last_column;       \
2714 <        }                                                               \
2715 <      else                                                              \
2716 <        {                                                               \
2717 <          (Current).first_line   = (Current).last_line   =              \
2718 <            YYRHSLOC (Rhs, 0).last_line;                                \
2719 <          (Current).first_column = (Current).last_column =              \
2720 <            YYRHSLOC (Rhs, 0).last_column;                              \
2721 <        }                                                               \
2722 <    while (YYID (0))
2723 < #endif
2724 <
2237 >      YYERROR;                                                  \
2238 >    }                                                           \
2239 > while (0)
2240 >
2241 > /* Error token number */
2242 > #define YYTERROR        1
2243 > #define YYERRCODE       256
2244  
2726 /* YY_LOCATION_PRINT -- Print the location on the stream.
2727   This macro was not mandated originally: define only if we know
2728   we won't break user code: when these are the locations we know.  */
2245  
2730 #ifndef YY_LOCATION_PRINT
2731 # if YYLTYPE_IS_TRIVIAL
2732 #  define YY_LOCATION_PRINT(File, Loc)                  \
2733     fprintf (File, "%d.%d-%d.%d",                      \
2734              (Loc).first_line, (Loc).first_column,     \
2735              (Loc).last_line,  (Loc).last_column)
2736 # else
2737 #  define YY_LOCATION_PRINT(File, Loc) ((void) 0)
2738 # endif
2739 #endif
2740
2741
2742 /* YYLEX -- calling `yylex' with the right arguments.  */
2743
2744 #ifdef YYLEX_PARAM
2745 # define YYLEX yylex (YYLEX_PARAM)
2746 #else
2747 # define YYLEX yylex ()
2748 #endif
2246  
2247   /* Enable debugging if requested.  */
2248   #if YYDEBUG
# Line 2755 | Line 2252 | while (YYID (0))
2252   #  define YYFPRINTF fprintf
2253   # endif
2254  
2255 < # define YYDPRINTF(Args)                        \
2256 < do {                                            \
2257 <  if (yydebug)                                  \
2258 <    YYFPRINTF Args;                             \
2259 < } while (YYID (0))
2763 <
2764 < # define YY_SYMBOL_PRINT(Title, Type, Value, Location)                    \
2765 < do {                                                                      \
2766 <  if (yydebug)                                                            \
2767 <    {                                                                     \
2768 <      YYFPRINTF (stderr, "%s ", Title);                                   \
2769 <      yy_symbol_print (stderr,                                            \
2770 <                  Type, Value); \
2771 <      YYFPRINTF (stderr, "\n");                                           \
2772 <    }                                                                     \
2773 < } while (YYID (0))
2255 > # define YYDPRINTF(Args)                        \
2256 > do {                                            \
2257 >  if (yydebug)                                  \
2258 >    YYFPRINTF Args;                             \
2259 > } while (0)
2260  
2261 + /* This macro is provided for backward compatibility. */
2262 + #ifndef YY_LOCATION_PRINT
2263 + # define YY_LOCATION_PRINT(File, Loc) ((void) 0)
2264 + #endif
2265 +
2266 +
2267 + # define YY_SYMBOL_PRINT(Title, Type, Value, Location)                    \
2268 + do {                                                                      \
2269 +  if (yydebug)                                                            \
2270 +    {                                                                     \
2271 +      YYFPRINTF (stderr, "%s ", Title);                                   \
2272 +      yy_symbol_print (stderr,                                            \
2273 +                  Type, Value); \
2274 +      YYFPRINTF (stderr, "\n");                                           \
2275 +    }                                                                     \
2276 + } while (0)
2277  
2776 /*--------------------------------.
2777 | Print this symbol on YYOUTPUT.  |
2778 `--------------------------------*/
2278  
2279 < /*ARGSUSED*/
2280 < #if (defined __STDC__ || defined __C99__FUNC__ \
2281 <     || defined __cplusplus || defined _MSC_VER)
2279 > /*----------------------------------------.
2280 > | Print this symbol's value on YYOUTPUT.  |
2281 > `----------------------------------------*/
2282 >
2283   static void
2284   yy_symbol_value_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep)
2785 #else
2786 static void
2787 yy_symbol_value_print (yyoutput, yytype, yyvaluep)
2788    FILE *yyoutput;
2789    int yytype;
2790    YYSTYPE const * const yyvaluep;
2791 #endif
2285   {
2286 +  FILE *yyo = yyoutput;
2287 +  YYUSE (yyo);
2288    if (!yyvaluep)
2289      return;
2290   # ifdef YYPRINT
2291    if (yytype < YYNTOKENS)
2292      YYPRINT (yyoutput, yytoknum[yytype], *yyvaluep);
2798 # else
2799  YYUSE (yyoutput);
2293   # endif
2294 <  switch (yytype)
2802 <    {
2803 <      default:
2804 <        break;
2805 <    }
2294 >  YYUSE (yytype);
2295   }
2296  
2297  
# Line 2810 | Line 2299 | yy_symbol_value_print (yyoutput, yytype,
2299   | Print this symbol on YYOUTPUT.  |
2300   `--------------------------------*/
2301  
2813 #if (defined __STDC__ || defined __C99__FUNC__ \
2814     || defined __cplusplus || defined _MSC_VER)
2302   static void
2303   yy_symbol_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep)
2817 #else
2818 static void
2819 yy_symbol_print (yyoutput, yytype, yyvaluep)
2820    FILE *yyoutput;
2821    int yytype;
2822    YYSTYPE const * const yyvaluep;
2823 #endif
2304   {
2305 <  if (yytype < YYNTOKENS)
2306 <    YYFPRINTF (yyoutput, "token %s (", yytname[yytype]);
2827 <  else
2828 <    YYFPRINTF (yyoutput, "nterm %s (", yytname[yytype]);
2305 >  YYFPRINTF (yyoutput, "%s %s (",
2306 >             yytype < YYNTOKENS ? "token" : "nterm", yytname[yytype]);
2307  
2308    yy_symbol_value_print (yyoutput, yytype, yyvaluep);
2309    YYFPRINTF (yyoutput, ")");
# Line 2836 | Line 2314 | yy_symbol_print (yyoutput, yytype, yyval
2314   | TOP (included).                                                   |
2315   `------------------------------------------------------------------*/
2316  
2839 #if (defined __STDC__ || defined __C99__FUNC__ \
2840     || defined __cplusplus || defined _MSC_VER)
2317   static void
2318   yy_stack_print (yytype_int16 *yybottom, yytype_int16 *yytop)
2843 #else
2844 static void
2845 yy_stack_print (yybottom, yytop)
2846    yytype_int16 *yybottom;
2847    yytype_int16 *yytop;
2848 #endif
2319   {
2320    YYFPRINTF (stderr, "Stack now");
2321    for (; yybottom <= yytop; yybottom++)
# Line 2856 | Line 2326 | yy_stack_print (yybottom, yytop)
2326    YYFPRINTF (stderr, "\n");
2327   }
2328  
2329 < # define YY_STACK_PRINT(Bottom, Top)                            \
2330 < do {                                                            \
2331 <  if (yydebug)                                                  \
2332 <    yy_stack_print ((Bottom), (Top));                           \
2333 < } while (YYID (0))
2329 > # define YY_STACK_PRINT(Bottom, Top)                            \
2330 > do {                                                            \
2331 >  if (yydebug)                                                  \
2332 >    yy_stack_print ((Bottom), (Top));                           \
2333 > } while (0)
2334  
2335  
2336   /*------------------------------------------------.
2337   | Report that the YYRULE is going to be reduced.  |
2338   `------------------------------------------------*/
2339  
2870 #if (defined __STDC__ || defined __C99__FUNC__ \
2871     || defined __cplusplus || defined _MSC_VER)
2340   static void
2341 < yy_reduce_print (YYSTYPE *yyvsp, int yyrule)
2874 < #else
2875 < static void
2876 < yy_reduce_print (yyvsp, yyrule)
2877 <    YYSTYPE *yyvsp;
2878 <    int yyrule;
2879 < #endif
2341 > yy_reduce_print (yytype_int16 *yyssp, YYSTYPE *yyvsp, int yyrule)
2342   {
2343 +  unsigned long int yylno = yyrline[yyrule];
2344    int yynrhs = yyr2[yyrule];
2345    int yyi;
2883  unsigned long int yylno = yyrline[yyrule];
2346    YYFPRINTF (stderr, "Reducing stack by rule %d (line %lu):\n",
2347 <             yyrule - 1, yylno);
2347 >             yyrule - 1, yylno);
2348    /* The symbols being reduced.  */
2349    for (yyi = 0; yyi < yynrhs; yyi++)
2350      {
2351        YYFPRINTF (stderr, "   $%d = ", yyi + 1);
2352 <      yy_symbol_print (stderr, yyrhs[yyprhs[yyrule] + yyi],
2353 <                       &(yyvsp[(yyi + 1) - (yynrhs)])
2354 <                                       );
2352 >      yy_symbol_print (stderr,
2353 >                       yystos[yyssp[yyi + 1 - yynrhs]],
2354 >                       &(yyvsp[(yyi + 1) - (yynrhs)])
2355 >                                              );
2356        YYFPRINTF (stderr, "\n");
2357      }
2358   }
2359  
2360 < # define YY_REDUCE_PRINT(Rule)          \
2361 < do {                                    \
2362 <  if (yydebug)                          \
2363 <    yy_reduce_print (yyvsp, Rule); \
2364 < } while (YYID (0))
2360 > # define YY_REDUCE_PRINT(Rule)          \
2361 > do {                                    \
2362 >  if (yydebug)                          \
2363 >    yy_reduce_print (yyssp, yyvsp, Rule); \
2364 > } while (0)
2365  
2366   /* Nonzero means print parse trace.  It is left uninitialized so that
2367     multiple parsers can coexist.  */
# Line 2912 | Line 2375 | int yydebug;
2375  
2376  
2377   /* YYINITDEPTH -- initial size of the parser's stacks.  */
2378 < #ifndef YYINITDEPTH
2378 > #ifndef YYINITDEPTH
2379   # define YYINITDEPTH 200
2380   #endif
2381  
# Line 2927 | Line 2390 | int yydebug;
2390   # define YYMAXDEPTH 10000
2391   #endif
2392  
2930
2393  
2394   #if YYERROR_VERBOSE
2395  
# Line 2936 | Line 2398 | int yydebug;
2398   #   define yystrlen strlen
2399   #  else
2400   /* Return the length of YYSTR.  */
2939 #if (defined __STDC__ || defined __C99__FUNC__ \
2940     || defined __cplusplus || defined _MSC_VER)
2401   static YYSIZE_T
2402   yystrlen (const char *yystr)
2943 #else
2944 static YYSIZE_T
2945 yystrlen (yystr)
2946    const char *yystr;
2947 #endif
2403   {
2404    YYSIZE_T yylen;
2405    for (yylen = 0; yystr[yylen]; yylen++)
# Line 2960 | Line 2415 | yystrlen (yystr)
2415   #  else
2416   /* Copy YYSRC to YYDEST, returning the address of the terminating '\0' in
2417     YYDEST.  */
2963 #if (defined __STDC__ || defined __C99__FUNC__ \
2964     || defined __cplusplus || defined _MSC_VER)
2418   static char *
2419   yystpcpy (char *yydest, const char *yysrc)
2967 #else
2968 static char *
2969 yystpcpy (yydest, yysrc)
2970    char *yydest;
2971    const char *yysrc;
2972 #endif
2420   {
2421    char *yyd = yydest;
2422    const char *yys = yysrc;
# Line 2999 | Line 2446 | yytnamerr (char *yyres, const char *yyst
2446        char const *yyp = yystr;
2447  
2448        for (;;)
2449 <        switch (*++yyp)
2450 <          {
2451 <          case '\'':
2452 <          case ',':
2453 <            goto do_not_strip_quotes;
2454 <
2455 <          case '\\':
2456 <            if (*++yyp != '\\')
2457 <              goto do_not_strip_quotes;
2458 <            /* Fall through.  */
2459 <          default:
2460 <            if (yyres)
2461 <              yyres[yyn] = *yyp;
2462 <            yyn++;
2463 <            break;
2464 <
2465 <          case '"':
2466 <            if (yyres)
2467 <              yyres[yyn] = '\0';
2468 <            return yyn;
2469 <          }
2449 >        switch (*++yyp)
2450 >          {
2451 >          case '\'':
2452 >          case ',':
2453 >            goto do_not_strip_quotes;
2454 >
2455 >          case '\\':
2456 >            if (*++yyp != '\\')
2457 >              goto do_not_strip_quotes;
2458 >            /* Fall through.  */
2459 >          default:
2460 >            if (yyres)
2461 >              yyres[yyn] = *yyp;
2462 >            yyn++;
2463 >            break;
2464 >
2465 >          case '"':
2466 >            if (yyres)
2467 >              yyres[yyn] = '\0';
2468 >            return yyn;
2469 >          }
2470      do_not_strip_quotes: ;
2471      }
2472  
# Line 3030 | Line 2477 | yytnamerr (char *yyres, const char *yyst
2477   }
2478   # endif
2479  
2480 < /* Copy into YYRESULT an error message about the unexpected token
2481 <   YYCHAR while in state YYSTATE.  Return the number of bytes copied,
2482 <   including the terminating null byte.  If YYRESULT is null, do not
2483 <   copy anything; just return the number of bytes that would be
2484 <   copied.  As a special case, return 0 if an ordinary "syntax error"
2485 <   message will do.  Return YYSIZE_MAXIMUM if overflow occurs during
2486 <   size calculation.  */
2487 < static YYSIZE_T
2488 < yysyntax_error (char *yyresult, int yystate, int yychar)
2480 > /* Copy into *YYMSG, which is of size *YYMSG_ALLOC, an error message
2481 >   about the unexpected token YYTOKEN for the state stack whose top is
2482 >   YYSSP.
2483 >
2484 >   Return 0 if *YYMSG was successfully written.  Return 1 if *YYMSG is
2485 >   not large enough to hold the message.  In that case, also set
2486 >   *YYMSG_ALLOC to the required number of bytes.  Return 2 if the
2487 >   required number of bytes is too large to store.  */
2488 > static int
2489 > yysyntax_error (YYSIZE_T *yymsg_alloc, char **yymsg,
2490 >                yytype_int16 *yyssp, int yytoken)
2491   {
2492 <  int yyn = yypact[yystate];
2492 >  YYSIZE_T yysize0 = yytnamerr (YY_NULLPTR, yytname[yytoken]);
2493 >  YYSIZE_T yysize = yysize0;
2494 >  enum { YYERROR_VERBOSE_ARGS_MAXIMUM = 5 };
2495 >  /* Internationalized format string. */
2496 >  const char *yyformat = YY_NULLPTR;
2497 >  /* Arguments of yyformat. */
2498 >  char const *yyarg[YYERROR_VERBOSE_ARGS_MAXIMUM];
2499 >  /* Number of reported tokens (one for the "unexpected", one per
2500 >     "expected"). */
2501 >  int yycount = 0;
2502 >
2503 >  /* There are many possibilities here to consider:
2504 >     - If this state is a consistent state with a default action, then
2505 >       the only way this function was invoked is if the default action
2506 >       is an error action.  In that case, don't check for expected
2507 >       tokens because there are none.
2508 >     - The only way there can be no lookahead present (in yychar) is if
2509 >       this state is a consistent state with a default action.  Thus,
2510 >       detecting the absence of a lookahead is sufficient to determine
2511 >       that there is no unexpected or expected token to report.  In that
2512 >       case, just report a simple "syntax error".
2513 >     - Don't assume there isn't a lookahead just because this state is a
2514 >       consistent state with a default action.  There might have been a
2515 >       previous inconsistent state, consistent state with a non-default
2516 >       action, or user semantic action that manipulated yychar.
2517 >     - Of course, the expected token list depends on states to have
2518 >       correct lookahead information, and it depends on the parser not
2519 >       to perform extra reductions after fetching a lookahead from the
2520 >       scanner and before detecting a syntax error.  Thus, state merging
2521 >       (from LALR or IELR) and default reductions corrupt the expected
2522 >       token list.  However, the list is correct for canonical LR with
2523 >       one exception: it will still contain any token that will not be
2524 >       accepted due to an error action in a later state.
2525 >  */
2526 >  if (yytoken != YYEMPTY)
2527 >    {
2528 >      int yyn = yypact[*yyssp];
2529 >      yyarg[yycount++] = yytname[yytoken];
2530 >      if (!yypact_value_is_default (yyn))
2531 >        {
2532 >          /* Start YYX at -YYN if negative to avoid negative indexes in
2533 >             YYCHECK.  In other words, skip the first -YYN actions for
2534 >             this state because they are default actions.  */
2535 >          int yyxbegin = yyn < 0 ? -yyn : 0;
2536 >          /* Stay within bounds of both yycheck and yytname.  */
2537 >          int yychecklim = YYLAST - yyn + 1;
2538 >          int yyxend = yychecklim < YYNTOKENS ? yychecklim : YYNTOKENS;
2539 >          int yyx;
2540 >
2541 >          for (yyx = yyxbegin; yyx < yyxend; ++yyx)
2542 >            if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR
2543 >                && !yytable_value_is_error (yytable[yyx + yyn]))
2544 >              {
2545 >                if (yycount == YYERROR_VERBOSE_ARGS_MAXIMUM)
2546 >                  {
2547 >                    yycount = 1;
2548 >                    yysize = yysize0;
2549 >                    break;
2550 >                  }
2551 >                yyarg[yycount++] = yytname[yyx];
2552 >                {
2553 >                  YYSIZE_T yysize1 = yysize + yytnamerr (YY_NULLPTR, yytname[yyx]);
2554 >                  if (! (yysize <= yysize1
2555 >                         && yysize1 <= YYSTACK_ALLOC_MAXIMUM))
2556 >                    return 2;
2557 >                  yysize = yysize1;
2558 >                }
2559 >              }
2560 >        }
2561 >    }
2562  
2563 <  if (! (YYPACT_NINF < yyn && yyn <= YYLAST))
3046 <    return 0;
3047 <  else
2563 >  switch (yycount)
2564      {
2565 <      int yytype = YYTRANSLATE (yychar);
2566 <      YYSIZE_T yysize0 = yytnamerr (0, yytname[yytype]);
2567 <      YYSIZE_T yysize = yysize0;
2568 <      YYSIZE_T yysize1;
2569 <      int yysize_overflow = 0;
2570 <      enum { YYERROR_VERBOSE_ARGS_MAXIMUM = 5 };
2571 <      char const *yyarg[YYERROR_VERBOSE_ARGS_MAXIMUM];
2572 <      int yyx;
2573 <
2574 < # if 0
2575 <      /* This is so xgettext sees the translatable formats that are
3060 <         constructed on the fly.  */
3061 <      YY_("syntax error, unexpected %s");
3062 <      YY_("syntax error, unexpected %s, expecting %s");
3063 <      YY_("syntax error, unexpected %s, expecting %s or %s");
3064 <      YY_("syntax error, unexpected %s, expecting %s or %s or %s");
3065 <      YY_("syntax error, unexpected %s, expecting %s or %s or %s or %s");
3066 < # endif
3067 <      char *yyfmt;
3068 <      char const *yyf;
3069 <      static char const yyunexpected[] = "syntax error, unexpected %s";
3070 <      static char const yyexpecting[] = ", expecting %s";
3071 <      static char const yyor[] = " or %s";
3072 <      char yyformat[sizeof yyunexpected
3073 <                    + sizeof yyexpecting - 1
3074 <                    + ((YYERROR_VERBOSE_ARGS_MAXIMUM - 2)
3075 <                       * (sizeof yyor - 1))];
3076 <      char const *yyprefix = yyexpecting;
3077 <
3078 <      /* Start YYX at -YYN if negative to avoid negative indexes in
3079 <         YYCHECK.  */
3080 <      int yyxbegin = yyn < 0 ? -yyn : 0;
3081 <
3082 <      /* Stay within bounds of both yycheck and yytname.  */
3083 <      int yychecklim = YYLAST - yyn + 1;
3084 <      int yyxend = yychecklim < YYNTOKENS ? yychecklim : YYNTOKENS;
3085 <      int yycount = 1;
3086 <
3087 <      yyarg[0] = yytname[yytype];
3088 <      yyfmt = yystpcpy (yyformat, yyunexpected);
3089 <
3090 <      for (yyx = yyxbegin; yyx < yyxend; ++yyx)
3091 <        if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR)
3092 <          {
3093 <            if (yycount == YYERROR_VERBOSE_ARGS_MAXIMUM)
3094 <              {
3095 <                yycount = 1;
3096 <                yysize = yysize0;
3097 <                yyformat[sizeof yyunexpected - 1] = '\0';
3098 <                break;
3099 <              }
3100 <            yyarg[yycount++] = yytname[yyx];
3101 <            yysize1 = yysize + yytnamerr (0, yytname[yyx]);
3102 <            yysize_overflow |= (yysize1 < yysize);
3103 <            yysize = yysize1;
3104 <            yyfmt = yystpcpy (yyfmt, yyprefix);
3105 <            yyprefix = yyor;
3106 <          }
3107 <
3108 <      yyf = YY_(yyformat);
3109 <      yysize1 = yysize + yystrlen (yyf);
3110 <      yysize_overflow |= (yysize1 < yysize);
3111 <      yysize = yysize1;
3112 <
3113 <      if (yysize_overflow)
3114 <        return YYSIZE_MAXIMUM;
3115 <
3116 <      if (yyresult)
3117 <        {
3118 <          /* Avoid sprintf, as that infringes on the user's name space.
3119 <             Don't have undefined behavior even if the translation
3120 <             produced a string with the wrong number of "%s"s.  */
3121 <          char *yyp = yyresult;
3122 <          int yyi = 0;
3123 <          while ((*yyp = *yyf) != '\0')
3124 <            {
3125 <              if (*yyp == '%' && yyf[1] == 's' && yyi < yycount)
3126 <                {
3127 <                  yyp += yytnamerr (yyp, yyarg[yyi++]);
3128 <                  yyf += 2;
3129 <                }
3130 <              else
3131 <                {
3132 <                  yyp++;
3133 <                  yyf++;
3134 <                }
3135 <            }
3136 <        }
3137 <      return yysize;
2565 > # define YYCASE_(N, S)                      \
2566 >      case N:                               \
2567 >        yyformat = S;                       \
2568 >      break
2569 >      YYCASE_(0, YY_("syntax error"));
2570 >      YYCASE_(1, YY_("syntax error, unexpected %s"));
2571 >      YYCASE_(2, YY_("syntax error, unexpected %s, expecting %s"));
2572 >      YYCASE_(3, YY_("syntax error, unexpected %s, expecting %s or %s"));
2573 >      YYCASE_(4, YY_("syntax error, unexpected %s, expecting %s or %s or %s"));
2574 >      YYCASE_(5, YY_("syntax error, unexpected %s, expecting %s or %s or %s or %s"));
2575 > # undef YYCASE_
2576      }
2577 +
2578 +  {
2579 +    YYSIZE_T yysize1 = yysize + yystrlen (yyformat);
2580 +    if (! (yysize <= yysize1 && yysize1 <= YYSTACK_ALLOC_MAXIMUM))
2581 +      return 2;
2582 +    yysize = yysize1;
2583 +  }
2584 +
2585 +  if (*yymsg_alloc < yysize)
2586 +    {
2587 +      *yymsg_alloc = 2 * yysize;
2588 +      if (! (yysize <= *yymsg_alloc
2589 +             && *yymsg_alloc <= YYSTACK_ALLOC_MAXIMUM))
2590 +        *yymsg_alloc = YYSTACK_ALLOC_MAXIMUM;
2591 +      return 1;
2592 +    }
2593 +
2594 +  /* Avoid sprintf, as that infringes on the user's name space.
2595 +     Don't have undefined behavior even if the translation
2596 +     produced a string with the wrong number of "%s"s.  */
2597 +  {
2598 +    char *yyp = *yymsg;
2599 +    int yyi = 0;
2600 +    while ((*yyp = *yyformat) != '\0')
2601 +      if (*yyp == '%' && yyformat[1] == 's' && yyi < yycount)
2602 +        {
2603 +          yyp += yytnamerr (yyp, yyarg[yyi++]);
2604 +          yyformat += 2;
2605 +        }
2606 +      else
2607 +        {
2608 +          yyp++;
2609 +          yyformat++;
2610 +        }
2611 +  }
2612 +  return 0;
2613   }
2614   #endif /* YYERROR_VERBOSE */
3141
2615  
2616   /*-----------------------------------------------.
2617   | Release the memory associated to this symbol.  |
2618   `-----------------------------------------------*/
2619  
3147 /*ARGSUSED*/
3148 #if (defined __STDC__ || defined __C99__FUNC__ \
3149     || defined __cplusplus || defined _MSC_VER)
2620   static void
2621   yydestruct (const char *yymsg, int yytype, YYSTYPE *yyvaluep)
3152 #else
3153 static void
3154 yydestruct (yymsg, yytype, yyvaluep)
3155    const char *yymsg;
3156    int yytype;
3157    YYSTYPE *yyvaluep;
3158 #endif
2622   {
2623    YYUSE (yyvaluep);
3161
2624    if (!yymsg)
2625      yymsg = "Deleting";
2626    YY_SYMBOL_PRINT (yymsg, yytype, yyvaluep, yylocationp);
2627  
2628 <  switch (yytype)
2629 <    {
2630 <
3169 <      default:
3170 <        break;
3171 <    }
2628 >  YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
2629 >  YYUSE (yytype);
2630 >  YY_IGNORE_MAYBE_UNINITIALIZED_END
2631   }
2632  
2633 < /* Prevent warnings from -Wmissing-prototypes.  */
3175 < #ifdef YYPARSE_PARAM
3176 < #if defined __STDC__ || defined __cplusplus
3177 < int yyparse (void *YYPARSE_PARAM);
3178 < #else
3179 < int yyparse ();
3180 < #endif
3181 < #else /* ! YYPARSE_PARAM */
3182 < #if defined __STDC__ || defined __cplusplus
3183 < int yyparse (void);
3184 < #else
3185 < int yyparse ();
3186 < #endif
3187 < #endif /* ! YYPARSE_PARAM */
2633 >
2634  
2635  
2636   /* The lookahead symbol.  */
# Line 3192 | Line 2638 | int yychar;
2638  
2639   /* The semantic value of the lookahead symbol.  */
2640   YYSTYPE yylval;
3195
2641   /* Number of syntax errors so far.  */
2642   int yynerrs;
2643  
2644  
2645 + /*----------.
2646 + | yyparse.  |
2647 + `----------*/
2648  
3201 /*-------------------------.
3202 | yyparse or yypush_parse.  |
3203 `-------------------------*/
3204
3205 #ifdef YYPARSE_PARAM
3206 #if (defined __STDC__ || defined __C99__FUNC__ \
3207     || defined __cplusplus || defined _MSC_VER)
3208 int
3209 yyparse (void *YYPARSE_PARAM)
3210 #else
3211 int
3212 yyparse (YYPARSE_PARAM)
3213    void *YYPARSE_PARAM;
3214 #endif
3215 #else /* ! YYPARSE_PARAM */
3216 #if (defined __STDC__ || defined __C99__FUNC__ \
3217     || defined __cplusplus || defined _MSC_VER)
2649   int
2650   yyparse (void)
3220 #else
3221 int
3222 yyparse ()
3223
3224 #endif
3225 #endif
2651   {
3227
3228
2652      int yystate;
2653      /* Number of tokens to shift before error messages enabled.  */
2654      int yyerrstatus;
2655  
2656      /* The stacks and their tools:
2657 <       `yyss': related to states.
2658 <       `yyvs': related to semantic values.
2657 >       'yyss': related to states.
2658 >       'yyvs': related to semantic values.
2659  
2660 <       Refer to the stacks thru separate pointers, to allow yyoverflow
2660 >       Refer to the stacks through separate pointers, to allow yyoverflow
2661         to reallocate them elsewhere.  */
2662  
2663      /* The state stack.  */
# Line 3252 | Line 2675 | yyparse ()
2675    int yyn;
2676    int yyresult;
2677    /* Lookahead token as an internal (translated) token number.  */
2678 <  int yytoken;
2678 >  int yytoken = 0;
2679    /* The variables used to return semantic value and location from the
2680       action routines.  */
2681    YYSTYPE yyval;
# Line 3270 | Line 2693 | yyparse ()
2693       Keep to zero when no symbol should be popped.  */
2694    int yylen = 0;
2695  
2696 <  yytoken = 0;
2697 <  yyss = yyssa;
3275 <  yyvs = yyvsa;
2696 >  yyssp = yyss = yyssa;
2697 >  yyvsp = yyvs = yyvsa;
2698    yystacksize = YYINITDEPTH;
2699  
2700    YYDPRINTF ((stderr, "Starting parse\n"));
# Line 3281 | Line 2703 | yyparse ()
2703    yyerrstatus = 0;
2704    yynerrs = 0;
2705    yychar = YYEMPTY; /* Cause a token to be read.  */
3284
3285  /* Initialize stack pointers.
3286     Waste one element of value and location stack
3287     so that they stay on the same level as the state stack.
3288     The wasted elements are never initialized.  */
3289  yyssp = yyss;
3290  yyvsp = yyvs;
3291
2706    goto yysetstate;
2707  
2708   /*------------------------------------------------------------.
# Line 3309 | Line 2723 | yyparse ()
2723  
2724   #ifdef yyoverflow
2725        {
2726 <        /* Give user a chance to reallocate the stack.  Use copies of
2727 <           these so that the &'s don't force the real ones into
2728 <           memory.  */
2729 <        YYSTYPE *yyvs1 = yyvs;
2730 <        yytype_int16 *yyss1 = yyss;
2731 <
2732 <        /* Each stack pointer address is followed by the size of the
2733 <           data in use in that stack, in bytes.  This used to be a
2734 <           conditional around just the two extra args, but that might
2735 <           be undefined if yyoverflow is a macro.  */
2736 <        yyoverflow (YY_("memory exhausted"),
2737 <                    &yyss1, yysize * sizeof (*yyssp),
2738 <                    &yyvs1, yysize * sizeof (*yyvsp),
2739 <                    &yystacksize);
2726 >        /* Give user a chance to reallocate the stack.  Use copies of
2727 >           these so that the &'s don't force the real ones into
2728 >           memory.  */
2729 >        YYSTYPE *yyvs1 = yyvs;
2730 >        yytype_int16 *yyss1 = yyss;
2731 >
2732 >        /* Each stack pointer address is followed by the size of the
2733 >           data in use in that stack, in bytes.  This used to be a
2734 >           conditional around just the two extra args, but that might
2735 >           be undefined if yyoverflow is a macro.  */
2736 >        yyoverflow (YY_("memory exhausted"),
2737 >                    &yyss1, yysize * sizeof (*yyssp),
2738 >                    &yyvs1, yysize * sizeof (*yyvsp),
2739 >                    &yystacksize);
2740  
2741 <        yyss = yyss1;
2742 <        yyvs = yyvs1;
2741 >        yyss = yyss1;
2742 >        yyvs = yyvs1;
2743        }
2744   #else /* no yyoverflow */
2745   # ifndef YYSTACK_RELOCATE
# Line 3333 | Line 2747 | yyparse ()
2747   # else
2748        /* Extend the stack our own way.  */
2749        if (YYMAXDEPTH <= yystacksize)
2750 <        goto yyexhaustedlab;
2750 >        goto yyexhaustedlab;
2751        yystacksize *= 2;
2752        if (YYMAXDEPTH < yystacksize)
2753 <        yystacksize = YYMAXDEPTH;
2753 >        yystacksize = YYMAXDEPTH;
2754  
2755        {
2756 <        yytype_int16 *yyss1 = yyss;
2757 <        union yyalloc *yyptr =
2758 <          (union yyalloc *) YYSTACK_ALLOC (YYSTACK_BYTES (yystacksize));
2759 <        if (! yyptr)
2760 <          goto yyexhaustedlab;
2761 <        YYSTACK_RELOCATE (yyss_alloc, yyss);
2762 <        YYSTACK_RELOCATE (yyvs_alloc, yyvs);
2756 >        yytype_int16 *yyss1 = yyss;
2757 >        union yyalloc *yyptr =
2758 >          (union yyalloc *) YYSTACK_ALLOC (YYSTACK_BYTES (yystacksize));
2759 >        if (! yyptr)
2760 >          goto yyexhaustedlab;
2761 >        YYSTACK_RELOCATE (yyss_alloc, yyss);
2762 >        YYSTACK_RELOCATE (yyvs_alloc, yyvs);
2763   #  undef YYSTACK_RELOCATE
2764 <        if (yyss1 != yyssa)
2765 <          YYSTACK_FREE (yyss1);
2764 >        if (yyss1 != yyssa)
2765 >          YYSTACK_FREE (yyss1);
2766        }
2767   # endif
2768   #endif /* no yyoverflow */
# Line 3357 | Line 2771 | yyparse ()
2771        yyvsp = yyvs + yysize - 1;
2772  
2773        YYDPRINTF ((stderr, "Stack size increased to %lu\n",
2774 <                  (unsigned long int) yystacksize));
2774 >                  (unsigned long int) yystacksize));
2775  
2776        if (yyss + yystacksize - 1 <= yyssp)
2777 <        YYABORT;
2777 >        YYABORT;
2778      }
2779  
2780    YYDPRINTF ((stderr, "Entering state %d\n", yystate));
# Line 3380 | Line 2794 | yybackup:
2794  
2795    /* First try to decide what to do without reference to lookahead token.  */
2796    yyn = yypact[yystate];
2797 <  if (yyn == YYPACT_NINF)
2797 >  if (yypact_value_is_default (yyn))
2798      goto yydefault;
2799  
2800    /* Not known => get a lookahead token if don't already have one.  */
# Line 3389 | Line 2803 | yybackup:
2803    if (yychar == YYEMPTY)
2804      {
2805        YYDPRINTF ((stderr, "Reading a token: "));
2806 <      yychar = YYLEX;
2806 >      yychar = yylex ();
2807      }
2808  
2809    if (yychar <= YYEOF)
# Line 3411 | Line 2825 | yybackup:
2825    yyn = yytable[yyn];
2826    if (yyn <= 0)
2827      {
2828 <      if (yyn == 0 || yyn == YYTABLE_NINF)
2829 <        goto yyerrlab;
2828 >      if (yytable_value_is_error (yyn))
2829 >        goto yyerrlab;
2830        yyn = -yyn;
2831        goto yyreduce;
2832      }
# Line 3429 | Line 2843 | yybackup:
2843    yychar = YYEMPTY;
2844  
2845    yystate = yyn;
2846 +  YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
2847    *++yyvsp = yylval;
2848 +  YY_IGNORE_MAYBE_UNINITIALIZED_END
2849  
2850    goto yynewstate;
2851  
# Line 3452 | Line 2868 | yyreduce:
2868    yylen = yyr2[yyn];
2869  
2870    /* If YYLEN is nonzero, implement the default value of the action:
2871 <     `$$ = $1'.
2871 >     '$$ = $1'.
2872  
2873       Otherwise, the following line sets YYVAL to garbage.
2874       This behavior is undocumented and Bison
# Line 3465 | Line 2881 | yyreduce:
2881    YY_REDUCE_PRINT (yyn);
2882    switch (yyn)
2883      {
2884 <        case 26:
2885 <
3470 < /* Line 1455 of yacc.c  */
3471 < #line 432 "ircd_parser.y"
2884 >        case 27:
2885 > #line 413 "conf_parser.y" /* yacc.c:1646  */
2886      { (yyval.number) = 0; }
2887 <    break;
3474 <
3475 <  case 28:
3476 <
3477 < /* Line 1455 of yacc.c  */
3478 < #line 434 "ircd_parser.y"
3479 <    {
3480 <                        (yyval.number) = (yyvsp[(1) - (2)].number) + (yyvsp[(2) - (2)].number);
3481 <                }
2887 > #line 2888 "conf_parser.c" /* yacc.c:1646  */
2888      break;
2889  
2890    case 29:
2891 <
2892 < /* Line 1455 of yacc.c  */
2893 < #line 438 "ircd_parser.y"
3488 <    {
3489 <                        (yyval.number) = (yyvsp[(1) - (3)].number) + (yyvsp[(3) - (3)].number);
3490 <                }
2891 > #line 414 "conf_parser.y" /* yacc.c:1646  */
2892 >    { (yyval.number) = (yyvsp[-1].number) + (yyvsp[0].number); }
2893 > #line 2894 "conf_parser.c" /* yacc.c:1646  */
2894      break;
2895  
2896    case 30:
2897 <
2898 < /* Line 1455 of yacc.c  */
2899 < #line 442 "ircd_parser.y"
3497 <    {
3498 <                        (yyval.number) = (yyvsp[(1) - (3)].number) * 60 + (yyvsp[(3) - (3)].number);
3499 <                }
2897 > #line 415 "conf_parser.y" /* yacc.c:1646  */
2898 >    { (yyval.number) = (yyvsp[-2].number) + (yyvsp[0].number); }
2899 > #line 2900 "conf_parser.c" /* yacc.c:1646  */
2900      break;
2901  
2902    case 31:
2903 <
2904 < /* Line 1455 of yacc.c  */
2905 < #line 446 "ircd_parser.y"
3506 <    {
3507 <                        (yyval.number) = (yyvsp[(1) - (3)].number) * 60 * 60 + (yyvsp[(3) - (3)].number);
3508 <                }
2903 > #line 416 "conf_parser.y" /* yacc.c:1646  */
2904 >    { (yyval.number) = (yyvsp[-2].number) * 60 + (yyvsp[0].number); }
2905 > #line 2906 "conf_parser.c" /* yacc.c:1646  */
2906      break;
2907  
2908    case 32:
2909 <
2910 < /* Line 1455 of yacc.c  */
2911 < #line 450 "ircd_parser.y"
3515 <    {
3516 <                        (yyval.number) = (yyvsp[(1) - (3)].number) * 60 * 60 * 24 + (yyvsp[(3) - (3)].number);
3517 <                }
2909 > #line 417 "conf_parser.y" /* yacc.c:1646  */
2910 >    { (yyval.number) = (yyvsp[-2].number) * 60 * 60 + (yyvsp[0].number); }
2911 > #line 2912 "conf_parser.c" /* yacc.c:1646  */
2912      break;
2913  
2914    case 33:
2915 <
2916 < /* Line 1455 of yacc.c  */
2917 < #line 454 "ircd_parser.y"
3524 <    {
3525 <                        (yyval.number) = (yyvsp[(1) - (3)].number) * 60 * 60 * 24 * 7 + (yyvsp[(3) - (3)].number);
3526 <                }
2915 > #line 418 "conf_parser.y" /* yacc.c:1646  */
2916 >    { (yyval.number) = (yyvsp[-2].number) * 60 * 60 * 24 + (yyvsp[0].number); }
2917 > #line 2918 "conf_parser.c" /* yacc.c:1646  */
2918      break;
2919  
2920    case 34:
2921 + #line 419 "conf_parser.y" /* yacc.c:1646  */
2922 +    { (yyval.number) = (yyvsp[-2].number) * 60 * 60 * 24 * 7 + (yyvsp[0].number); }
2923 + #line 2924 "conf_parser.c" /* yacc.c:1646  */
2924 +    break;
2925  
2926 < /* Line 1455 of yacc.c  */
2927 < #line 459 "ircd_parser.y"
2928 <    { (yyval.number) = 0; }
2926 >  case 35:
2927 > #line 420 "conf_parser.y" /* yacc.c:1646  */
2928 >    { (yyval.number) = (yyvsp[-2].number) * 60 * 60 * 24 * 7 * 4 + (yyvsp[0].number); }
2929 > #line 2930 "conf_parser.c" /* yacc.c:1646  */
2930      break;
2931  
2932    case 36:
2933 <
2934 < /* Line 1455 of yacc.c  */
2935 < #line 460 "ircd_parser.y"
3540 <    { (yyval.number) = (yyvsp[(1) - (2)].number) + (yyvsp[(2) - (2)].number); }
2933 > #line 421 "conf_parser.y" /* yacc.c:1646  */
2934 >    { (yyval.number) = (yyvsp[-2].number) * 60 * 60 * 24 * 365 + (yyvsp[0].number); }
2935 > #line 2936 "conf_parser.c" /* yacc.c:1646  */
2936      break;
2937  
2938    case 37:
2939 <
2940 < /* Line 1455 of yacc.c  */
2941 < #line 461 "ircd_parser.y"
3547 <    { (yyval.number) = (yyvsp[(1) - (3)].number) + (yyvsp[(3) - (3)].number); }
2939 > #line 424 "conf_parser.y" /* yacc.c:1646  */
2940 >    { (yyval.number) = 0; }
2941 > #line 2942 "conf_parser.c" /* yacc.c:1646  */
2942      break;
2943  
2944 <  case 38:
2945 <
2946 < /* Line 1455 of yacc.c  */
2947 < #line 462 "ircd_parser.y"
3554 <    { (yyval.number) = (yyvsp[(1) - (3)].number) * 1024 + (yyvsp[(3) - (3)].number); }
2944 >  case 39:
2945 > #line 425 "conf_parser.y" /* yacc.c:1646  */
2946 >    { (yyval.number) = (yyvsp[-1].number) + (yyvsp[0].number); }
2947 > #line 2948 "conf_parser.c" /* yacc.c:1646  */
2948      break;
2949  
2950 <  case 39:
2950 >  case 40:
2951 > #line 426 "conf_parser.y" /* yacc.c:1646  */
2952 >    { (yyval.number) = (yyvsp[-2].number) + (yyvsp[0].number); }
2953 > #line 2954 "conf_parser.c" /* yacc.c:1646  */
2954 >    break;
2955  
2956 < /* Line 1455 of yacc.c  */
2957 < #line 463 "ircd_parser.y"
2958 <    { (yyval.number) = (yyvsp[(1) - (3)].number) * 1024 * 1024 + (yyvsp[(3) - (3)].number); }
2956 >  case 41:
2957 > #line 427 "conf_parser.y" /* yacc.c:1646  */
2958 >    { (yyval.number) = (yyvsp[-2].number) * 1024 + (yyvsp[0].number); }
2959 > #line 2960 "conf_parser.c" /* yacc.c:1646  */
2960      break;
2961  
2962 <  case 46:
2962 >  case 42:
2963 > #line 428 "conf_parser.y" /* yacc.c:1646  */
2964 >    { (yyval.number) = (yyvsp[-2].number) * 1024 * 1024 + (yyvsp[0].number); }
2965 > #line 2966 "conf_parser.c" /* yacc.c:1646  */
2966 >    break;
2967  
2968 < /* Line 1455 of yacc.c  */
2969 < #line 477 "ircd_parser.y"
2968 >  case 49:
2969 > #line 442 "conf_parser.y" /* yacc.c:1646  */
2970      {
3569 #ifndef STATIC_MODULES /* NOOP in the static case */
2971    if (conf_parser_ctx.pass == 2)
2972      add_conf_module(libio_basename(yylval.string));
3572 #endif
2973   }
2974 + #line 2975 "conf_parser.c" /* yacc.c:1646  */
2975      break;
2976  
2977 <  case 47:
2978 <
3578 < /* Line 1455 of yacc.c  */
3579 < #line 485 "ircd_parser.y"
2977 >  case 50:
2978 > #line 448 "conf_parser.y" /* yacc.c:1646  */
2979      {
3581 #ifndef STATIC_MODULES
2980    if (conf_parser_ctx.pass == 2)
2981      mod_add_path(yylval.string);
3584 #endif
2982   }
2983 + #line 2984 "conf_parser.c" /* yacc.c:1646  */
2984      break;
2985  
2986 <  case 64:
2987 <
3590 < /* Line 1455 of yacc.c  */
3591 < #line 507 "ircd_parser.y"
2986 >  case 78:
2987 > #line 484 "conf_parser.y" /* yacc.c:1646  */
2988      {
2989 <  if (conf_parser_ctx.boot && conf_parser_ctx.pass == 2)
2990 <    ServerInfo.tls_version = 0;
2989 > #ifdef HAVE_LIBCRYPTO
2990 >  if (conf_parser_ctx.pass == 2 && ServerInfo.client_ctx)
2991 >    SSL_CTX_clear_options(ServerInfo.client_ctx, SSL_OP_NO_SSLv3);
2992 > #endif
2993   }
2994 + #line 2995 "conf_parser.c" /* yacc.c:1646  */
2995      break;
2996  
2997 <  case 65:
2998 <
3600 < /* Line 1455 of yacc.c  */
3601 < #line 511 "ircd_parser.y"
2997 >  case 79:
2998 > #line 490 "conf_parser.y" /* yacc.c:1646  */
2999      {
3000 <  if (conf_parser_ctx.boot && conf_parser_ctx.pass == 2)
3001 <  {
3002 <    if (!(ServerInfo.tls_version & CONF_SERVER_INFO_TLS_VERSION_SSLV3))
3003 <      SSL_CTX_set_options(ServerInfo.server_ctx, SSL_OP_NO_SSLv3);
3607 <    if (!(ServerInfo.tls_version & CONF_SERVER_INFO_TLS_VERSION_TLSV1))
3608 <      SSL_CTX_set_options(ServerInfo.server_ctx, SSL_OP_NO_TLSv1);
3609 <  }
3000 > #ifdef HAVE_LIBCRYPTO
3001 >  if (conf_parser_ctx.pass == 2 && ServerInfo.client_ctx)
3002 >    SSL_CTX_clear_options(ServerInfo.client_ctx, SSL_OP_NO_TLSv1);
3003 > #endif
3004   }
3005 + #line 3006 "conf_parser.c" /* yacc.c:1646  */
3006      break;
3007  
3008 <  case 68:
3009 <
3615 < /* Line 1455 of yacc.c  */
3616 < #line 523 "ircd_parser.y"
3008 >  case 82:
3009 > #line 499 "conf_parser.y" /* yacc.c:1646  */
3010      {
3011 <  if (conf_parser_ctx.boot && conf_parser_ctx.pass == 2)
3012 <    ServerInfo.tls_version |= CONF_SERVER_INFO_TLS_VERSION_SSLV3;
3011 > #ifdef HAVE_LIBCRYPTO
3012 >  if (conf_parser_ctx.pass == 2 && ServerInfo.server_ctx)
3013 >    SSL_CTX_clear_options(ServerInfo.server_ctx, SSL_OP_NO_SSLv3);
3014 > #endif
3015   }
3016 + #line 3017 "conf_parser.c" /* yacc.c:1646  */
3017      break;
3018  
3019 <  case 69:
3020 <
3625 < /* Line 1455 of yacc.c  */
3626 < #line 527 "ircd_parser.y"
3019 >  case 83:
3020 > #line 505 "conf_parser.y" /* yacc.c:1646  */
3021      {
3022 <  if (conf_parser_ctx.boot && conf_parser_ctx.pass == 2)
3023 <    ServerInfo.tls_version |= CONF_SERVER_INFO_TLS_VERSION_TLSV1;
3022 > #ifdef HAVE_LIBCRYPTO
3023 >  if (conf_parser_ctx.pass == 2 && ServerInfo.server_ctx)
3024 >    SSL_CTX_clear_options(ServerInfo.server_ctx, SSL_OP_NO_TLSv1);
3025 > #endif
3026   }
3027 + #line 3028 "conf_parser.c" /* yacc.c:1646  */
3028      break;
3029  
3030 <  case 70:
3031 <
3635 < /* Line 1455 of yacc.c  */
3636 < #line 533 "ircd_parser.y"
3030 >  case 84:
3031 > #line 513 "conf_parser.y" /* yacc.c:1646  */
3032      {
3033   #ifdef HAVE_LIBCRYPTO
3034 <  if (conf_parser_ctx.pass == 2 && ServerInfo.server_ctx)
3034 >  if (conf_parser_ctx.pass == 2 && ServerInfo.server_ctx)
3035    {
3036      if (!ServerInfo.rsa_private_key_file)
3037      {
3038 <      yyerror("No rsa_private_key_file specified, SSL disabled");
3038 >      conf_error_report("No rsa_private_key_file specified, SSL disabled");
3039        break;
3040      }
3041  
3042      if (SSL_CTX_use_certificate_file(ServerInfo.server_ctx, yylval.string,
3043 +                                     SSL_FILETYPE_PEM) <= 0 ||
3044 +        SSL_CTX_use_certificate_file(ServerInfo.client_ctx, yylval.string,
3045                                       SSL_FILETYPE_PEM) <= 0)
3046      {
3047 <      yyerror(ERR_lib_error_string(ERR_get_error()));
3047 >      report_crypto_errors();
3048 >      conf_error_report("Could not open/read certificate file");
3049        break;
3050      }
3051  
3052      if (SSL_CTX_use_PrivateKey_file(ServerInfo.server_ctx, ServerInfo.rsa_private_key_file,
3053 +                                    SSL_FILETYPE_PEM) <= 0 ||
3054 +        SSL_CTX_use_PrivateKey_file(ServerInfo.client_ctx, ServerInfo.rsa_private_key_file,
3055                                      SSL_FILETYPE_PEM) <= 0)
3056      {
3057 <      yyerror(ERR_lib_error_string(ERR_get_error()));
3057 >      report_crypto_errors();
3058 >      conf_error_report("Could not read RSA private key");
3059        break;
3060      }
3061  
3062 <    if (!SSL_CTX_check_private_key(ServerInfo.server_ctx))
3062 >    if (!SSL_CTX_check_private_key(ServerInfo.server_ctx) ||
3063 >        !SSL_CTX_check_private_key(ServerInfo.client_ctx))
3064      {
3065 <      yyerror(ERR_lib_error_string(ERR_get_error()));
3065 >      report_crypto_errors();
3066 >      conf_error_report("Could not read RSA private key");
3067        break;
3068      }
3069    }
3070   #endif
3071   }
3072 + #line 3073 "conf_parser.c" /* yacc.c:1646  */
3073      break;
3074  
3075 <  case 71:
3076 <
3673 < /* Line 1455 of yacc.c  */
3674 < #line 567 "ircd_parser.y"
3075 >  case 85:
3076 > #line 555 "conf_parser.y" /* yacc.c:1646  */
3077      {
3078   #ifdef HAVE_LIBCRYPTO
3079 <  if (conf_parser_ctx.pass == 1)
3079 >  BIO *file = NULL;
3080 >
3081 >  if (conf_parser_ctx.pass != 1)
3082 >    break;
3083 >
3084 >  if (ServerInfo.rsa_private_key)
3085    {
3086 <    BIO *file;
3086 >    RSA_free(ServerInfo.rsa_private_key);
3087 >    ServerInfo.rsa_private_key = NULL;
3088 >  }
3089  
3090 <    if (ServerInfo.rsa_private_key)
3091 <    {
3092 <      RSA_free(ServerInfo.rsa_private_key);
3093 <      ServerInfo.rsa_private_key = NULL;
3094 <    }
3090 >  if (ServerInfo.rsa_private_key_file)
3091 >  {
3092 >    MyFree(ServerInfo.rsa_private_key_file);
3093 >    ServerInfo.rsa_private_key_file = NULL;
3094 >  }
3095  
3096 <    if (ServerInfo.rsa_private_key_file)
3688 <    {
3689 <      MyFree(ServerInfo.rsa_private_key_file);
3690 <      ServerInfo.rsa_private_key_file = NULL;
3691 <    }
3096 >  ServerInfo.rsa_private_key_file = xstrdup(yylval.string);
3097  
3098 <    DupString(ServerInfo.rsa_private_key_file, yylval.string);
3098 >  if ((file = BIO_new_file(yylval.string, "r")) == NULL)
3099 >  {
3100 >    conf_error_report("File open failed, ignoring");
3101 >    break;
3102 >  }
3103  
3104 <    if ((file = BIO_new_file(yylval.string, "r")) == NULL)
3696 <    {
3697 <      yyerror("File open failed, ignoring");
3698 <      break;
3699 <    }
3104 >  ServerInfo.rsa_private_key = PEM_read_bio_RSAPrivateKey(file, NULL, 0, NULL);
3105  
3106 <    ServerInfo.rsa_private_key = (RSA *)PEM_read_bio_RSAPrivateKey(file, NULL,
3107 <      0, NULL);
3106 >  BIO_set_close(file, BIO_CLOSE);
3107 >  BIO_free(file);
3108 >
3109 >  if (ServerInfo.rsa_private_key == NULL)
3110 >  {
3111 >    conf_error_report("Couldn't extract key, ignoring");
3112 >    break;
3113 >  }
3114  
3115 <    BIO_set_close(file, BIO_CLOSE);
3116 <    BIO_free(file);
3115 >  if (!RSA_check_key(ServerInfo.rsa_private_key))
3116 >  {
3117 >    RSA_free(ServerInfo.rsa_private_key);
3118 >    ServerInfo.rsa_private_key = NULL;
3119  
3120 <    if (ServerInfo.rsa_private_key == NULL)
3120 >    conf_error_report("Invalid key, ignoring");
3121 >    break;
3122 >  }
3123 >
3124 >  if (RSA_size(ServerInfo.rsa_private_key) < 128)
3125 >  {
3126 >    RSA_free(ServerInfo.rsa_private_key);
3127 >    ServerInfo.rsa_private_key = NULL;
3128 >
3129 >    conf_error_report("Ignoring serverinfo::rsa_private_key_file -- need at least a 1024 bit key size");
3130 >  }
3131 > #endif
3132 > }
3133 > #line 3134 "conf_parser.c" /* yacc.c:1646  */
3134 >    break;
3135 >
3136 >  case 86:
3137 > #line 613 "conf_parser.y" /* yacc.c:1646  */
3138      {
3139 <      yyerror("Couldn't extract key, ignoring");
3140 <      break;
3141 <    }
3139 > /* TBD - XXX: error reporting */
3140 > #ifdef HAVE_LIBCRYPTO
3141 >  if (conf_parser_ctx.pass == 2 && ServerInfo.server_ctx)
3142 >  {
3143 >    BIO *file = BIO_new_file(yylval.string, "r");
3144  
3145 <    if (!RSA_check_key(ServerInfo.rsa_private_key))
3145 >    if (file)
3146      {
3147 <      RSA_free(ServerInfo.rsa_private_key);
3716 <      ServerInfo.rsa_private_key = NULL;
3147 >      DH *dh = PEM_read_bio_DHparams(file, NULL, NULL, NULL);
3148  
3149 <      yyerror("Invalid key, ignoring");
3150 <      break;
3149 >      BIO_free(file);
3150 >
3151 >      if (dh)
3152 >      {
3153 >        if (DH_size(dh) < 128)
3154 >          conf_error_report("Ignoring serverinfo::ssl_dh_param_file -- need at least a 1024 bit DH prime size");
3155 >        else
3156 >          SSL_CTX_set_tmp_dh(ServerInfo.server_ctx, dh);
3157 >
3158 >        DH_free(dh);
3159 >      }
3160      }
3161 +  }
3162 + #endif
3163 + }
3164 + #line 3165 "conf_parser.c" /* yacc.c:1646  */
3165 +    break;
3166  
3167 <    /* require 2048 bit (256 byte) key */
3168 <    if (RSA_size(ServerInfo.rsa_private_key) != 256)
3167 >  case 87:
3168 > #line 641 "conf_parser.y" /* yacc.c:1646  */
3169      {
3170 <      RSA_free(ServerInfo.rsa_private_key);
3171 <      ServerInfo.rsa_private_key = NULL;
3170 > #ifdef HAVE_LIBCRYPTO
3171 >  if (conf_parser_ctx.pass == 2 && ServerInfo.server_ctx)
3172 >    SSL_CTX_set_cipher_list(ServerInfo.server_ctx, yylval.string);
3173 > #endif
3174 > }
3175 > #line 3176 "conf_parser.c" /* yacc.c:1646  */
3176 >    break;
3177  
3178 <      yyerror("Not a 2048 bit key, ignoring");
3179 <    }
3178 >  case 88:
3179 > #line 649 "conf_parser.y" /* yacc.c:1646  */
3180 >    {
3181 > #ifdef HAVE_LIBCRYPTO
3182 >  if (conf_parser_ctx.pass == 2 && ServerInfo.server_ctx)
3183 >  {
3184 >    if ((ServerInfo.message_digest_algorithm = EVP_get_digestbyname(yylval.string)) == NULL)
3185 >      conf_error_report("Ignoring serverinfo::ssl_message_digest_algorithm -- unknown message digest algorithm");
3186 >    else
3187 >      ServerInfo.message_digest_algorithm = EVP_sha256();
3188    }
3189   #endif
3190   }
3191 + #line 3192 "conf_parser.c" /* yacc.c:1646  */
3192      break;
3193  
3194 <  case 72:
3194 >  case 89:
3195 > #line 662 "conf_parser.y" /* yacc.c:1646  */
3196 >    {
3197 > #ifdef HAVE_LIBCRYPTO
3198 > #if OPENSSL_VERSION_NUMBER >= 0x1000005FL && !defined(OPENSSL_NO_ECDH)
3199 >  int nid = 0;
3200 >  EC_KEY *key = NULL;
3201 >
3202 >  if (conf_parser_ctx.pass == 2 && ServerInfo.server_ctx)
3203 >  {
3204 >    if ((nid = OBJ_sn2nid(yylval.string)) == 0)
3205 >    {
3206 >        conf_error_report("Ignoring serverinfo::serverinfo_ssl_dh_elliptic_curve -- unknown curve name");
3207 >        break;
3208 >    }
3209  
3210 < /* Line 1455 of yacc.c  */
3211 < #line 627 "ircd_parser.y"
3210 >    if ((key = EC_KEY_new_by_curve_name(nid)) == NULL)
3211 >    {
3212 >      conf_error_report("Ignoring serverinfo::serverinfo_ssl_dh_elliptic_curve -- could not create curve");
3213 >      break;
3214 >    }
3215 >
3216 >    SSL_CTX_set_tmp_ecdh(ServerInfo.server_ctx, key);
3217 >    EC_KEY_free(key);
3218 > }
3219 > #endif
3220 > #endif
3221 > }
3222 > #line 3223 "conf_parser.c" /* yacc.c:1646  */
3223 >    break;
3224 >
3225 >  case 90:
3226 > #line 690 "conf_parser.y" /* yacc.c:1646  */
3227      {
3228    /* this isn't rehashable */
3229 <  if (conf_parser_ctx.pass == 2)
3229 >  if (conf_parser_ctx.pass == 2 && !ServerInfo.name)
3230    {
3231 <    if (ServerInfo.name == NULL)
3231 >    if (valid_servname(yylval.string))
3232 >      ServerInfo.name = xstrdup(yylval.string);
3233 >    else
3234      {
3235 <      /* the ircd will exit() in main() if we dont set one */
3236 <      if (strlen(yylval.string) <= HOSTLEN)
3747 <        DupString(ServerInfo.name, yylval.string);
3235 >      conf_error_report("Ignoring serverinfo::name -- invalid name. Aborting.");
3236 >      exit(0);
3237      }
3238    }
3239   }
3240 + #line 3241 "conf_parser.c" /* yacc.c:1646  */
3241      break;
3242  
3243 <  case 73:
3244 <
3755 < /* Line 1455 of yacc.c  */
3756 < #line 641 "ircd_parser.y"
3243 >  case 91:
3244 > #line 705 "conf_parser.y" /* yacc.c:1646  */
3245      {
3246    /* this isn't rehashable */
3247    if (conf_parser_ctx.pass == 2 && !ServerInfo.sid)
3248    {
3249      if (valid_sid(yylval.string))
3250 <      DupString(ServerInfo.sid, yylval.string);
3250 >      ServerInfo.sid = xstrdup(yylval.string);
3251      else
3252      {
3253 <      ilog(L_ERROR, "Ignoring config file entry SID -- invalid SID. Aborting.");
3253 >      conf_error_report("Ignoring serverinfo::sid -- invalid SID. Aborting.");
3254        exit(0);
3255      }
3256    }
3257   }
3258 + #line 3259 "conf_parser.c" /* yacc.c:1646  */
3259      break;
3260  
3261 <  case 74:
3262 <
3774 < /* Line 1455 of yacc.c  */
3775 < #line 656 "ircd_parser.y"
3261 >  case 92:
3262 > #line 720 "conf_parser.y" /* yacc.c:1646  */
3263      {
3264    if (conf_parser_ctx.pass == 2)
3265    {
3266      MyFree(ServerInfo.description);
3267 <    DupString(ServerInfo.description,yylval.string);
3267 >    ServerInfo.description = xstrdup(yylval.string);
3268    }
3269   }
3270 + #line 3271 "conf_parser.c" /* yacc.c:1646  */
3271      break;
3272  
3273 <  case 75:
3274 <
3787 < /* Line 1455 of yacc.c  */
3788 < #line 665 "ircd_parser.y"
3273 >  case 93:
3274 > #line 729 "conf_parser.y" /* yacc.c:1646  */
3275      {
3276    if (conf_parser_ctx.pass == 2)
3277    {
3278      char *p;
3279  
3280 <    if ((p = strchr(yylval.string, ' ')) != NULL)
3281 <      p = '\0';
3280 >    if ((p = strchr(yylval.string, ' ')))
3281 >      *p = '\0';
3282  
3283      MyFree(ServerInfo.network_name);
3284 <    DupString(ServerInfo.network_name, yylval.string);
3284 >    ServerInfo.network_name = xstrdup(yylval.string);
3285    }
3286   }
3287 + #line 3288 "conf_parser.c" /* yacc.c:1646  */
3288      break;
3289  
3290 <  case 76:
3291 <
3805 < /* Line 1455 of yacc.c  */
3806 < #line 679 "ircd_parser.y"
3290 >  case 94:
3291 > #line 743 "conf_parser.y" /* yacc.c:1646  */
3292      {
3293 <  if (conf_parser_ctx.pass == 2)
3809 <  {
3810 <    MyFree(ServerInfo.network_desc);
3811 <    DupString(ServerInfo.network_desc, yylval.string);
3812 <  }
3813 < }
3293 >  if (conf_parser_ctx.pass != 2)
3294      break;
3295  
3296 <  case 77:
3296 >  MyFree(ServerInfo.network_desc);
3297 >  ServerInfo.network_desc = xstrdup(yylval.string);
3298 > }
3299 > #line 3300 "conf_parser.c" /* yacc.c:1646  */
3300 >    break;
3301  
3302 < /* Line 1455 of yacc.c  */
3303 < #line 688 "ircd_parser.y"
3302 >  case 95:
3303 > #line 752 "conf_parser.y" /* yacc.c:1646  */
3304      {
3305    if (conf_parser_ctx.pass == 2 && *yylval.string != '*')
3306    {
# Line 3828 | Line 3312 | yyreduce:
3312      hints.ai_socktype = SOCK_STREAM;
3313      hints.ai_flags    = AI_PASSIVE | AI_NUMERICHOST;
3314  
3315 <    if (irc_getaddrinfo(yylval.string, NULL, &hints, &res))
3316 <      ilog(L_ERROR, "Invalid netmask for server vhost(%s)", yylval.string);
3315 >    if (getaddrinfo(yylval.string, NULL, &hints, &res))
3316 >      ilog(LOG_TYPE_IRCD, "Invalid netmask for server vhost(%s)", yylval.string);
3317      else
3318      {
3319 <      assert(res != NULL);
3319 >      assert(res);
3320  
3321        memcpy(&ServerInfo.ip, res->ai_addr, res->ai_addrlen);
3322        ServerInfo.ip.ss.ss_family = res->ai_family;
3323        ServerInfo.ip.ss_len = res->ai_addrlen;
3324 <      irc_freeaddrinfo(res);
3324 >      freeaddrinfo(res);
3325  
3326        ServerInfo.specific_ipv4_vhost = 1;
3327      }
3328    }
3329   }
3330 + #line 3331 "conf_parser.c" /* yacc.c:1646  */
3331      break;
3332  
3333 <  case 78:
3334 <
3850 < /* Line 1455 of yacc.c  */
3851 < #line 716 "ircd_parser.y"
3333 >  case 96:
3334 > #line 780 "conf_parser.y" /* yacc.c:1646  */
3335      {
3336   #ifdef IPV6
3337    if (conf_parser_ctx.pass == 2 && *yylval.string != '*')
# Line 3861 | Line 3344 | yyreduce:
3344      hints.ai_socktype = SOCK_STREAM;
3345      hints.ai_flags    = AI_PASSIVE | AI_NUMERICHOST;
3346  
3347 <    if (irc_getaddrinfo(yylval.string, NULL, &hints, &res))
3348 <      ilog(L_ERROR, "Invalid netmask for server vhost6(%s)", yylval.string);
3347 >    if (getaddrinfo(yylval.string, NULL, &hints, &res))
3348 >      ilog(LOG_TYPE_IRCD, "Invalid netmask for server vhost6(%s)", yylval.string);
3349      else
3350      {
3351 <      assert(res != NULL);
3351 >      assert(res);
3352  
3353        memcpy(&ServerInfo.ip6, res->ai_addr, res->ai_addrlen);
3354        ServerInfo.ip6.ss.ss_family = res->ai_family;
3355        ServerInfo.ip6.ss_len = res->ai_addrlen;
3356 <      irc_freeaddrinfo(res);
3356 >      freeaddrinfo(res);
3357  
3358        ServerInfo.specific_ipv6_vhost = 1;
3359      }
3360    }
3361   #endif
3362   }
3363 + #line 3364 "conf_parser.c" /* yacc.c:1646  */
3364      break;
3365  
3366 <  case 79:
3367 <
3884 < /* Line 1455 of yacc.c  */
3885 < #line 746 "ircd_parser.y"
3366 >  case 97:
3367 > #line 810 "conf_parser.y" /* yacc.c:1646  */
3368      {
3369 <  if (conf_parser_ctx.pass == 2)
3888 <  {
3889 <    recalc_fdlimit(NULL);
3890 <
3891 <    if ((yyvsp[(3) - (4)].number) < MAXCLIENTS_MIN)
3892 <    {
3893 <      char buf[IRCD_BUFSIZE];
3894 <      ircsprintf(buf, "MAXCLIENTS too low, setting to %d", MAXCLIENTS_MIN);
3895 <      yyerror(buf);
3896 <    }
3897 <    else if ((yyvsp[(3) - (4)].number) > MAXCLIENTS_MAX)
3898 <    {
3899 <      char buf[IRCD_BUFSIZE];
3900 <      ircsprintf(buf, "MAXCLIENTS too high, setting to %d", MAXCLIENTS_MAX);
3901 <      yyerror(buf);
3902 <    }
3903 <    else
3904 <      ServerInfo.max_clients = (yyvsp[(3) - (4)].number);
3905 <  }
3906 < }
3369 >  if (conf_parser_ctx.pass != 2)
3370      break;
3371  
3372 <  case 80:
3372 >  if ((yyvsp[-1].number) < MAXCLIENTS_MIN)
3373 >  {
3374 >    char buf[IRCD_BUFSIZE] = "";
3375  
3376 < /* Line 1455 of yacc.c  */
3377 < #line 769 "ircd_parser.y"
3378 <    {
3379 <  if (conf_parser_ctx.pass == 2)
3376 >    snprintf(buf, sizeof(buf), "MAXCLIENTS too low, setting to %d", MAXCLIENTS_MIN);
3377 >    conf_error_report(buf);
3378 >    ServerInfo.max_clients = MAXCLIENTS_MIN;
3379 >  }
3380 >  else if ((yyvsp[-1].number) > MAXCLIENTS_MAX)
3381    {
3382 <    if (yylval.number)
3917 <    {
3918 <      ServerInfo.hub = 1;
3919 <      delete_capability("HUB");
3920 <      add_capability("HUB", CAP_HUB, 1);
3921 <    }
3922 <    else if (ServerInfo.hub)
3923 <    {
3382 >    char buf[IRCD_BUFSIZE] = "";
3383  
3384 <      ServerInfo.hub = 0;
3385 <      delete_capability("HUB");
3386 <    }
3384 >    snprintf(buf, sizeof(buf), "MAXCLIENTS too high, setting to %d", MAXCLIENTS_MAX);
3385 >    conf_error_report(buf);
3386 >    ServerInfo.max_clients = MAXCLIENTS_MAX;
3387    }
3388 +  else
3389 +    ServerInfo.max_clients = (yyvsp[-1].number);
3390   }
3391 + #line 3392 "conf_parser.c" /* yacc.c:1646  */
3392      break;
3393  
3394 <  case 88:
3395 <
3934 < /* Line 1455 of yacc.c  */
3935 < #line 797 "ircd_parser.y"
3394 >  case 98:
3395 > #line 835 "conf_parser.y" /* yacc.c:1646  */
3396      {
3397 <  if (conf_parser_ctx.pass == 2)
3397 >  if (conf_parser_ctx.pass != 2)
3398 >    break;
3399 >
3400 >  if ((yyvsp[-1].number) < 9)
3401    {
3402 <    MyFree(AdminInfo.name);
3403 <    DupString(AdminInfo.name, yylval.string);
3402 >    conf_error_report("max_nick_length too low, setting to 9");
3403 >    ServerInfo.max_nick_length = 9;
3404    }
3405 +  else if ((yyvsp[-1].number) > NICKLEN)
3406 +  {
3407 +    char buf[IRCD_BUFSIZE] = "";
3408 +
3409 +    snprintf(buf, sizeof(buf), "max_nick_length too high, setting to %d", NICKLEN);
3410 +    conf_error_report(buf);
3411 +    ServerInfo.max_nick_length = NICKLEN;
3412 +  }
3413 +  else
3414 +    ServerInfo.max_nick_length = (yyvsp[-1].number);
3415   }
3416 + #line 3417 "conf_parser.c" /* yacc.c:1646  */
3417      break;
3418  
3419 <  case 89:
3420 <
3947 < /* Line 1455 of yacc.c  */
3948 < #line 806 "ircd_parser.y"
3419 >  case 99:
3420 > #line 857 "conf_parser.y" /* yacc.c:1646  */
3421      {
3422 <  if (conf_parser_ctx.pass == 2)
3422 >  if (conf_parser_ctx.pass != 2)
3423 >    break;
3424 >
3425 >  if ((yyvsp[-1].number) < 80)
3426    {
3427 <    MyFree(AdminInfo.email);
3428 <    DupString(AdminInfo.email, yylval.string);
3427 >    conf_error_report("max_topic_length too low, setting to 80");
3428 >    ServerInfo.max_topic_length = 80;
3429    }
3430 +  else if ((yyvsp[-1].number) > TOPICLEN)
3431 +  {
3432 +    char buf[IRCD_BUFSIZE] = "";
3433 +
3434 +    snprintf(buf, sizeof(buf), "max_topic_length too high, setting to %d", TOPICLEN);
3435 +    conf_error_report(buf);
3436 +    ServerInfo.max_topic_length = TOPICLEN;
3437 +  }
3438 +  else
3439 +    ServerInfo.max_topic_length = (yyvsp[-1].number);
3440   }
3441 + #line 3442 "conf_parser.c" /* yacc.c:1646  */
3442      break;
3443  
3444 <  case 90:
3445 <
3960 < /* Line 1455 of yacc.c  */
3961 < #line 815 "ircd_parser.y"
3444 >  case 100:
3445 > #line 879 "conf_parser.y" /* yacc.c:1646  */
3446      {
3447    if (conf_parser_ctx.pass == 2)
3448 <  {
3965 <    MyFree(AdminInfo.description);
3966 <    DupString(AdminInfo.description, yylval.string);
3967 <  }
3448 >    ServerInfo.hub = yylval.number;
3449   }
3450 + #line 3451 "conf_parser.c" /* yacc.c:1646  */
3451      break;
3452  
3453 <  case 107:
3454 <
3973 < /* Line 1455 of yacc.c  */
3974 < #line 842 "ircd_parser.y"
3453 >  case 108:
3454 > #line 896 "conf_parser.y" /* yacc.c:1646  */
3455      {
3456 <                        }
3456 >  if (conf_parser_ctx.pass != 2)
3457      break;
3458  
3459 <  case 108:
3460 <
3461 < /* Line 1455 of yacc.c  */
3462 < #line 846 "ircd_parser.y"
3983 <    {
3984 <                        }
3459 >  MyFree(AdminInfo.name);
3460 >  AdminInfo.name = xstrdup(yylval.string);
3461 > }
3462 > #line 3463 "conf_parser.c" /* yacc.c:1646  */
3463      break;
3464  
3465    case 109:
3466 <
3989 < /* Line 1455 of yacc.c  */
3990 < #line 850 "ircd_parser.y"
3466 > #line 905 "conf_parser.y" /* yacc.c:1646  */
3467      {
3468 <  if (conf_parser_ctx.pass == 2)
3469 <    strlcpy(ConfigLoggingEntry.userlog, yylval.string,
3470 <            sizeof(ConfigLoggingEntry.userlog));
3468 >  if (conf_parser_ctx.pass != 2)
3469 >    break;
3470 >
3471 >  MyFree(AdminInfo.email);
3472 >  AdminInfo.email = xstrdup(yylval.string);
3473   }
3474 + #line 3475 "conf_parser.c" /* yacc.c:1646  */
3475      break;
3476  
3477    case 110:
3478 <
4000 < /* Line 1455 of yacc.c  */
4001 < #line 857 "ircd_parser.y"
3478 > #line 914 "conf_parser.y" /* yacc.c:1646  */
3479      {
3480 <  if (conf_parser_ctx.pass == 2)
3481 <    strlcpy(ConfigLoggingEntry.failed_operlog, yylval.string,
3482 <            sizeof(ConfigLoggingEntry.failed_operlog));
3480 >  if (conf_parser_ctx.pass != 2)
3481 >    break;
3482 >
3483 >  MyFree(AdminInfo.description);
3484 >  AdminInfo.description = xstrdup(yylval.string);
3485   }
3486 + #line 3487 "conf_parser.c" /* yacc.c:1646  */
3487      break;
3488  
3489    case 111:
3490 <
4011 < /* Line 1455 of yacc.c  */
4012 < #line 864 "ircd_parser.y"
3490 > #line 926 "conf_parser.y" /* yacc.c:1646  */
3491      {
3492    if (conf_parser_ctx.pass == 2)
3493 <    strlcpy(ConfigLoggingEntry.operlog, yylval.string,
4016 <            sizeof(ConfigLoggingEntry.operlog));
3493 >    reset_block_state();
3494   }
3495 + #line 3496 "conf_parser.c" /* yacc.c:1646  */
3496      break;
3497  
3498    case 112:
3499 <
4022 < /* Line 1455 of yacc.c  */
4023 < #line 871 "ircd_parser.y"
3499 > #line 930 "conf_parser.y" /* yacc.c:1646  */
3500      {
3501 <  if (conf_parser_ctx.pass == 2)
3502 <    strlcpy(ConfigLoggingEntry.operspylog, yylval.string,
3503 <            sizeof(ConfigLoggingEntry.operspylog));
4028 < }
3501 >  dlink_node *ptr = NULL;
3502 >
3503 >  if (conf_parser_ctx.pass != 2)
3504      break;
3505  
3506 <  case 113:
3506 >  if (!block_state.file.buf[0])
3507 >    break;
3508  
3509 < /* Line 1455 of yacc.c  */
3510 < #line 878 "ircd_parser.y"
4035 <    {
4036 <  if (conf_parser_ctx.pass == 2)
4037 <    strlcpy(ConfigLoggingEntry.glinelog, yylval.string,
4038 <            sizeof(ConfigLoggingEntry.glinelog));
3509 >  DLINK_FOREACH(ptr, block_state.mask.list.head)
3510 >    motd_add(ptr->data, block_state.file.buf);
3511   }
3512 + #line 3513 "conf_parser.c" /* yacc.c:1646  */
3513      break;
3514  
3515 <  case 114:
3516 <
4044 < /* Line 1455 of yacc.c  */
4045 < #line 885 "ircd_parser.y"
3515 >  case 118:
3516 > #line 947 "conf_parser.y" /* yacc.c:1646  */
3517      {
3518    if (conf_parser_ctx.pass == 2)
3519 <    strlcpy(ConfigLoggingEntry.klinelog, yylval.string,
4049 <            sizeof(ConfigLoggingEntry.klinelog));
3519 >    dlinkAdd(xstrdup(yylval.string), make_dlink_node(), &block_state.mask.list);
3520   }
3521 + #line 3522 "conf_parser.c" /* yacc.c:1646  */
3522      break;
3523  
3524 <  case 115:
3525 <
4055 < /* Line 1455 of yacc.c  */
4056 < #line 892 "ircd_parser.y"
3524 >  case 119:
3525 > #line 953 "conf_parser.y" /* yacc.c:1646  */
3526      {
3527    if (conf_parser_ctx.pass == 2)
3528 <    strlcpy(ConfigLoggingEntry.ioerrlog, yylval.string,
4060 <            sizeof(ConfigLoggingEntry.ioerrlog));
3528 >    strlcpy(block_state.file.buf, yylval.string, sizeof(block_state.file.buf));
3529   }
3530 + #line 3531 "conf_parser.c" /* yacc.c:1646  */
3531      break;
3532  
3533 <  case 116:
3534 <
4066 < /* Line 1455 of yacc.c  */
4067 < #line 899 "ircd_parser.y"
3533 >  case 126:
3534 > #line 968 "conf_parser.y" /* yacc.c:1646  */
3535      {
3536    if (conf_parser_ctx.pass == 2)
3537 <    strlcpy(ConfigLoggingEntry.killlog, yylval.string,
4071 <            sizeof(ConfigLoggingEntry.killlog));
3537 >    ConfigLoggingEntry.use_logging = yylval.number;
3538   }
3539 + #line 3540 "conf_parser.c" /* yacc.c:1646  */
3540      break;
3541  
3542 <  case 117:
3543 <
3544 < /* Line 1455 of yacc.c  */
4078 < #line 906 "ircd_parser.y"
4079 <    {
3542 >  case 127:
3543 > #line 974 "conf_parser.y" /* yacc.c:1646  */
3544 >    {
3545    if (conf_parser_ctx.pass == 2)
3546 <    set_log_level(L_CRIT);
3546 >    reset_block_state();
3547   }
3548 + #line 3549 "conf_parser.c" /* yacc.c:1646  */
3549      break;
3550  
3551 <  case 118:
3552 <
4087 < /* Line 1455 of yacc.c  */
4088 < #line 910 "ircd_parser.y"
3551 >  case 128:
3552 > #line 978 "conf_parser.y" /* yacc.c:1646  */
3553      {
3554 <  if (conf_parser_ctx.pass == 2)
4091 <    set_log_level(L_ERROR);
4092 < }
3554 >  if (conf_parser_ctx.pass != 2)
3555      break;
3556  
3557 <  case 119:
3557 >  if (block_state.type.value && block_state.file.buf[0])
3558 >    log_set_file(block_state.type.value, block_state.size.value,
3559 >                 block_state.file.buf);
3560 > }
3561 > #line 3562 "conf_parser.c" /* yacc.c:1646  */
3562 >    break;
3563  
3564 < /* Line 1455 of yacc.c  */
3565 < #line 914 "ircd_parser.y"
3564 >  case 135:
3565 > #line 994 "conf_parser.y" /* yacc.c:1646  */
3566      {
3567 <  if (conf_parser_ctx.pass == 2)
4101 <    set_log_level(L_WARN);
4102 < }
3567 >  if (conf_parser_ctx.pass != 2)
3568      break;
3569  
3570 <  case 120:
3570 >  strlcpy(block_state.file.buf, yylval.string, sizeof(block_state.file.buf));
3571 > }
3572 > #line 3573 "conf_parser.c" /* yacc.c:1646  */
3573 >    break;
3574  
3575 < /* Line 1455 of yacc.c  */
3576 < #line 918 "ircd_parser.y"
3575 >  case 136:
3576 > #line 1002 "conf_parser.y" /* yacc.c:1646  */
3577      {
3578 <  if (conf_parser_ctx.pass == 2)
4111 <    set_log_level(L_NOTICE);
3578 >  block_state.size.value = (yyvsp[-1].number);
3579   }
3580 + #line 3581 "conf_parser.c" /* yacc.c:1646  */
3581      break;
3582  
3583 <  case 121:
3584 <
4117 < /* Line 1455 of yacc.c  */
4118 < #line 922 "ircd_parser.y"
3583 >  case 137:
3584 > #line 1005 "conf_parser.y" /* yacc.c:1646  */
3585      {
3586 <  if (conf_parser_ctx.pass == 2)
4121 <    set_log_level(L_TRACE);
3586 >  block_state.size.value = 0;
3587   }
3588 + #line 3589 "conf_parser.c" /* yacc.c:1646  */
3589      break;
3590  
3591 <  case 122:
3592 <
4127 < /* Line 1455 of yacc.c  */
4128 < #line 926 "ircd_parser.y"
3591 >  case 138:
3592 > #line 1010 "conf_parser.y" /* yacc.c:1646  */
3593      {
3594    if (conf_parser_ctx.pass == 2)
3595 <    set_log_level(L_INFO);
3595 >    block_state.type.value = 0;
3596   }
3597 + #line 3598 "conf_parser.c" /* yacc.c:1646  */
3598      break;
3599  
3600 <  case 123:
3601 <
4137 < /* Line 1455 of yacc.c  */
4138 < #line 930 "ircd_parser.y"
3600 >  case 142:
3601 > #line 1017 "conf_parser.y" /* yacc.c:1646  */
3602      {
3603    if (conf_parser_ctx.pass == 2)
3604 <    set_log_level(L_DEBUG);
3604 >    block_state.type.value = LOG_TYPE_USER;
3605   }
3606 + #line 3607 "conf_parser.c" /* yacc.c:1646  */
3607      break;
3608  
3609 <  case 124:
3610 <
4147 < /* Line 1455 of yacc.c  */
4148 < #line 936 "ircd_parser.y"
3609 >  case 143:
3610 > #line 1021 "conf_parser.y" /* yacc.c:1646  */
3611      {
3612    if (conf_parser_ctx.pass == 2)
3613 <    ConfigLoggingEntry.use_logging = yylval.number;
3613 >    block_state.type.value = LOG_TYPE_OPER;
3614   }
3615 + #line 3616 "conf_parser.c" /* yacc.c:1646  */
3616      break;
3617  
3618 <  case 125:
3619 <
4157 < /* Line 1455 of yacc.c  */
4158 < #line 945 "ircd_parser.y"
3618 >  case 144:
3619 > #line 1025 "conf_parser.y" /* yacc.c:1646  */
3620      {
3621    if (conf_parser_ctx.pass == 2)
3622 <  {
4162 <    yy_conf = make_conf_item(OPER_TYPE);
4163 <    yy_aconf = map_to_conf(yy_conf);
4164 <    SetConfEncrypted(yy_aconf); /* Yes, the default is encrypted */
4165 <  }
4166 <  else
4167 <  {
4168 <    MyFree(class_name);
4169 <    class_name = NULL;
4170 <  }
3622 >    block_state.type.value = LOG_TYPE_GLINE;
3623   }
3624 + #line 3625 "conf_parser.c" /* yacc.c:1646  */
3625      break;
3626  
3627 <  case 126:
3628 <
4176 < /* Line 1455 of yacc.c  */
4177 < #line 958 "ircd_parser.y"
3627 >  case 145:
3628 > #line 1029 "conf_parser.y" /* yacc.c:1646  */
3629      {
3630    if (conf_parser_ctx.pass == 2)
3631 <  {
4181 <    struct CollectItem *yy_tmp;
4182 <    dlink_node *ptr;
4183 <    dlink_node *next_ptr;
4184 <
4185 <    conf_add_class_to_conf(yy_conf, class_name);
4186 <
4187 <    /* Now, make sure there is a copy of the "base" given oper
4188 <     * block in each of the collected copies
4189 <     */
4190 <
4191 <    DLINK_FOREACH_SAFE(ptr, next_ptr, col_conf_list.head)
4192 <    {
4193 <      struct AccessItem *new_aconf;
4194 <      struct ConfItem *new_conf;
4195 <      yy_tmp = ptr->data;
4196 <
4197 <      new_conf = make_conf_item(OPER_TYPE);
4198 <      new_aconf = (struct AccessItem *)map_to_conf(new_conf);
4199 <
4200 <      new_aconf->flags = yy_aconf->flags;
4201 <
4202 <      if (yy_conf->name != NULL)
4203 <        DupString(new_conf->name, yy_conf->name);
4204 <      if (yy_tmp->user != NULL)
4205 <        DupString(new_aconf->user, yy_tmp->user);
4206 <      else
4207 <        DupString(new_aconf->user, "*");
4208 <      if (yy_tmp->host != NULL)
4209 <        DupString(new_aconf->host, yy_tmp->host);
4210 <      else
4211 <        DupString(new_aconf->host, "*");
4212 <      conf_add_class_to_conf(new_conf, class_name);
4213 <      if (yy_aconf->passwd != NULL)
4214 <        DupString(new_aconf->passwd, yy_aconf->passwd);
4215 <
4216 <      new_aconf->port = yy_aconf->port;
4217 < #ifdef HAVE_LIBCRYPTO
4218 <      if (yy_aconf->rsa_public_key_file != NULL)
4219 <      {
4220 <        BIO *file;
4221 <
4222 <        DupString(new_aconf->rsa_public_key_file,
4223 <                  yy_aconf->rsa_public_key_file);
4224 <
4225 <        file = BIO_new_file(yy_aconf->rsa_public_key_file, "r");
4226 <        new_aconf->rsa_public_key = (RSA *)PEM_read_bio_RSA_PUBKEY(file,
4227 <                                                           NULL, 0, NULL);
4228 <        BIO_set_close(file, BIO_CLOSE);
4229 <        BIO_free(file);
4230 <      }
4231 < #endif
4232 <
4233 < #ifdef HAVE_LIBCRYPTO
4234 <      if (yy_tmp->name && (yy_tmp->passwd || yy_aconf->rsa_public_key)
4235 <          && yy_tmp->host)
4236 < #else
4237 <      if (yy_tmp->name && yy_tmp->passwd && yy_tmp->host)
4238 < #endif
4239 <      {
4240 <        conf_add_class_to_conf(new_conf, class_name);
4241 <        if (yy_tmp->name != NULL)
4242 <          DupString(new_conf->name, yy_tmp->name);
4243 <      }
4244 <
4245 <      dlinkDelete(&yy_tmp->node, &col_conf_list);
4246 <      free_collect_item(yy_tmp);
4247 <    }
4248 <
4249 <    yy_conf = NULL;
4250 <    yy_aconf = NULL;
4251 <
4252 <
4253 <    MyFree(class_name);
4254 <    class_name = NULL;
4255 <  }
3631 >    block_state.type.value = LOG_TYPE_XLINE;
3632   }
3633 + #line 3634 "conf_parser.c" /* yacc.c:1646  */
3634      break;
3635  
3636 <  case 154:
3637 <
4261 < /* Line 1455 of yacc.c  */
4262 < #line 1050 "ircd_parser.y"
3636 >  case 146:
3637 > #line 1033 "conf_parser.y" /* yacc.c:1646  */
3638      {
3639    if (conf_parser_ctx.pass == 2)
3640 <  {
4266 <    if (strlen(yylval.string) > OPERNICKLEN)
4267 <      yylval.string[OPERNICKLEN] = '\0';
4268 <
4269 <    MyFree(yy_conf->name);
4270 <    DupString(yy_conf->name, yylval.string);
4271 <  }
3640 >    block_state.type.value = LOG_TYPE_RESV;
3641   }
3642 + #line 3643 "conf_parser.c" /* yacc.c:1646  */
3643      break;
3644  
3645 <  case 155:
3646 <
4277 < /* Line 1455 of yacc.c  */
4278 < #line 1062 "ircd_parser.y"
3645 >  case 147:
3646 > #line 1037 "conf_parser.y" /* yacc.c:1646  */
3647      {
3648    if (conf_parser_ctx.pass == 2)
3649 <  {
4282 <    if (strlen(yylval.string) > OPERNICKLEN)
4283 <      yylval.string[OPERNICKLEN] = '\0';
4284 <
4285 <    MyFree(yy_conf->name);
4286 <    DupString(yy_conf->name, yylval.string);
4287 <  }
3649 >    block_state.type.value = LOG_TYPE_DLINE;
3650   }
3651 + #line 3652 "conf_parser.c" /* yacc.c:1646  */
3652      break;
3653  
3654 <  case 156:
3655 <
4293 < /* Line 1455 of yacc.c  */
4294 < #line 1074 "ircd_parser.y"
3654 >  case 148:
3655 > #line 1041 "conf_parser.y" /* yacc.c:1646  */
3656      {
3657    if (conf_parser_ctx.pass == 2)
3658 <  {
4298 <    struct split_nuh_item nuh;
4299 <
4300 <    nuh.nuhmask  = yylval.string;
4301 <    nuh.nickptr  = NULL;
4302 <    nuh.userptr  = userbuf;
4303 <    nuh.hostptr  = hostbuf;
4304 <
4305 <    nuh.nicksize = 0;
4306 <    nuh.usersize = sizeof(userbuf);
4307 <    nuh.hostsize = sizeof(hostbuf);
4308 <
4309 <    split_nuh(&nuh);
4310 <
4311 <    if (yy_aconf->user == NULL)
4312 <    {
4313 <      DupString(yy_aconf->user, userbuf);
4314 <      DupString(yy_aconf->host, hostbuf);
4315 <    }
4316 <    else
4317 <    {
4318 <      struct CollectItem *yy_tmp = MyMalloc(sizeof(struct CollectItem));
4319 <
4320 <      DupString(yy_tmp->user, userbuf);
4321 <      DupString(yy_tmp->host, hostbuf);
4322 <
4323 <      dlinkAdd(yy_tmp, &yy_tmp->node, &col_conf_list);
4324 <    }
4325 <  }
3658 >    block_state.type.value = LOG_TYPE_KLINE;
3659   }
3660 + #line 3661 "conf_parser.c" /* yacc.c:1646  */
3661      break;
3662  
3663 <  case 157:
3664 <
4331 < /* Line 1455 of yacc.c  */
4332 < #line 1108 "ircd_parser.y"
3663 >  case 149:
3664 > #line 1045 "conf_parser.y" /* yacc.c:1646  */
3665      {
3666    if (conf_parser_ctx.pass == 2)
3667 <  {
4336 <    if (yy_aconf->passwd != NULL)
4337 <      memset(yy_aconf->passwd, 0, strlen(yy_aconf->passwd));
4338 <
4339 <    MyFree(yy_aconf->passwd);
4340 <    DupString(yy_aconf->passwd, yylval.string);
4341 <  }
3667 >    block_state.type.value = LOG_TYPE_KILL;
3668   }
3669 + #line 3670 "conf_parser.c" /* yacc.c:1646  */
3670      break;
3671  
3672 <  case 158:
3673 <
4347 < /* Line 1455 of yacc.c  */
4348 < #line 1120 "ircd_parser.y"
3672 >  case 150:
3673 > #line 1049 "conf_parser.y" /* yacc.c:1646  */
3674      {
3675    if (conf_parser_ctx.pass == 2)
3676 <  {
4352 <    if (yylval.number)
4353 <      SetConfEncrypted(yy_aconf);
4354 <    else
4355 <      ClearConfEncrypted(yy_aconf);
4356 <  }
3676 >    block_state.type.value = LOG_TYPE_DEBUG;
3677   }
3678 + #line 3679 "conf_parser.c" /* yacc.c:1646  */
3679      break;
3680  
3681 <  case 159:
3682 <
4362 < /* Line 1455 of yacc.c  */
4363 < #line 1131 "ircd_parser.y"
3681 >  case 151:
3682 > #line 1059 "conf_parser.y" /* yacc.c:1646  */
3683      {
3684 < #ifdef HAVE_LIBCRYPTO
3685 <  if (conf_parser_ctx.pass == 2)
4367 <  {
4368 <    BIO *file;
3684 >  if (conf_parser_ctx.pass != 2)
3685 >    break;
3686  
3687 <    if (yy_aconf->rsa_public_key != NULL)
3688 <    {
3689 <      RSA_free(yy_aconf->rsa_public_key);
3690 <      yy_aconf->rsa_public_key = NULL;
3691 <    }
3687 >  reset_block_state();
3688 >  block_state.flags.value |= CONF_FLAGS_ENCRYPTED;
3689 > }
3690 > #line 3691 "conf_parser.c" /* yacc.c:1646  */
3691 >    break;
3692  
3693 <    if (yy_aconf->rsa_public_key_file != NULL)
3693 >  case 152:
3694 > #line 1066 "conf_parser.y" /* yacc.c:1646  */
3695      {
3696 <      MyFree(yy_aconf->rsa_public_key_file);
4379 <      yy_aconf->rsa_public_key_file = NULL;
4380 <    }
3696 >  dlink_node *ptr = NULL;
3697  
3698 <    DupString(yy_aconf->rsa_public_key_file, yylval.string);
3699 <    file = BIO_new_file(yylval.string, "r");
3698 >  if (conf_parser_ctx.pass != 2)
3699 >    break;
3700  
3701 <    if (file == NULL)
3702 <    {
3703 <      yyerror("Ignoring rsa_public_key_file -- file doesn't exist");
3704 <      break;
3705 <    }
3701 >  if (!block_state.name.buf[0])
3702 >    break;
3703 > #ifdef HAVE_LIBCRYPTO
3704 >  if (!block_state.file.buf[0] &&
3705 >      !block_state.rpass.buf[0])
3706 >    break;
3707 > #else
3708 >  if (!block_state.rpass.buf[0])
3709 >    break;
3710 > #endif
3711  
3712 <    yy_aconf->rsa_public_key = (RSA *)PEM_read_bio_RSA_PUBKEY(file, NULL, 0, NULL);
3712 >  DLINK_FOREACH(ptr, block_state.mask.list.head)
3713 >  {
3714 >    struct MaskItem *conf = NULL;
3715 >    struct split_nuh_item nuh;
3716  
3717 <    if (yy_aconf->rsa_public_key == NULL)
3718 <    {
3719 <      yyerror("Ignoring rsa_public_key_file -- Key invalid; check key syntax.");
3720 <      break;
3721 <    }
3717 >    nuh.nuhmask  = ptr->data;
3718 >    nuh.nickptr  = NULL;
3719 >    nuh.userptr  = block_state.user.buf;
3720 >    nuh.hostptr  = block_state.host.buf;
3721 >    nuh.nicksize = 0;
3722 >    nuh.usersize = sizeof(block_state.user.buf);
3723 >    nuh.hostsize = sizeof(block_state.host.buf);
3724 >    split_nuh(&nuh);
3725  
3726 <    BIO_set_close(file, BIO_CLOSE);
3727 <    BIO_free(file);
3728 <  }
3729 < #endif /* HAVE_LIBCRYPTO */
3730 < }
3731 <    break;
3726 >    conf         = conf_make(CONF_OPER);
3727 >    conf->name   = xstrdup(block_state.name.buf);
3728 >    conf->user   = xstrdup(block_state.user.buf);
3729 >    conf->host   = xstrdup(block_state.host.buf);
3730 >
3731 >    if (block_state.cert.buf[0])
3732 >      conf->certfp = xstrdup(block_state.cert.buf);
3733 >
3734 >    if (block_state.rpass.buf[0])
3735 >      conf->passwd = xstrdup(block_state.rpass.buf);
3736 >
3737 >    conf->flags = block_state.flags.value;
3738 >    conf->modes = block_state.modes.value;
3739 >    conf->port  = block_state.port.value;
3740 >    conf->htype = parse_netmask(conf->host, &conf->addr, &conf->bits);
3741  
3742 <  case 160:
3742 >    conf_add_class_to_conf(conf, block_state.class.buf);
3743  
3744 < /* Line 1455 of yacc.c  */
3745 < #line 1173 "ircd_parser.y"
3744 > #ifdef HAVE_LIBCRYPTO
3745 >    if (block_state.file.buf[0])
3746      {
3747 <  if (conf_parser_ctx.pass == 2)
3748 <  {
4413 <    MyFree(class_name);
4414 <    DupString(class_name, yylval.string);
4415 <  }
4416 < }
4417 <    break;
4418 <
4419 <  case 161:
3747 >      BIO *file = NULL;
3748 >      RSA *pkey = NULL;
3749  
3750 < /* Line 1455 of yacc.c  */
3751 < #line 1182 "ircd_parser.y"
3752 <    {
3753 <  if (conf_parser_ctx.pass == 2)
3754 <    yy_aconf->modes = 0;
4426 < }
4427 <    break;
3750 >      if ((file = BIO_new_file(block_state.file.buf, "r")) == NULL)
3751 >      {
3752 >        conf_error_report("Ignoring rsa_public_key_file -- file doesn't exist");
3753 >        break;
3754 >      }
3755  
3756 <  case 165:
3756 >      if ((pkey = PEM_read_bio_RSA_PUBKEY(file, NULL, 0, NULL)) == NULL)
3757 >        conf_error_report("Ignoring rsa_public_key_file -- Key invalid; check key syntax.");
3758  
3759 < /* Line 1455 of yacc.c  */
3760 < #line 1189 "ircd_parser.y"
3761 <    {
3762 <  if (conf_parser_ctx.pass == 2)
3763 <    yy_aconf->modes |= UMODE_BOTS;
3759 >      conf->rsa_public_key = pkey;
3760 >      BIO_set_close(file, BIO_CLOSE);
3761 >      BIO_free(file);
3762 >    }
3763 > #endif /* HAVE_LIBCRYPTO */
3764 >  }
3765   }
3766 + #line 3767 "conf_parser.c" /* yacc.c:1646  */
3767      break;
3768  
3769    case 166:
3770 <
4441 < /* Line 1455 of yacc.c  */
4442 < #line 1193 "ircd_parser.y"
3770 > #line 1152 "conf_parser.y" /* yacc.c:1646  */
3771      {
3772    if (conf_parser_ctx.pass == 2)
3773 <    yy_aconf->modes |= UMODE_CCONN;
3773 >    strlcpy(block_state.name.buf, yylval.string, sizeof(block_state.name.buf));
3774   }
3775 + #line 3776 "conf_parser.c" /* yacc.c:1646  */
3776      break;
3777  
3778    case 167:
3779 <
4451 < /* Line 1455 of yacc.c  */
4452 < #line 1197 "ircd_parser.y"
3779 > #line 1158 "conf_parser.y" /* yacc.c:1646  */
3780      {
3781    if (conf_parser_ctx.pass == 2)
3782 <    yy_aconf->modes |= UMODE_CCONN_FULL;
3782 >    dlinkAdd(xstrdup(yylval.string), make_dlink_node(), &block_state.mask.list);
3783   }
3784 + #line 3785 "conf_parser.c" /* yacc.c:1646  */
3785      break;
3786  
3787    case 168:
3788 <
4461 < /* Line 1455 of yacc.c  */
4462 < #line 1201 "ircd_parser.y"
3788 > #line 1164 "conf_parser.y" /* yacc.c:1646  */
3789      {
3790    if (conf_parser_ctx.pass == 2)
3791 <    yy_aconf->modes |= UMODE_DEAF;
3791 >    strlcpy(block_state.rpass.buf, yylval.string, sizeof(block_state.rpass.buf));
3792   }
3793 + #line 3794 "conf_parser.c" /* yacc.c:1646  */
3794      break;
3795  
3796    case 169:
3797 <
4471 < /* Line 1455 of yacc.c  */
4472 < #line 1205 "ircd_parser.y"
3797 > #line 1170 "conf_parser.y" /* yacc.c:1646  */
3798      {
3799 <  if (conf_parser_ctx.pass == 2)
3800 <    yy_aconf->modes |= UMODE_DEBUG;
3799 >  if (conf_parser_ctx.pass != 2)
3800 >    break;
3801 >
3802 >  if (yylval.number)
3803 >    block_state.flags.value |= CONF_FLAGS_ENCRYPTED;
3804 >  else
3805 >    block_state.flags.value &= ~CONF_FLAGS_ENCRYPTED;
3806   }
3807 + #line 3808 "conf_parser.c" /* yacc.c:1646  */
3808      break;
3809  
3810    case 170:
3811 <
4481 < /* Line 1455 of yacc.c  */
4482 < #line 1209 "ircd_parser.y"
3811 > #line 1181 "conf_parser.y" /* yacc.c:1646  */
3812      {
3813    if (conf_parser_ctx.pass == 2)
3814 <    yy_aconf->modes |= UMODE_FULL;
3814 >    strlcpy(block_state.file.buf, yylval.string, sizeof(block_state.file.buf));
3815   }
3816 + #line 3817 "conf_parser.c" /* yacc.c:1646  */
3817      break;
3818  
3819    case 171:
3820 <
4491 < /* Line 1455 of yacc.c  */
4492 < #line 1213 "ircd_parser.y"
3820 > #line 1187 "conf_parser.y" /* yacc.c:1646  */
3821      {
3822    if (conf_parser_ctx.pass == 2)
3823 <    yy_aconf->modes |= UMODE_SKILL;
3823 >    strlcpy(block_state.cert.buf, yylval.string, sizeof(block_state.cert.buf));
3824   }
3825 + #line 3826 "conf_parser.c" /* yacc.c:1646  */
3826      break;
3827  
3828    case 172:
3829 <
4501 < /* Line 1455 of yacc.c  */
4502 < #line 1217 "ircd_parser.y"
3829 > #line 1193 "conf_parser.y" /* yacc.c:1646  */
3830      {
3831 <  if (conf_parser_ctx.pass == 2)
4505 <    yy_aconf->modes |= UMODE_NCHANGE;
4506 < }
3831 >  if (conf_parser_ctx.pass != 2)
3832      break;
3833  
3834 <  case 173:
3835 <
3836 < /* Line 1455 of yacc.c  */
3837 < #line 1221 "ircd_parser.y"
4513 <    {
4514 <  if (conf_parser_ctx.pass == 2)
4515 <    yy_aconf->modes |= UMODE_REJ;
4516 < }
4517 <    break;
4518 <
4519 <  case 174:
4520 <
4521 < /* Line 1455 of yacc.c  */
4522 < #line 1225 "ircd_parser.y"
4523 <    {
4524 <  if (conf_parser_ctx.pass == 2)
4525 <    yy_aconf->modes |= UMODE_UNAUTH;
4526 < }
4527 <    break;
4528 <
4529 <  case 175:
4530 <
4531 < /* Line 1455 of yacc.c  */
4532 < #line 1229 "ircd_parser.y"
4533 <    {
4534 <  if (conf_parser_ctx.pass == 2)
4535 <    yy_aconf->modes |= UMODE_SPY;
3834 >  if (yylval.number)
3835 >    block_state.flags.value |= CONF_FLAGS_SSL;
3836 >  else
3837 >    block_state.flags.value &= ~CONF_FLAGS_SSL;
3838   }
3839 + #line 3840 "conf_parser.c" /* yacc.c:1646  */
3840      break;
3841  
3842 <  case 176:
3843 <
4541 < /* Line 1455 of yacc.c  */
4542 < #line 1233 "ircd_parser.y"
3842 >  case 173:
3843 > #line 1204 "conf_parser.y" /* yacc.c:1646  */
3844      {
3845    if (conf_parser_ctx.pass == 2)
3846 <    yy_aconf->modes |= UMODE_EXTERNAL;
3846 >    strlcpy(block_state.class.buf, yylval.string, sizeof(block_state.class.buf));
3847   }
3848 + #line 3849 "conf_parser.c" /* yacc.c:1646  */
3849      break;
3850  
3851 <  case 177:
3852 <
4551 < /* Line 1455 of yacc.c  */
4552 < #line 1237 "ircd_parser.y"
3851 >  case 174:
3852 > #line 1210 "conf_parser.y" /* yacc.c:1646  */
3853      {
3854    if (conf_parser_ctx.pass == 2)
3855 <    yy_aconf->modes |= UMODE_OPERWALL;
3855 >    block_state.modes.value = 0;
3856   }
3857 + #line 3858 "conf_parser.c" /* yacc.c:1646  */
3858      break;
3859  
3860    case 178:
3861 <
4561 < /* Line 1455 of yacc.c  */
4562 < #line 1241 "ircd_parser.y"
3861 > #line 1217 "conf_parser.y" /* yacc.c:1646  */
3862      {
3863    if (conf_parser_ctx.pass == 2)
3864 <    yy_aconf->modes |= UMODE_SERVNOTICE;
3864 >    block_state.modes.value |= UMODE_BOTS;
3865   }
3866 + #line 3867 "conf_parser.c" /* yacc.c:1646  */
3867      break;
3868  
3869    case 179:
3870 <
4571 < /* Line 1455 of yacc.c  */
4572 < #line 1245 "ircd_parser.y"
3870 > #line 1221 "conf_parser.y" /* yacc.c:1646  */
3871      {
3872    if (conf_parser_ctx.pass == 2)
3873 <    yy_aconf->modes |= UMODE_INVISIBLE;
3873 >    block_state.modes.value |= UMODE_CCONN;
3874   }
3875 + #line 3876 "conf_parser.c" /* yacc.c:1646  */
3876      break;
3877  
3878    case 180:
3879 <
4581 < /* Line 1455 of yacc.c  */
4582 < #line 1249 "ircd_parser.y"
3879 > #line 1225 "conf_parser.y" /* yacc.c:1646  */
3880      {
3881    if (conf_parser_ctx.pass == 2)
3882 <    yy_aconf->modes |= UMODE_WALLOP;
3882 >    block_state.modes.value |= UMODE_DEAF;
3883   }
3884 + #line 3885 "conf_parser.c" /* yacc.c:1646  */
3885      break;
3886  
3887    case 181:
3888 <
4591 < /* Line 1455 of yacc.c  */
4592 < #line 1253 "ircd_parser.y"
3888 > #line 1229 "conf_parser.y" /* yacc.c:1646  */
3889      {
3890    if (conf_parser_ctx.pass == 2)
3891 <    yy_aconf->modes |= UMODE_SOFTCALLERID;
3891 >    block_state.modes.value |= UMODE_DEBUG;
3892   }
3893 + #line 3894 "conf_parser.c" /* yacc.c:1646  */
3894      break;
3895  
3896    case 182:
3897 <
4601 < /* Line 1455 of yacc.c  */
4602 < #line 1257 "ircd_parser.y"
3897 > #line 1233 "conf_parser.y" /* yacc.c:1646  */
3898      {
3899    if (conf_parser_ctx.pass == 2)
3900 <    yy_aconf->modes |= UMODE_CALLERID;
3900 >    block_state.modes.value |= UMODE_FULL;
3901   }
3902 + #line 3903 "conf_parser.c" /* yacc.c:1646  */
3903      break;
3904  
3905    case 183:
3906 <
4611 < /* Line 1455 of yacc.c  */
4612 < #line 1261 "ircd_parser.y"
3906 > #line 1237 "conf_parser.y" /* yacc.c:1646  */
3907      {
3908    if (conf_parser_ctx.pass == 2)
3909 <    yy_aconf->modes |= UMODE_LOCOPS;
3909 >    block_state.modes.value |= UMODE_HIDDEN;
3910   }
3911 + #line 3912 "conf_parser.c" /* yacc.c:1646  */
3912      break;
3913  
3914    case 184:
3915 <
4621 < /* Line 1455 of yacc.c  */
4622 < #line 1267 "ircd_parser.y"
3915 > #line 1241 "conf_parser.y" /* yacc.c:1646  */
3916      {
3917    if (conf_parser_ctx.pass == 2)
3918 <  {
4626 <    if (yylval.number)
4627 <      yy_aconf->port |= OPER_FLAG_GLOBAL_KILL;
4628 <    else
4629 <      yy_aconf->port &= ~OPER_FLAG_GLOBAL_KILL;
4630 <  }
3918 >    block_state.modes.value |= UMODE_HIDECHANS;
3919   }
3920 + #line 3921 "conf_parser.c" /* yacc.c:1646  */
3921      break;
3922  
3923    case 185:
3924 <
4636 < /* Line 1455 of yacc.c  */
4637 < #line 1278 "ircd_parser.y"
3924 > #line 1245 "conf_parser.y" /* yacc.c:1646  */
3925      {
3926    if (conf_parser_ctx.pass == 2)
3927 <  {
4641 <    if (yylval.number)
4642 <      yy_aconf->port |= OPER_FLAG_REMOTE;
4643 <    else
4644 <      yy_aconf->port &= ~OPER_FLAG_REMOTE;
4645 <  }
3927 >    block_state.modes.value |= UMODE_HIDEIDLE;
3928   }
3929 + #line 3930 "conf_parser.c" /* yacc.c:1646  */
3930      break;
3931  
3932    case 186:
3933 <
4651 < /* Line 1455 of yacc.c  */
4652 < #line 1289 "ircd_parser.y"
3933 > #line 1249 "conf_parser.y" /* yacc.c:1646  */
3934      {
3935    if (conf_parser_ctx.pass == 2)
3936 <  {
4656 <    if (yylval.number)
4657 <      yy_aconf->port |= OPER_FLAG_REMOTEBAN;
4658 <    else
4659 <      yy_aconf->port &= ~OPER_FLAG_REMOTEBAN;
4660 <  }
3936 >    block_state.modes.value |= UMODE_SKILL;
3937   }
3938 + #line 3939 "conf_parser.c" /* yacc.c:1646  */
3939      break;
3940  
3941    case 187:
3942 <
4666 < /* Line 1455 of yacc.c  */
4667 < #line 1300 "ircd_parser.y"
3942 > #line 1253 "conf_parser.y" /* yacc.c:1646  */
3943      {
3944    if (conf_parser_ctx.pass == 2)
3945 <  {
4671 <    if (yylval.number)
4672 <      yy_aconf->port |= OPER_FLAG_K;
4673 <    else
4674 <      yy_aconf->port &= ~OPER_FLAG_K;
4675 <  }
3945 >    block_state.modes.value |= UMODE_NCHANGE;
3946   }
3947 + #line 3948 "conf_parser.c" /* yacc.c:1646  */
3948      break;
3949  
3950    case 188:
3951 <
4681 < /* Line 1455 of yacc.c  */
4682 < #line 1311 "ircd_parser.y"
3951 > #line 1257 "conf_parser.y" /* yacc.c:1646  */
3952      {
3953    if (conf_parser_ctx.pass == 2)
3954 <  {
4686 <    if (yylval.number)
4687 <      yy_aconf->port |= OPER_FLAG_X;
4688 <    else
4689 <      yy_aconf->port &= ~OPER_FLAG_X;
4690 <  }
3954 >    block_state.modes.value |= UMODE_REJ;
3955   }
3956 + #line 3957 "conf_parser.c" /* yacc.c:1646  */
3957      break;
3958  
3959    case 189:
3960 <
4696 < /* Line 1455 of yacc.c  */
4697 < #line 1322 "ircd_parser.y"
3960 > #line 1261 "conf_parser.y" /* yacc.c:1646  */
3961      {
3962    if (conf_parser_ctx.pass == 2)
3963 <  {
4701 <    if (yylval.number)
4702 <      yy_aconf->port |= OPER_FLAG_UNKLINE;
4703 <    else
4704 <      yy_aconf->port &= ~OPER_FLAG_UNKLINE;
4705 <  }
3963 >    block_state.modes.value |= UMODE_UNAUTH;
3964   }
3965 + #line 3966 "conf_parser.c" /* yacc.c:1646  */
3966      break;
3967  
3968    case 190:
3969 <
4711 < /* Line 1455 of yacc.c  */
4712 < #line 1333 "ircd_parser.y"
3969 > #line 1265 "conf_parser.y" /* yacc.c:1646  */
3970      {
3971    if (conf_parser_ctx.pass == 2)
3972 <  {
4716 <    if (yylval.number)
4717 <      yy_aconf->port |= OPER_FLAG_GLINE;
4718 <    else
4719 <      yy_aconf->port &= ~OPER_FLAG_GLINE;
4720 <  }
3972 >    block_state.modes.value |= UMODE_SPY;
3973   }
3974 + #line 3975 "conf_parser.c" /* yacc.c:1646  */
3975      break;
3976  
3977    case 191:
3978 <
4726 < /* Line 1455 of yacc.c  */
4727 < #line 1344 "ircd_parser.y"
3978 > #line 1269 "conf_parser.y" /* yacc.c:1646  */
3979      {
3980    if (conf_parser_ctx.pass == 2)
3981 <  {
4731 <    if (yylval.number)
4732 <      yy_aconf->port |= OPER_FLAG_N;
4733 <    else
4734 <      yy_aconf->port &= ~OPER_FLAG_N;
4735 <  }
3981 >    block_state.modes.value |= UMODE_EXTERNAL;
3982   }
3983 + #line 3984 "conf_parser.c" /* yacc.c:1646  */
3984      break;
3985  
3986    case 192:
3987 <
4741 < /* Line 1455 of yacc.c  */
4742 < #line 1355 "ircd_parser.y"
3987 > #line 1273 "conf_parser.y" /* yacc.c:1646  */
3988      {
3989    if (conf_parser_ctx.pass == 2)
3990 <  {
4746 <    if (yylval.number)
4747 <      yy_aconf->port |= OPER_FLAG_DIE;
4748 <    else
4749 <      yy_aconf->port &= ~OPER_FLAG_DIE;
4750 <  }
3990 >    block_state.modes.value |= UMODE_SERVNOTICE;
3991   }
3992 + #line 3993 "conf_parser.c" /* yacc.c:1646  */
3993      break;
3994  
3995    case 193:
3996 <
4756 < /* Line 1455 of yacc.c  */
4757 < #line 1366 "ircd_parser.y"
3996 > #line 1277 "conf_parser.y" /* yacc.c:1646  */
3997      {
3998    if (conf_parser_ctx.pass == 2)
3999 <  {
4761 <    if (yylval.number)
4762 <      yy_aconf->port |= OPER_FLAG_REHASH;
4763 <    else
4764 <      yy_aconf->port &= ~OPER_FLAG_REHASH;
4765 <  }
3999 >    block_state.modes.value |= UMODE_INVISIBLE;
4000   }
4001 + #line 4002 "conf_parser.c" /* yacc.c:1646  */
4002      break;
4003  
4004    case 194:
4005 <
4771 < /* Line 1455 of yacc.c  */
4772 < #line 1377 "ircd_parser.y"
4005 > #line 1281 "conf_parser.y" /* yacc.c:1646  */
4006      {
4007    if (conf_parser_ctx.pass == 2)
4008 <  {
4776 <    if (yylval.number)
4777 <      yy_aconf->port |= OPER_FLAG_ADMIN;
4778 <    else
4779 <      yy_aconf->port &= ~OPER_FLAG_ADMIN;
4780 <  }
4008 >    block_state.modes.value |= UMODE_WALLOP;
4009   }
4010 + #line 4011 "conf_parser.c" /* yacc.c:1646  */
4011      break;
4012  
4013    case 195:
4014 <
4786 < /* Line 1455 of yacc.c  */
4787 < #line 1388 "ircd_parser.y"
4014 > #line 1285 "conf_parser.y" /* yacc.c:1646  */
4015      {
4016    if (conf_parser_ctx.pass == 2)
4017 <  {
4791 <    if (yylval.number)
4792 <      yy_aconf->port |= OPER_FLAG_HIDDEN_ADMIN;
4793 <    else
4794 <      yy_aconf->port &= ~OPER_FLAG_HIDDEN_ADMIN;
4795 <  }
4017 >    block_state.modes.value |= UMODE_SOFTCALLERID;
4018   }
4019 + #line 4020 "conf_parser.c" /* yacc.c:1646  */
4020      break;
4021  
4022    case 196:
4023 <
4801 < /* Line 1455 of yacc.c  */
4802 < #line 1399 "ircd_parser.y"
4023 > #line 1289 "conf_parser.y" /* yacc.c:1646  */
4024      {
4025    if (conf_parser_ctx.pass == 2)
4026 <  {
4806 <    if (yylval.number)
4807 <      yy_aconf->port |= OPER_FLAG_HIDDEN_OPER;
4808 <    else
4809 <      yy_aconf->port &= ~OPER_FLAG_HIDDEN_OPER;
4810 <  }
4026 >    block_state.modes.value |= UMODE_CALLERID;
4027   }
4028 + #line 4029 "conf_parser.c" /* yacc.c:1646  */
4029      break;
4030  
4031    case 197:
4032 <
4816 < /* Line 1455 of yacc.c  */
4817 < #line 1410 "ircd_parser.y"
4032 > #line 1293 "conf_parser.y" /* yacc.c:1646  */
4033      {
4034    if (conf_parser_ctx.pass == 2)
4035 <  {
4821 <    if (yylval.number)
4822 <      yy_aconf->port |= OPER_FLAG_OPERWALL;
4823 <    else
4824 <      yy_aconf->port &= ~OPER_FLAG_OPERWALL;
4825 <  }
4035 >    block_state.modes.value |= UMODE_LOCOPS;
4036   }
4037 + #line 4038 "conf_parser.c" /* yacc.c:1646  */
4038      break;
4039  
4040    case 198:
4041 <
4831 < /* Line 1455 of yacc.c  */
4832 < #line 1421 "ircd_parser.y"
4041 > #line 1297 "conf_parser.y" /* yacc.c:1646  */
4042      {
4043 +  if (conf_parser_ctx.pass == 2)
4044 +    block_state.modes.value |= UMODE_REGONLY;
4045   }
4046 + #line 4047 "conf_parser.c" /* yacc.c:1646  */
4047      break;
4048  
4049 <  case 202:
4049 >  case 199:
4050 > #line 1301 "conf_parser.y" /* yacc.c:1646  */
4051 >    {
4052 >  if (conf_parser_ctx.pass == 2)
4053 >    block_state.modes.value |= UMODE_FARCONNECT;
4054 > }
4055 > #line 4056 "conf_parser.c" /* yacc.c:1646  */
4056 >    break;
4057  
4058 < /* Line 1455 of yacc.c  */
4059 < #line 1425 "ircd_parser.y"
4060 <    { not_atom = 1; }
4058 >  case 200:
4059 > #line 1307 "conf_parser.y" /* yacc.c:1646  */
4060 >    {
4061 >  if (conf_parser_ctx.pass == 2)
4062 >    block_state.port.value = 0;
4063 > }
4064 > #line 4065 "conf_parser.c" /* yacc.c:1646  */
4065      break;
4066  
4067    case 204:
4068 + #line 1314 "conf_parser.y" /* yacc.c:1646  */
4069 +    {
4070 +  if (conf_parser_ctx.pass == 2)
4071 +    block_state.port.value |= OPER_FLAG_KILL_REMOTE;
4072 + }
4073 + #line 4074 "conf_parser.c" /* yacc.c:1646  */
4074 +    break;
4075  
4076 < /* Line 1455 of yacc.c  */
4077 < #line 1426 "ircd_parser.y"
4078 <    { not_atom = 0; }
4076 >  case 205:
4077 > #line 1318 "conf_parser.y" /* yacc.c:1646  */
4078 >    {
4079 >  if (conf_parser_ctx.pass == 2)
4080 >    block_state.port.value |= OPER_FLAG_KILL;
4081 > }
4082 > #line 4083 "conf_parser.c" /* yacc.c:1646  */
4083      break;
4084  
4085    case 206:
4086 <
4853 < /* Line 1455 of yacc.c  */
4854 < #line 1429 "ircd_parser.y"
4086 > #line 1322 "conf_parser.y" /* yacc.c:1646  */
4087      {
4088    if (conf_parser_ctx.pass == 2)
4089 <  {
4858 <    if (not_atom)yy_aconf->port &= ~OPER_FLAG_GLOBAL_KILL;
4859 <    else yy_aconf->port |= OPER_FLAG_GLOBAL_KILL;
4860 <  }
4089 >    block_state.port.value |= OPER_FLAG_CONNECT_REMOTE;
4090   }
4091 + #line 4092 "conf_parser.c" /* yacc.c:1646  */
4092      break;
4093  
4094    case 207:
4095 <
4866 < /* Line 1455 of yacc.c  */
4867 < #line 1436 "ircd_parser.y"
4095 > #line 1326 "conf_parser.y" /* yacc.c:1646  */
4096      {
4097    if (conf_parser_ctx.pass == 2)
4098 <  {
4871 <    if (not_atom) yy_aconf->port &= ~OPER_FLAG_REMOTE;
4872 <    else yy_aconf->port |= OPER_FLAG_REMOTE;
4873 <  }
4098 >    block_state.port.value |= OPER_FLAG_CONNECT;
4099   }
4100 + #line 4101 "conf_parser.c" /* yacc.c:1646  */
4101      break;
4102  
4103    case 208:
4104 <
4879 < /* Line 1455 of yacc.c  */
4880 < #line 1443 "ircd_parser.y"
4104 > #line 1330 "conf_parser.y" /* yacc.c:1646  */
4105      {
4106    if (conf_parser_ctx.pass == 2)
4107 <  {
4884 <    if (not_atom) yy_aconf->port &= ~OPER_FLAG_K;
4885 <    else yy_aconf->port |= OPER_FLAG_K;
4886 <  }
4107 >    block_state.port.value |= OPER_FLAG_SQUIT_REMOTE;
4108   }
4109 + #line 4110 "conf_parser.c" /* yacc.c:1646  */
4110      break;
4111  
4112    case 209:
4113 <
4892 < /* Line 1455 of yacc.c  */
4893 < #line 1450 "ircd_parser.y"
4113 > #line 1334 "conf_parser.y" /* yacc.c:1646  */
4114      {
4115    if (conf_parser_ctx.pass == 2)
4116 <  {
4897 <    if (not_atom) yy_aconf->port &= ~OPER_FLAG_UNKLINE;
4898 <    else yy_aconf->port |= OPER_FLAG_UNKLINE;
4899 <  }
4116 >    block_state.port.value |= OPER_FLAG_SQUIT;
4117   }
4118 + #line 4119 "conf_parser.c" /* yacc.c:1646  */
4119      break;
4120  
4121    case 210:
4122 <
4905 < /* Line 1455 of yacc.c  */
4906 < #line 1457 "ircd_parser.y"
4122 > #line 1338 "conf_parser.y" /* yacc.c:1646  */
4123      {
4124    if (conf_parser_ctx.pass == 2)
4125 <  {
4910 <    if (not_atom) yy_aconf->port &= ~OPER_FLAG_X;
4911 <    else yy_aconf->port |= OPER_FLAG_X;
4912 <  }
4125 >    block_state.port.value |= OPER_FLAG_KLINE;
4126   }
4127 + #line 4128 "conf_parser.c" /* yacc.c:1646  */
4128      break;
4129  
4130    case 211:
4131 <
4918 < /* Line 1455 of yacc.c  */
4919 < #line 1464 "ircd_parser.y"
4131 > #line 1342 "conf_parser.y" /* yacc.c:1646  */
4132      {
4133    if (conf_parser_ctx.pass == 2)
4134 <  {
4923 <    if (not_atom) yy_aconf->port &= ~OPER_FLAG_GLINE;
4924 <    else yy_aconf->port |= OPER_FLAG_GLINE;
4925 <  }
4134 >    block_state.port.value |= OPER_FLAG_UNKLINE;
4135   }
4136 + #line 4137 "conf_parser.c" /* yacc.c:1646  */
4137      break;
4138  
4139    case 212:
4140 <
4931 < /* Line 1455 of yacc.c  */
4932 < #line 1471 "ircd_parser.y"
4140 > #line 1346 "conf_parser.y" /* yacc.c:1646  */
4141      {
4142    if (conf_parser_ctx.pass == 2)
4143 <  {
4936 <    if (not_atom) yy_aconf->port &= ~OPER_FLAG_DIE;
4937 <    else yy_aconf->port |= OPER_FLAG_DIE;
4938 <  }
4143 >    block_state.port.value |= OPER_FLAG_DLINE;
4144   }
4145 + #line 4146 "conf_parser.c" /* yacc.c:1646  */
4146      break;
4147  
4148    case 213:
4149 <
4944 < /* Line 1455 of yacc.c  */
4945 < #line 1478 "ircd_parser.y"
4149 > #line 1350 "conf_parser.y" /* yacc.c:1646  */
4150      {
4151    if (conf_parser_ctx.pass == 2)
4152 <  {
4949 <    if (not_atom) yy_aconf->port &= ~OPER_FLAG_REHASH;
4950 <    else yy_aconf->port |= OPER_FLAG_REHASH;
4951 <  }
4152 >    block_state.port.value |= OPER_FLAG_UNDLINE;
4153   }
4154 + #line 4155 "conf_parser.c" /* yacc.c:1646  */
4155      break;
4156  
4157    case 214:
4158 <
4957 < /* Line 1455 of yacc.c  */
4958 < #line 1485 "ircd_parser.y"
4158 > #line 1354 "conf_parser.y" /* yacc.c:1646  */
4159      {
4160    if (conf_parser_ctx.pass == 2)
4161 <  {
4962 <    if (not_atom) yy_aconf->port &= ~OPER_FLAG_ADMIN;
4963 <    else yy_aconf->port |= OPER_FLAG_ADMIN;
4964 <  }
4161 >    block_state.port.value |= OPER_FLAG_XLINE;
4162   }
4163 + #line 4164 "conf_parser.c" /* yacc.c:1646  */
4164      break;
4165  
4166    case 215:
4167 <
4970 < /* Line 1455 of yacc.c  */
4971 < #line 1492 "ircd_parser.y"
4167 > #line 1358 "conf_parser.y" /* yacc.c:1646  */
4168      {
4169    if (conf_parser_ctx.pass == 2)
4170 <  {
4975 <    if (not_atom) yy_aconf->port &= ~OPER_FLAG_HIDDEN_ADMIN;
4976 <    else yy_aconf->port |= OPER_FLAG_HIDDEN_ADMIN;
4977 <  }
4170 >    block_state.port.value |= OPER_FLAG_UNXLINE;
4171   }
4172 + #line 4173 "conf_parser.c" /* yacc.c:1646  */
4173      break;
4174  
4175    case 216:
4176 <
4983 < /* Line 1455 of yacc.c  */
4984 < #line 1499 "ircd_parser.y"
4176 > #line 1362 "conf_parser.y" /* yacc.c:1646  */
4177      {
4178    if (conf_parser_ctx.pass == 2)
4179 <  {
4988 <    if (not_atom) yy_aconf->port &= ~OPER_FLAG_N;
4989 <    else yy_aconf->port |= OPER_FLAG_N;
4990 <  }
4179 >    block_state.port.value |= OPER_FLAG_GLINE;
4180   }
4181 + #line 4182 "conf_parser.c" /* yacc.c:1646  */
4182      break;
4183  
4184    case 217:
4185 <
4996 < /* Line 1455 of yacc.c  */
4997 < #line 1506 "ircd_parser.y"
4185 > #line 1366 "conf_parser.y" /* yacc.c:1646  */
4186      {
4187    if (conf_parser_ctx.pass == 2)
4188 <  {
5001 <    if (not_atom) yy_aconf->port &= ~OPER_FLAG_OPERWALL;
5002 <    else yy_aconf->port |= OPER_FLAG_OPERWALL;
5003 <  }
4188 >    block_state.port.value |= OPER_FLAG_DIE;
4189   }
4190 + #line 4191 "conf_parser.c" /* yacc.c:1646  */
4191      break;
4192  
4193    case 218:
4194 <
5009 < /* Line 1455 of yacc.c  */
5010 < #line 1513 "ircd_parser.y"
4194 > #line 1370 "conf_parser.y" /* yacc.c:1646  */
4195      {
4196    if (conf_parser_ctx.pass == 2)
4197 <  {
5014 <    if (not_atom) yy_aconf->port &= ~OPER_FLAG_OPER_SPY;
5015 <    else yy_aconf->port |= OPER_FLAG_OPER_SPY;
5016 <  }
4197 >    block_state.port.value |= OPER_FLAG_RESTART;
4198   }
4199 + #line 4200 "conf_parser.c" /* yacc.c:1646  */
4200      break;
4201  
4202    case 219:
4203 <
5022 < /* Line 1455 of yacc.c  */
5023 < #line 1520 "ircd_parser.y"
4203 > #line 1374 "conf_parser.y" /* yacc.c:1646  */
4204      {
4205    if (conf_parser_ctx.pass == 2)
4206 <  {
5027 <    if (not_atom) yy_aconf->port &= ~OPER_FLAG_HIDDEN_OPER;
5028 <    else yy_aconf->port |= OPER_FLAG_HIDDEN_OPER;
5029 <  }
4206 >    block_state.port.value |= OPER_FLAG_REHASH;
4207   }
4208 + #line 4209 "conf_parser.c" /* yacc.c:1646  */
4209      break;
4210  
4211    case 220:
4212 <
5035 < /* Line 1455 of yacc.c  */
5036 < #line 1527 "ircd_parser.y"
4212 > #line 1378 "conf_parser.y" /* yacc.c:1646  */
4213      {
4214    if (conf_parser_ctx.pass == 2)
4215 <  {
5040 <    if (not_atom) yy_aconf->port &= ~OPER_FLAG_REMOTEBAN;
5041 <    else yy_aconf->port |= OPER_FLAG_REMOTEBAN;
5042 <  }
4215 >    block_state.port.value |= OPER_FLAG_ADMIN;
4216   }
4217 + #line 4218 "conf_parser.c" /* yacc.c:1646  */
4218      break;
4219  
4220    case 221:
4221 <
5048 < /* Line 1455 of yacc.c  */
5049 < #line 1534 "ircd_parser.y"
4221 > #line 1382 "conf_parser.y" /* yacc.c:1646  */
4222      {
4223    if (conf_parser_ctx.pass == 2)
4224 <  {
5053 <    if (not_atom) ClearConfEncrypted(yy_aconf);
5054 <    else SetConfEncrypted(yy_aconf);
5055 <  }
4224 >    block_state.port.value |= OPER_FLAG_GLOBOPS;
4225   }
4226 + #line 4227 "conf_parser.c" /* yacc.c:1646  */
4227      break;
4228  
4229    case 222:
4230 <
5061 < /* Line 1455 of yacc.c  */
5062 < #line 1547 "ircd_parser.y"
4230 > #line 1386 "conf_parser.y" /* yacc.c:1646  */
4231      {
4232 <  if (conf_parser_ctx.pass == 1)
4233 <  {
5066 <    yy_conf = make_conf_item(CLASS_TYPE);
5067 <    yy_class = map_to_conf(yy_conf);
5068 <  }
4232 >  if (conf_parser_ctx.pass == 2)
4233 >    block_state.port.value |= OPER_FLAG_WALLOPS;
4234   }
4235 + #line 4236 "conf_parser.c" /* yacc.c:1646  */
4236      break;
4237  
4238    case 223:
4239 + #line 1390 "conf_parser.y" /* yacc.c:1646  */
4240 +    {
4241 +  if (conf_parser_ctx.pass == 2)
4242 +    block_state.port.value |= OPER_FLAG_LOCOPS;
4243 + }
4244 + #line 4245 "conf_parser.c" /* yacc.c:1646  */
4245 +    break;
4246  
4247 < /* Line 1455 of yacc.c  */
4248 < #line 1554 "ircd_parser.y"
4247 >  case 224:
4248 > #line 1394 "conf_parser.y" /* yacc.c:1646  */
4249      {
4250 <  if (conf_parser_ctx.pass == 1)
4251 <  {
4252 <    struct ConfItem *cconf = NULL;
4253 <    struct ClassItem *class = NULL;
4250 >  if (conf_parser_ctx.pass == 2)
4251 >    block_state.port.value |= OPER_FLAG_REMOTEBAN;
4252 > }
4253 > #line 4254 "conf_parser.c" /* yacc.c:1646  */
4254 >    break;
4255  
4256 <    if (yy_class_name == NULL)
4257 <      delete_conf_item(yy_conf);
5084 <    else
4256 >  case 225:
4257 > #line 1398 "conf_parser.y" /* yacc.c:1646  */
4258      {
4259 <      cconf = find_exact_name_conf(CLASS_TYPE, yy_class_name, NULL, NULL);
4259 >  if (conf_parser_ctx.pass == 2)
4260 >    block_state.port.value |= OPER_FLAG_SET;
4261 > }
4262 > #line 4263 "conf_parser.c" /* yacc.c:1646  */
4263 >    break;
4264  
4265 <      if (cconf != NULL)                /* The class existed already */
4266 <      {
4267 <        int user_count = 0;
4265 >  case 226:
4266 > #line 1402 "conf_parser.y" /* yacc.c:1646  */
4267 >    {
4268 >  if (conf_parser_ctx.pass == 2)
4269 >    block_state.port.value |= OPER_FLAG_MODULE;
4270 > }
4271 > #line 4272 "conf_parser.c" /* yacc.c:1646  */
4272 >    break;
4273  
4274 <        rebuild_cidr_class(cconf, yy_class);
4274 >  case 227:
4275 > #line 1412 "conf_parser.y" /* yacc.c:1646  */
4276 >    {
4277 >  if (conf_parser_ctx.pass != 1)
4278 >    break;
4279  
4280 <        class = map_to_conf(cconf);
4280 >  reset_block_state();
4281  
4282 <        user_count = class->curr_user_count;
4283 <        memcpy(class, yy_class, sizeof(*class));
4284 <        class->curr_user_count = user_count;
4285 <        class->active = 1;
4282 >  block_state.ping_freq.value = DEFAULT_PINGFREQUENCY;
4283 >  block_state.con_freq.value  = DEFAULT_CONNECTFREQUENCY;
4284 >  block_state.max_total.value = MAXIMUM_LINKS_DEFAULT;
4285 >  block_state.max_sendq.value = DEFAULT_SENDQ;
4286 >  block_state.max_recvq.value = DEFAULT_RECVQ;
4287 > }
4288 > #line 4289 "conf_parser.c" /* yacc.c:1646  */
4289 >    break;
4290  
4291 <        delete_conf_item(yy_conf);
4291 >  case 228:
4292 > #line 1424 "conf_parser.y" /* yacc.c:1646  */
4293 >    {
4294 >  struct ClassItem *class = NULL;
4295  
4296 <        MyFree(cconf->name);            /* Allows case change of class name */
4297 <        cconf->name = yy_class_name;
5105 <      }
5106 <      else      /* Brand new class */
5107 <      {
5108 <        MyFree(yy_conf->name);          /* just in case it was allocated */
5109 <        yy_conf->name = yy_class_name;
5110 <        yy_class->active = 1;
5111 <      }
5112 <    }
4296 >  if (conf_parser_ctx.pass != 1)
4297 >    break;
4298  
4299 <    yy_class_name = NULL;
5115 <  }
5116 < }
4299 >  if (!block_state.class.buf[0])
4300      break;
4301  
4302 <  case 242:
4302 >  if (!(class = class_find(block_state.class.buf, 0)))
4303 >    class = class_make();
4304  
4305 < /* Line 1455 of yacc.c  */
4306 < #line 1614 "ircd_parser.y"
4307 <    {
4308 <  if (conf_parser_ctx.pass == 1)
4305 >  class->active = 1;
4306 >  MyFree(class->name);
4307 >  class->name = xstrdup(block_state.class.buf);
4308 >  class->ping_freq = block_state.ping_freq.value;
4309 >  class->max_perip = block_state.max_perip.value;
4310 >  class->con_freq = block_state.con_freq.value;
4311 >  class->max_total = block_state.max_total.value;
4312 >  class->max_global = block_state.max_global.value;
4313 >  class->max_local = block_state.max_local.value;
4314 >  class->max_ident = block_state.max_ident.value;
4315 >  class->max_sendq = block_state.max_sendq.value;
4316 >  class->max_recvq = block_state.max_recvq.value;
4317 >  class->max_channels = block_state.max_channels.value;
4318 >
4319 >  if (block_state.min_idle.value > block_state.max_idle.value)
4320    {
4321 <    MyFree(yy_class_name);
4322 <    DupString(yy_class_name, yylval.string);
4321 >    block_state.min_idle.value = 0;
4322 >    block_state.max_idle.value = 0;
4323 >    block_state.flags.value &= ~CLASS_FLAGS_FAKE_IDLE;
4324    }
4325 +
4326 +  class->flags = block_state.flags.value;
4327 +  class->min_idle = block_state.min_idle.value;
4328 +  class->max_idle = block_state.max_idle.value;
4329 +
4330 +  if (class->number_per_cidr && block_state.number_per_cidr.value)
4331 +    if ((class->cidr_bitlen_ipv4 && block_state.cidr_bitlen_ipv4.value) ||
4332 +        (class->cidr_bitlen_ipv6 && block_state.cidr_bitlen_ipv6.value))
4333 +      if ((class->cidr_bitlen_ipv4 != block_state.cidr_bitlen_ipv4.value) ||
4334 +          (class->cidr_bitlen_ipv6 != block_state.cidr_bitlen_ipv6.value))
4335 +        rebuild_cidr_list(class);
4336 +
4337 +  class->cidr_bitlen_ipv4 = block_state.cidr_bitlen_ipv4.value;
4338 +  class->cidr_bitlen_ipv6 = block_state.cidr_bitlen_ipv6.value;
4339 +  class->number_per_cidr = block_state.number_per_cidr.value;
4340   }
4341 + #line 4342 "conf_parser.c" /* yacc.c:1646  */
4342      break;
4343  
4344 <  case 243:
4345 <
5134 < /* Line 1455 of yacc.c  */
5135 < #line 1623 "ircd_parser.y"
4344 >  case 249:
4345 > #line 1493 "conf_parser.y" /* yacc.c:1646  */
4346      {
4347    if (conf_parser_ctx.pass == 1)
4348 <  {
5139 <    MyFree(yy_class_name);
5140 <    DupString(yy_class_name, yylval.string);
5141 <  }
4348 >    strlcpy(block_state.class.buf, yylval.string, sizeof(block_state.class.buf));
4349   }
4350 + #line 4351 "conf_parser.c" /* yacc.c:1646  */
4351      break;
4352  
4353 <  case 244:
4354 <
5147 < /* Line 1455 of yacc.c  */
5148 < #line 1632 "ircd_parser.y"
4353 >  case 250:
4354 > #line 1499 "conf_parser.y" /* yacc.c:1646  */
4355      {
4356    if (conf_parser_ctx.pass == 1)
4357 <    PingFreq(yy_class) = (yyvsp[(3) - (4)].number);
4357 >    block_state.ping_freq.value = (yyvsp[-1].number);
4358   }
4359 + #line 4360 "conf_parser.c" /* yacc.c:1646  */
4360      break;
4361  
4362 <  case 245:
4363 <
5157 < /* Line 1455 of yacc.c  */
5158 < #line 1638 "ircd_parser.y"
4362 >  case 251:
4363 > #line 1505 "conf_parser.y" /* yacc.c:1646  */
4364      {
4365    if (conf_parser_ctx.pass == 1)
4366 <    PingWarning(yy_class) = (yyvsp[(3) - (4)].number);
4366 >    block_state.max_perip.value = (yyvsp[-1].number);
4367   }
4368 + #line 4369 "conf_parser.c" /* yacc.c:1646  */
4369      break;
4370  
4371 <  case 246:
4372 <
5167 < /* Line 1455 of yacc.c  */
5168 < #line 1644 "ircd_parser.y"
4371 >  case 252:
4372 > #line 1511 "conf_parser.y" /* yacc.c:1646  */
4373      {
4374    if (conf_parser_ctx.pass == 1)
4375 <    MaxPerIp(yy_class) = (yyvsp[(3) - (4)].number);
4375 >    block_state.con_freq.value = (yyvsp[-1].number);
4376   }
4377 + #line 4378 "conf_parser.c" /* yacc.c:1646  */
4378      break;
4379  
4380 <  case 247:
4381 <
5177 < /* Line 1455 of yacc.c  */
5178 < #line 1650 "ircd_parser.y"
4380 >  case 253:
4381 > #line 1517 "conf_parser.y" /* yacc.c:1646  */
4382      {
4383    if (conf_parser_ctx.pass == 1)
4384 <    ConFreq(yy_class) = (yyvsp[(3) - (4)].number);
4384 >    block_state.max_channels.value = (yyvsp[-1].number);
4385   }
4386 + #line 4387 "conf_parser.c" /* yacc.c:1646  */
4387      break;
4388  
4389 <  case 248:
4390 <
5187 < /* Line 1455 of yacc.c  */
5188 < #line 1656 "ircd_parser.y"
4389 >  case 254:
4390 > #line 1523 "conf_parser.y" /* yacc.c:1646  */
4391      {
4392    if (conf_parser_ctx.pass == 1)
4393 <    MaxTotal(yy_class) = (yyvsp[(3) - (4)].number);
4393 >    block_state.max_total.value = (yyvsp[-1].number);
4394   }
4395 + #line 4396 "conf_parser.c" /* yacc.c:1646  */
4396      break;
4397  
4398 <  case 249:
4399 <
5197 < /* Line 1455 of yacc.c  */
5198 < #line 1662 "ircd_parser.y"
4398 >  case 255:
4399 > #line 1529 "conf_parser.y" /* yacc.c:1646  */
4400      {
4401    if (conf_parser_ctx.pass == 1)
4402 <    MaxGlobal(yy_class) = (yyvsp[(3) - (4)].number);
4402 >    block_state.max_global.value = (yyvsp[-1].number);
4403   }
4404 + #line 4405 "conf_parser.c" /* yacc.c:1646  */
4405      break;
4406  
4407 <  case 250:
4408 <
5207 < /* Line 1455 of yacc.c  */
5208 < #line 1668 "ircd_parser.y"
4407 >  case 256:
4408 > #line 1535 "conf_parser.y" /* yacc.c:1646  */
4409      {
4410    if (conf_parser_ctx.pass == 1)
4411 <    MaxLocal(yy_class) = (yyvsp[(3) - (4)].number);
4411 >    block_state.max_local.value = (yyvsp[-1].number);
4412   }
4413 + #line 4414 "conf_parser.c" /* yacc.c:1646  */
4414      break;
4415  
4416 <  case 251:
4417 <
5217 < /* Line 1455 of yacc.c  */
5218 < #line 1674 "ircd_parser.y"
4416 >  case 257:
4417 > #line 1541 "conf_parser.y" /* yacc.c:1646  */
4418      {
4419    if (conf_parser_ctx.pass == 1)
4420 <    MaxIdent(yy_class) = (yyvsp[(3) - (4)].number);
4420 >    block_state.max_ident.value = (yyvsp[-1].number);
4421   }
4422 + #line 4423 "conf_parser.c" /* yacc.c:1646  */
4423      break;
4424  
4425 <  case 252:
4426 <
5227 < /* Line 1455 of yacc.c  */
5228 < #line 1680 "ircd_parser.y"
4425 >  case 258:
4426 > #line 1547 "conf_parser.y" /* yacc.c:1646  */
4427      {
4428    if (conf_parser_ctx.pass == 1)
4429 <    MaxSendq(yy_class) = (yyvsp[(3) - (4)].number);
4429 >    block_state.max_sendq.value = (yyvsp[-1].number);
4430   }
4431 + #line 4432 "conf_parser.c" /* yacc.c:1646  */
4432      break;
4433  
4434 <  case 253:
4435 <
5237 < /* Line 1455 of yacc.c  */
5238 < #line 1686 "ircd_parser.y"
4434 >  case 259:
4435 > #line 1553 "conf_parser.y" /* yacc.c:1646  */
4436      {
4437    if (conf_parser_ctx.pass == 1)
4438 <    CidrBitlenIPV4(yy_class) = (yyvsp[(3) - (4)].number);
4438 >    if ((yyvsp[-1].number) >= CLIENT_FLOOD_MIN && (yyvsp[-1].number) <= CLIENT_FLOOD_MAX)
4439 >      block_state.max_recvq.value = (yyvsp[-1].number);
4440   }
4441 + #line 4442 "conf_parser.c" /* yacc.c:1646  */
4442      break;
4443  
4444 <  case 254:
4445 <
5247 < /* Line 1455 of yacc.c  */
5248 < #line 1692 "ircd_parser.y"
4444 >  case 260:
4445 > #line 1560 "conf_parser.y" /* yacc.c:1646  */
4446      {
4447    if (conf_parser_ctx.pass == 1)
4448 <    CidrBitlenIPV6(yy_class) = (yyvsp[(3) - (4)].number);
4448 >    block_state.cidr_bitlen_ipv4.value = (yyvsp[-1].number) > 32 ? 32 : (yyvsp[-1].number);
4449   }
4450 + #line 4451 "conf_parser.c" /* yacc.c:1646  */
4451      break;
4452  
4453 <  case 255:
4454 <
5257 < /* Line 1455 of yacc.c  */
5258 < #line 1698 "ircd_parser.y"
4453 >  case 261:
4454 > #line 1566 "conf_parser.y" /* yacc.c:1646  */
4455      {
4456    if (conf_parser_ctx.pass == 1)
4457 <    NumberPerCidr(yy_class) = (yyvsp[(3) - (4)].number);
4457 >    block_state.cidr_bitlen_ipv6.value = (yyvsp[-1].number) > 128 ? 128 : (yyvsp[-1].number);
4458   }
4459 + #line 4460 "conf_parser.c" /* yacc.c:1646  */
4460      break;
4461  
4462 <  case 256:
4463 <
5267 < /* Line 1455 of yacc.c  */
5268 < #line 1707 "ircd_parser.y"
4462 >  case 262:
4463 > #line 1572 "conf_parser.y" /* yacc.c:1646  */
4464      {
4465 <  if (conf_parser_ctx.pass == 2)
4466 <  {
5272 <    listener_address = NULL;
5273 <    listener_flags = 0;
5274 <  }
4465 >  if (conf_parser_ctx.pass == 1)
4466 >    block_state.number_per_cidr.value = (yyvsp[-1].number);
4467   }
4468 + #line 4469 "conf_parser.c" /* yacc.c:1646  */
4469      break;
4470  
4471 <  case 257:
4471 >  case 263:
4472 > #line 1578 "conf_parser.y" /* yacc.c:1646  */
4473 >    {
4474 >  if (conf_parser_ctx.pass != 1)
4475 >    break;
4476 >
4477 >  block_state.min_idle.value = (yyvsp[-1].number);
4478 >  block_state.flags.value |= CLASS_FLAGS_FAKE_IDLE;
4479 > }
4480 > #line 4481 "conf_parser.c" /* yacc.c:1646  */
4481 >    break;
4482  
4483 < /* Line 1455 of yacc.c  */
4484 < #line 1714 "ircd_parser.y"
4483 >  case 264:
4484 > #line 1587 "conf_parser.y" /* yacc.c:1646  */
4485      {
4486 <  if (conf_parser_ctx.pass == 2)
4487 <  {
4488 <    MyFree(listener_address);
4489 <    listener_address = NULL;
4490 <  }
4486 >  if (conf_parser_ctx.pass != 1)
4487 >    break;
4488 >
4489 >  block_state.max_idle.value = (yyvsp[-1].number);
4490 >  block_state.flags.value |= CLASS_FLAGS_FAKE_IDLE;
4491   }
4492 + #line 4493 "conf_parser.c" /* yacc.c:1646  */
4493      break;
4494  
4495 <  case 258:
4495 >  case 265:
4496 > #line 1596 "conf_parser.y" /* yacc.c:1646  */
4497 >    {
4498 >  if (conf_parser_ctx.pass == 1)
4499 >    block_state.flags.value &= CLASS_FLAGS_FAKE_IDLE;
4500 > }
4501 > #line 4502 "conf_parser.c" /* yacc.c:1646  */
4502 >    break;
4503  
4504 < /* Line 1455 of yacc.c  */
4505 < #line 1723 "ircd_parser.y"
4504 >  case 269:
4505 > #line 1603 "conf_parser.y" /* yacc.c:1646  */
4506      {
4507 <  listener_flags = 0;
4507 >  if (conf_parser_ctx.pass == 1)
4508 >    block_state.flags.value |= CLASS_FLAGS_RANDOM_IDLE;
4509   }
4510 + #line 4511 "conf_parser.c" /* yacc.c:1646  */
4511      break;
4512  
4513 <  case 262:
4513 >  case 270:
4514 > #line 1607 "conf_parser.y" /* yacc.c:1646  */
4515 >    {
4516 >  if (conf_parser_ctx.pass == 1)
4517 >    block_state.flags.value |= CLASS_FLAGS_HIDE_IDLE_FROM_OPERS;
4518 > }
4519 > #line 4520 "conf_parser.c" /* yacc.c:1646  */
4520 >    break;
4521  
4522 < /* Line 1455 of yacc.c  */
4523 < #line 1729 "ircd_parser.y"
4522 >  case 271:
4523 > #line 1617 "conf_parser.y" /* yacc.c:1646  */
4524      {
4525    if (conf_parser_ctx.pass == 2)
4526 <    listener_flags |= LISTENER_SSL;
4526 >    reset_block_state();
4527   }
4528 + #line 4529 "conf_parser.c" /* yacc.c:1646  */
4529      break;
4530  
4531 <  case 263:
4531 >  case 273:
4532 > #line 1623 "conf_parser.y" /* yacc.c:1646  */
4533 >    {
4534 >  block_state.flags.value = 0;
4535 > }
4536 > #line 4537 "conf_parser.c" /* yacc.c:1646  */
4537 >    break;
4538  
4539 < /* Line 1455 of yacc.c  */
4540 < #line 1733 "ircd_parser.y"
4539 >  case 277:
4540 > #line 1629 "conf_parser.y" /* yacc.c:1646  */
4541      {
4542    if (conf_parser_ctx.pass == 2)
4543 <    listener_flags |= LISTENER_HIDDEN;
4543 >    block_state.flags.value |= LISTENER_SSL;
4544   }
4545 + #line 4546 "conf_parser.c" /* yacc.c:1646  */
4546      break;
4547  
4548 <  case 264:
4549 <
5322 < /* Line 1455 of yacc.c  */
5323 < #line 1737 "ircd_parser.y"
4548 >  case 278:
4549 > #line 1633 "conf_parser.y" /* yacc.c:1646  */
4550      {
4551    if (conf_parser_ctx.pass == 2)
4552 <    listener_flags |= LISTENER_SERVER;
4552 >    block_state.flags.value |= LISTENER_HIDDEN;
4553   }
4554 + #line 4555 "conf_parser.c" /* yacc.c:1646  */
4555      break;
4556  
4557 <  case 272:
4558 <
4559 < /* Line 1455 of yacc.c  */
4560 < #line 1747 "ircd_parser.y"
4561 <    { listener_flags = 0; }
4557 >  case 279:
4558 > #line 1637 "conf_parser.y" /* yacc.c:1646  */
4559 >    {
4560 >  if (conf_parser_ctx.pass == 2)
4561 >   block_state.flags.value |= LISTENER_SERVER;
4562 > }
4563 > #line 4564 "conf_parser.c" /* yacc.c:1646  */
4564      break;
4565  
4566 <  case 276:
4566 >  case 287:
4567 > #line 1645 "conf_parser.y" /* yacc.c:1646  */
4568 >    { block_state.flags.value = 0; }
4569 > #line 4570 "conf_parser.c" /* yacc.c:1646  */
4570 >    break;
4571  
4572 < /* Line 1455 of yacc.c  */
4573 < #line 1752 "ircd_parser.y"
4572 >  case 291:
4573 > #line 1650 "conf_parser.y" /* yacc.c:1646  */
4574      {
4575    if (conf_parser_ctx.pass == 2)
4576    {
4577 <    if ((listener_flags & LISTENER_SSL))
4577 >    if (block_state.flags.value & LISTENER_SSL)
4578   #ifdef HAVE_LIBCRYPTO
4579        if (!ServerInfo.server_ctx)
4580   #endif
4581        {
4582 <        yyerror("SSL not available - port closed");
4583 <        break;
4582 >        conf_error_report("SSL not available - port closed");
4583 >        break;
4584        }
4585 <    add_listener((yyvsp[(1) - (1)].number), listener_address, listener_flags);
4585 >    add_listener((yyvsp[0].number), block_state.addr.buf, block_state.flags.value);
4586    }
4587   }
4588 + #line 4589 "conf_parser.c" /* yacc.c:1646  */
4589      break;
4590  
4591 <  case 277:
4592 <
5359 < /* Line 1455 of yacc.c  */
5360 < #line 1766 "ircd_parser.y"
4591 >  case 292:
4592 > #line 1664 "conf_parser.y" /* yacc.c:1646  */
4593      {
4594    if (conf_parser_ctx.pass == 2)
4595    {
4596 <    int i;
5365 <
5366 <    if ((listener_flags & LISTENER_SSL))
4596 >    if (block_state.flags.value & LISTENER_SSL)
4597   #ifdef HAVE_LIBCRYPTO
4598        if (!ServerInfo.server_ctx)
4599   #endif
4600        {
4601 <        yyerror("SSL not available - port closed");
4602 <        break;
4601 >        conf_error_report("SSL not available - port closed");
4602 >        break;
4603        }
4604  
4605 <    for (i = (yyvsp[(1) - (3)].number); i <= (yyvsp[(3) - (3)].number); ++i)
4606 <      add_listener(i, listener_address, listener_flags);
4605 >    for (int i = (yyvsp[-2].number); i <= (yyvsp[0].number); ++i)
4606 >      add_listener(i, block_state.addr.buf, block_state.flags.value);
4607    }
4608   }
4609 + #line 4610 "conf_parser.c" /* yacc.c:1646  */
4610      break;
4611  
4612 <  case 278:
4613 <
5383 < /* Line 1455 of yacc.c  */
5384 < #line 1786 "ircd_parser.y"
4612 >  case 293:
4613 > #line 1682 "conf_parser.y" /* yacc.c:1646  */
4614      {
4615    if (conf_parser_ctx.pass == 2)
4616 <  {
5388 <    MyFree(listener_address);
5389 <    DupString(listener_address, yylval.string);
5390 <  }
4616 >    strlcpy(block_state.addr.buf, yylval.string, sizeof(block_state.addr.buf));
4617   }
4618 + #line 4619 "conf_parser.c" /* yacc.c:1646  */
4619      break;
4620  
4621 <  case 279:
4622 <
5396 < /* Line 1455 of yacc.c  */
5397 < #line 1795 "ircd_parser.y"
4621 >  case 294:
4622 > #line 1688 "conf_parser.y" /* yacc.c:1646  */
4623      {
4624    if (conf_parser_ctx.pass == 2)
4625 <  {
5401 <    MyFree(listener_address);
5402 <    DupString(listener_address, yylval.string);
5403 <  }
4625 >    strlcpy(block_state.addr.buf, yylval.string, sizeof(block_state.addr.buf));
4626   }
4627 + #line 4628 "conf_parser.c" /* yacc.c:1646  */
4628      break;
4629  
4630 <  case 280:
4631 <
5409 < /* Line 1455 of yacc.c  */
5410 < #line 1807 "ircd_parser.y"
4630 >  case 295:
4631 > #line 1697 "conf_parser.y" /* yacc.c:1646  */
4632      {
4633    if (conf_parser_ctx.pass == 2)
4634 <  {
5414 <    yy_conf = make_conf_item(CLIENT_TYPE);
5415 <    yy_aconf = map_to_conf(yy_conf);
5416 <  }
5417 <  else
5418 <  {
5419 <    MyFree(class_name);
5420 <    class_name = NULL;
5421 <  }
4634 >    reset_block_state();
4635   }
4636 + #line 4637 "conf_parser.c" /* yacc.c:1646  */
4637      break;
4638  
4639 <  case 281:
4640 <
5427 < /* Line 1455 of yacc.c  */
5428 < #line 1819 "ircd_parser.y"
5429 <    {
5430 <  if (conf_parser_ctx.pass == 2)
5431 <  {
5432 <    struct CollectItem *yy_tmp = NULL;
5433 <    dlink_node *ptr = NULL, *next_ptr = NULL;
5434 <
5435 <    if (yy_aconf->user && yy_aconf->host)
4639 >  case 296:
4640 > #line 1701 "conf_parser.y" /* yacc.c:1646  */
4641      {
4642 <      conf_add_class_to_conf(yy_conf, class_name);
5438 <      add_conf_by_address(CONF_CLIENT, yy_aconf);
5439 <    }
5440 <    else
5441 <      delete_conf_item(yy_conf);
5442 <
5443 <    /* copy over settings from first struct */
5444 <    DLINK_FOREACH_SAFE(ptr, next_ptr, col_conf_list.head)
5445 <    {
5446 <      struct AccessItem *new_aconf;
5447 <      struct ConfItem *new_conf;
5448 <
5449 <      new_conf = make_conf_item(CLIENT_TYPE);
5450 <      new_aconf = map_to_conf(new_conf);
5451 <
5452 <      yy_tmp = ptr->data;
5453 <
5454 <      assert(yy_tmp->user && yy_tmp->host);
5455 <
5456 <      if (yy_aconf->passwd != NULL)
5457 <        DupString(new_aconf->passwd, yy_aconf->passwd);
5458 <      if (yy_conf->name != NULL)
5459 <        DupString(new_conf->name, yy_conf->name);
5460 <      if (yy_aconf->passwd != NULL)
5461 <        DupString(new_aconf->passwd, yy_aconf->passwd);
5462 <
5463 <      new_aconf->flags = yy_aconf->flags;
5464 <      new_aconf->port  = yy_aconf->port;
5465 <
5466 <      DupString(new_aconf->user, yy_tmp->user);
5467 <      collapse(new_aconf->user);
4642 >  dlink_node *ptr = NULL;
4643  
4644 <      DupString(new_aconf->host, yy_tmp->host);
5470 <      collapse(new_aconf->host);
5471 <
5472 <      conf_add_class_to_conf(new_conf, class_name);
5473 <      add_conf_by_address(CONF_CLIENT, new_aconf);
5474 <      dlinkDelete(&yy_tmp->node, &col_conf_list);
5475 <      free_collect_item(yy_tmp);
5476 <    }
5477 <
5478 <    MyFree(class_name);
5479 <    class_name = NULL;
5480 <    yy_conf = NULL;
5481 <    yy_aconf = NULL;
5482 <  }
5483 < }
4644 >  if (conf_parser_ctx.pass != 2)
4645      break;
4646  
4647 <  case 301:
5487 <
5488 < /* Line 1455 of yacc.c  */
5489 < #line 1884 "ircd_parser.y"
5490 <    {
5491 <  if (conf_parser_ctx.pass == 2)
4647 >  DLINK_FOREACH(ptr, block_state.mask.list.head)
4648    {
4649 <    struct CollectItem *yy_tmp = NULL;
4649 >    struct MaskItem *conf = NULL;
4650      struct split_nuh_item nuh;
4651  
4652 <    nuh.nuhmask  = yylval.string;
4652 >    nuh.nuhmask  = ptr->data;
4653      nuh.nickptr  = NULL;
4654 <    nuh.userptr  = userbuf;
4655 <    nuh.hostptr  = hostbuf;
5500 <
4654 >    nuh.userptr  = block_state.user.buf;
4655 >    nuh.hostptr  = block_state.host.buf;
4656      nuh.nicksize = 0;
4657 <    nuh.usersize = sizeof(userbuf);
4658 <    nuh.hostsize = sizeof(hostbuf);
5504 <
4657 >    nuh.usersize = sizeof(block_state.user.buf);
4658 >    nuh.hostsize = sizeof(block_state.host.buf);
4659      split_nuh(&nuh);
4660  
4661 <    if (yy_aconf->user == NULL)
4662 <    {
4663 <      DupString(yy_aconf->user, userbuf);
5510 <      DupString(yy_aconf->host, hostbuf);
5511 <    }
5512 <    else
5513 <    {
5514 <      yy_tmp = MyMalloc(sizeof(struct CollectItem));
4661 >    conf        = conf_make(CONF_CLIENT);
4662 >    conf->user  = xstrdup(block_state.user.buf);
4663 >    conf->host  = xstrdup(block_state.host.buf);
4664  
4665 <      DupString(yy_tmp->user, userbuf);
4666 <      DupString(yy_tmp->host, hostbuf);
4665 >    if (block_state.rpass.buf[0])
4666 >      conf->passwd = xstrdup(block_state.rpass.buf);
4667 >    if (block_state.name.buf[0])
4668 >      conf->name = xstrdup(block_state.name.buf);
4669  
4670 <      dlinkAdd(yy_tmp, &yy_tmp->node, &col_conf_list);
4671 <    }
4670 >    conf->flags = block_state.flags.value;
4671 >    conf->port  = block_state.port.value;
4672 >
4673 >    conf_add_class_to_conf(conf, block_state.class.buf);
4674 >    add_conf_by_address(CONF_CLIENT, conf);
4675    }
4676   }
4677 + #line 4678 "conf_parser.c" /* yacc.c:1646  */
4678      break;
4679  
4680 <  case 302:
4681 <
5527 < /* Line 1455 of yacc.c  */
5528 < #line 1921 "ircd_parser.y"
4680 >  case 308:
4681 > #line 1750 "conf_parser.y" /* yacc.c:1646  */
4682      {
4683    if (conf_parser_ctx.pass == 2)
4684 <  {
5532 <    /* be paranoid */
5533 <    if (yy_aconf->passwd != NULL)
5534 <      memset(yy_aconf->passwd, 0, strlen(yy_aconf->passwd));
5535 <
5536 <    MyFree(yy_aconf->passwd);
5537 <    DupString(yy_aconf->passwd, yylval.string);
5538 <  }
4684 >    dlinkAdd(xstrdup(yylval.string), make_dlink_node(), &block_state.mask.list);
4685   }
4686 + #line 4687 "conf_parser.c" /* yacc.c:1646  */
4687      break;
4688  
4689 <  case 303:
4690 <
5544 < /* Line 1455 of yacc.c  */
5545 < #line 1934 "ircd_parser.y"
4689 >  case 309:
4690 > #line 1756 "conf_parser.y" /* yacc.c:1646  */
4691      {
4692    if (conf_parser_ctx.pass == 2)
4693 <  {
5549 <    if (yylval.number)
5550 <      yy_aconf->flags |= CONF_FLAGS_SPOOF_NOTICE;
5551 <    else
5552 <      yy_aconf->flags &= ~CONF_FLAGS_SPOOF_NOTICE;
5553 <  }
4693 >    strlcpy(block_state.rpass.buf, yylval.string, sizeof(block_state.rpass.buf));
4694   }
4695 + #line 4696 "conf_parser.c" /* yacc.c:1646  */
4696      break;
4697  
4698 <  case 304:
4699 <
5559 < /* Line 1455 of yacc.c  */
5560 < #line 1945 "ircd_parser.y"
4698 >  case 310:
4699 > #line 1762 "conf_parser.y" /* yacc.c:1646  */
4700      {
4701    if (conf_parser_ctx.pass == 2)
4702 <  {
5564 <    MyFree(class_name);
5565 <    DupString(class_name, yylval.string);
5566 <  }
4702 >    strlcpy(block_state.class.buf, yylval.string, sizeof(block_state.class.buf));
4703   }
4704 + #line 4705 "conf_parser.c" /* yacc.c:1646  */
4705      break;
4706  
4707 <  case 305:
4708 <
5572 < /* Line 1455 of yacc.c  */
5573 < #line 1954 "ircd_parser.y"
4707 >  case 311:
4708 > #line 1768 "conf_parser.y" /* yacc.c:1646  */
4709      {
4710    if (conf_parser_ctx.pass == 2)
4711    {
4712      if (yylval.number)
4713 <      SetConfEncrypted(yy_aconf);
4713 >      block_state.flags.value |= CONF_FLAGS_ENCRYPTED;
4714      else
4715 <      ClearConfEncrypted(yy_aconf);
4715 >      block_state.flags.value &= ~CONF_FLAGS_ENCRYPTED;
4716    }
4717   }
4718 <    break;
5584 <
5585 <  case 306:
5586 <
5587 < /* Line 1455 of yacc.c  */
5588 < #line 1965 "ircd_parser.y"
5589 <    {
5590 < }
5591 <    break;
5592 <
5593 <  case 310:
5594 <
5595 < /* Line 1455 of yacc.c  */
5596 < #line 1969 "ircd_parser.y"
5597 <    { not_atom = 1; }
4718 > #line 4719 "conf_parser.c" /* yacc.c:1646  */
4719      break;
4720  
4721    case 312:
4722 <
5602 < /* Line 1455 of yacc.c  */
5603 < #line 1970 "ircd_parser.y"
5604 <    { not_atom = 0; }
5605 <    break;
5606 <
5607 <  case 314:
5608 <
5609 < /* Line 1455 of yacc.c  */
5610 < #line 1973 "ircd_parser.y"
5611 <    {
5612 <  if (conf_parser_ctx.pass == 2)
5613 <  {
5614 <    if (not_atom) yy_aconf->flags &= ~CONF_FLAGS_SPOOF_NOTICE;
5615 <    else yy_aconf->flags |= CONF_FLAGS_SPOOF_NOTICE;
5616 <  }
5617 <
5618 < }
5619 <    break;
5620 <
5621 <  case 315:
5622 <
5623 < /* Line 1455 of yacc.c  */
5624 < #line 1981 "ircd_parser.y"
4722 > #line 1779 "conf_parser.y" /* yacc.c:1646  */
4723      {
4724    if (conf_parser_ctx.pass == 2)
4725 <  {
5628 <    if (not_atom) yy_aconf->flags &= ~CONF_FLAGS_NOLIMIT;
5629 <    else yy_aconf->flags |= CONF_FLAGS_NOLIMIT;
5630 <  }
4725 >    block_state.flags.value &= (CONF_FLAGS_ENCRYPTED | CONF_FLAGS_SPOOF_IP);
4726   }
4727 + #line 4728 "conf_parser.c" /* yacc.c:1646  */
4728      break;
4729  
4730    case 316:
4731 <
5636 < /* Line 1455 of yacc.c  */
5637 < #line 1988 "ircd_parser.y"
4731 > #line 1786 "conf_parser.y" /* yacc.c:1646  */
4732      {
4733    if (conf_parser_ctx.pass == 2)
4734 <  {
5641 <    if (not_atom) yy_aconf->flags &= ~CONF_FLAGS_EXEMPTKLINE;
5642 <    else yy_aconf->flags |= CONF_FLAGS_EXEMPTKLINE;
5643 <  }
4734 >    block_state.flags.value |= CONF_FLAGS_SPOOF_NOTICE;
4735   }
4736 + #line 4737 "conf_parser.c" /* yacc.c:1646  */
4737      break;
4738  
4739    case 317:
4740 <
5649 < /* Line 1455 of yacc.c  */
5650 < #line 1995 "ircd_parser.y"
4740 > #line 1790 "conf_parser.y" /* yacc.c:1646  */
4741      {
4742    if (conf_parser_ctx.pass == 2)
4743 <  {
5654 <    if (not_atom) yy_aconf->flags &= ~CONF_FLAGS_NEED_IDENTD;
5655 <    else yy_aconf->flags |= CONF_FLAGS_NEED_IDENTD;
5656 <  }
4743 >    block_state.flags.value |= CONF_FLAGS_NOLIMIT;
4744   }
4745 + #line 4746 "conf_parser.c" /* yacc.c:1646  */
4746      break;
4747  
4748    case 318:
4749 <
5662 < /* Line 1455 of yacc.c  */
5663 < #line 2002 "ircd_parser.y"
4749 > #line 1794 "conf_parser.y" /* yacc.c:1646  */
4750      {
4751    if (conf_parser_ctx.pass == 2)
4752 <  {
5667 <    if (not_atom) yy_aconf->flags &= ~CONF_FLAGS_CAN_FLOOD;
5668 <    else yy_aconf->flags |= CONF_FLAGS_CAN_FLOOD;
5669 <  }
4752 >    block_state.flags.value |= CONF_FLAGS_EXEMPTKLINE;
4753   }
4754 + #line 4755 "conf_parser.c" /* yacc.c:1646  */
4755      break;
4756  
4757    case 319:
4758 <
5675 < /* Line 1455 of yacc.c  */
5676 < #line 2009 "ircd_parser.y"
4758 > #line 1798 "conf_parser.y" /* yacc.c:1646  */
4759      {
4760    if (conf_parser_ctx.pass == 2)
4761 <  {
5680 <    if (not_atom) yy_aconf->flags &= ~CONF_FLAGS_IDLE_LINED;
5681 <    else yy_aconf->flags |= CONF_FLAGS_IDLE_LINED;
5682 <  }
4761 >    block_state.flags.value |= CONF_FLAGS_NEED_IDENTD;
4762   }
4763 + #line 4764 "conf_parser.c" /* yacc.c:1646  */
4764      break;
4765  
4766    case 320:
4767 <
5688 < /* Line 1455 of yacc.c  */
5689 < #line 2016 "ircd_parser.y"
4767 > #line 1802 "conf_parser.y" /* yacc.c:1646  */
4768      {
4769    if (conf_parser_ctx.pass == 2)
4770 <  {
5693 <    if (not_atom) yy_aconf->flags &= ~CONF_FLAGS_NO_TILDE;
5694 <    else yy_aconf->flags |= CONF_FLAGS_NO_TILDE;
5695 <  }
4770 >    block_state.flags.value |= CONF_FLAGS_CAN_FLOOD;
4771   }
4772 + #line 4773 "conf_parser.c" /* yacc.c:1646  */
4773      break;
4774  
4775    case 321:
4776 <
5701 < /* Line 1455 of yacc.c  */
5702 < #line 2023 "ircd_parser.y"
4776 > #line 1806 "conf_parser.y" /* yacc.c:1646  */
4777      {
4778    if (conf_parser_ctx.pass == 2)
4779 <  {
5706 <    if (not_atom) yy_aconf->flags &= ~CONF_FLAGS_EXEMPTGLINE;
5707 <    else yy_aconf->flags |= CONF_FLAGS_EXEMPTGLINE;
5708 <  }
4779 >    block_state.flags.value |= CONF_FLAGS_NO_TILDE;
4780   }
4781 + #line 4782 "conf_parser.c" /* yacc.c:1646  */
4782      break;
4783  
4784    case 322:
4785 <
5714 < /* Line 1455 of yacc.c  */
5715 < #line 2030 "ircd_parser.y"
4785 > #line 1810 "conf_parser.y" /* yacc.c:1646  */
4786      {
4787    if (conf_parser_ctx.pass == 2)
4788 <  {
5719 <    if (not_atom) yy_aconf->flags &= ~CONF_FLAGS_EXEMPTRESV;
5720 <    else yy_aconf->flags |= CONF_FLAGS_EXEMPTRESV;
5721 <  }
4788 >    block_state.flags.value |= CONF_FLAGS_EXEMPTGLINE;
4789   }
4790 + #line 4791 "conf_parser.c" /* yacc.c:1646  */
4791      break;
4792  
4793    case 323:
4794 <
5727 < /* Line 1455 of yacc.c  */
5728 < #line 2037 "ircd_parser.y"
4794 > #line 1814 "conf_parser.y" /* yacc.c:1646  */
4795      {
4796    if (conf_parser_ctx.pass == 2)
4797 <  {
5732 <    if (not_atom) yy_aconf->flags &= ~CONF_FLAGS_NEED_PASSWORD;
5733 <    else yy_aconf->flags |= CONF_FLAGS_NEED_PASSWORD;
5734 <  }
4797 >    block_state.flags.value |= CONF_FLAGS_EXEMPTRESV;
4798   }
4799 + #line 4800 "conf_parser.c" /* yacc.c:1646  */
4800      break;
4801  
4802    case 324:
4803 <
5740 < /* Line 1455 of yacc.c  */
5741 < #line 2046 "ircd_parser.y"
4803 > #line 1818 "conf_parser.y" /* yacc.c:1646  */
4804      {
4805    if (conf_parser_ctx.pass == 2)
4806 <  {
5745 <    if (yylval.number)
5746 <      yy_aconf->flags |= CONF_FLAGS_EXEMPTKLINE;
5747 <    else
5748 <      yy_aconf->flags &= ~CONF_FLAGS_EXEMPTKLINE;
5749 <  }
4806 >    block_state.flags.value |= CONF_FLAGS_WEBIRC;
4807   }
4808 + #line 4809 "conf_parser.c" /* yacc.c:1646  */
4809      break;
4810  
4811    case 325:
4812 <
5755 < /* Line 1455 of yacc.c  */
5756 < #line 2057 "ircd_parser.y"
4812 > #line 1822 "conf_parser.y" /* yacc.c:1646  */
4813      {
4814    if (conf_parser_ctx.pass == 2)
4815 <  {
5760 <    if (yylval.number)
5761 <      yy_aconf->flags |= CONF_FLAGS_NEED_IDENTD;
5762 <    else
5763 <      yy_aconf->flags &= ~CONF_FLAGS_NEED_IDENTD;
5764 <  }
4815 >    block_state.flags.value |= CONF_FLAGS_NEED_PASSWORD;
4816   }
4817 + #line 4818 "conf_parser.c" /* yacc.c:1646  */
4818      break;
4819  
4820    case 326:
4821 <
5770 < /* Line 1455 of yacc.c  */
5771 < #line 2068 "ircd_parser.y"
4821 > #line 1828 "conf_parser.y" /* yacc.c:1646  */
4822      {
4823 <  if (conf_parser_ctx.pass == 2)
4823 >  if (conf_parser_ctx.pass != 2)
4824 >    break;
4825 >
4826 >  if (valid_hostname(yylval.string))
4827    {
4828 <    if (yylval.number)
4829 <      yy_aconf->flags |= CONF_FLAGS_NOLIMIT;
5777 <    else
5778 <      yy_aconf->flags &= ~CONF_FLAGS_NOLIMIT;
4828 >    strlcpy(block_state.name.buf, yylval.string, sizeof(block_state.name.buf));
4829 >    block_state.flags.value |= CONF_FLAGS_SPOOF_IP;
4830    }
4831 +  else
4832 +    ilog(LOG_TYPE_IRCD, "Spoof either is too long or contains invalid characters. Ignoring it.");
4833   }
4834 + #line 4835 "conf_parser.c" /* yacc.c:1646  */
4835      break;
4836  
4837    case 327:
4838 <
5785 < /* Line 1455 of yacc.c  */
5786 < #line 2079 "ircd_parser.y"
4838 > #line 1842 "conf_parser.y" /* yacc.c:1646  */
4839      {
4840 <  if (conf_parser_ctx.pass == 2)
4841 <  {
4842 <    if (yylval.number)
4843 <      yy_aconf->flags |= CONF_FLAGS_CAN_FLOOD;
4844 <    else
5793 <      yy_aconf->flags &= ~CONF_FLAGS_CAN_FLOOD;
5794 <  }
4840 >  if (conf_parser_ctx.pass != 2)
4841 >    break;
4842 >
4843 >  strlcpy(block_state.name.buf, yylval.string, sizeof(block_state.name.buf));
4844 >  block_state.flags.value |= CONF_FLAGS_REDIR;
4845   }
4846 + #line 4847 "conf_parser.c" /* yacc.c:1646  */
4847      break;
4848  
4849    case 328:
4850 <
5800 < /* Line 1455 of yacc.c  */
5801 < #line 2090 "ircd_parser.y"
4850 > #line 1851 "conf_parser.y" /* yacc.c:1646  */
4851      {
4852 <  if (conf_parser_ctx.pass == 2)
4853 <  {
4854 <    if (yylval.number)
4855 <      yy_aconf->flags |= CONF_FLAGS_NO_TILDE;
4856 <    else
5808 <      yy_aconf->flags &= ~CONF_FLAGS_NO_TILDE;
5809 <  }
4852 >  if (conf_parser_ctx.pass != 2)
4853 >    break;
4854 >
4855 >  block_state.flags.value |= CONF_FLAGS_REDIR;
4856 >  block_state.port.value = (yyvsp[-1].number);
4857   }
4858 + #line 4859 "conf_parser.c" /* yacc.c:1646  */
4859      break;
4860  
4861    case 329:
4862 <
5815 < /* Line 1455 of yacc.c  */
5816 < #line 2101 "ircd_parser.y"
4862 > #line 1864 "conf_parser.y" /* yacc.c:1646  */
4863      {
4864 <  if (conf_parser_ctx.pass == 2)
4865 <  {
4866 <    if (yylval.number)
4867 <      yy_aconf->flags |= CONF_FLAGS_EXEMPTGLINE;
4868 <    else
5823 <      yy_aconf->flags &= ~CONF_FLAGS_EXEMPTGLINE;
5824 <  }
4864 >  if (conf_parser_ctx.pass != 2)
4865 >    break;
4866 >
4867 >  reset_block_state();
4868 >  strlcpy(block_state.rpass.buf, CONF_NOREASON, sizeof(block_state.rpass.buf));
4869   }
4870 + #line 4871 "conf_parser.c" /* yacc.c:1646  */
4871      break;
4872  
4873    case 330:
4874 <
5830 < /* Line 1455 of yacc.c  */
5831 < #line 2113 "ircd_parser.y"
4874 > #line 1871 "conf_parser.y" /* yacc.c:1646  */
4875      {
4876 <  if (conf_parser_ctx.pass == 2)
5834 <  {
5835 <    MyFree(yy_conf->name);
5836 <
5837 <    if (strlen(yylval.string) < HOSTLEN)
5838 <    {    
5839 <      DupString(yy_conf->name, yylval.string);
5840 <      yy_aconf->flags |= CONF_FLAGS_SPOOF_IP;
5841 <    }
5842 <    else
5843 <    {
5844 <      ilog(L_ERROR, "Spoofs must be less than %d..ignoring it", HOSTLEN);
5845 <      yy_conf->name = NULL;
5846 <    }
5847 <  }
5848 < }
4876 >  if (conf_parser_ctx.pass != 2)
4877      break;
4878  
4879 <  case 331:
5852 <
5853 < /* Line 1455 of yacc.c  */
5854 < #line 2132 "ircd_parser.y"
5855 <    {
5856 <  if (conf_parser_ctx.pass == 2)
5857 <  {
5858 <    yy_aconf->flags |= CONF_FLAGS_REDIR;
5859 <    MyFree(yy_conf->name);
5860 <    DupString(yy_conf->name, yylval.string);
5861 <  }
4879 >  create_resv(block_state.name.buf, block_state.rpass.buf, &block_state.mask.list);
4880   }
4881 + #line 4882 "conf_parser.c" /* yacc.c:1646  */
4882      break;
4883  
4884 <  case 332:
4885 <
5867 < /* Line 1455 of yacc.c  */
5868 < #line 2142 "ircd_parser.y"
4884 >  case 337:
4885 > #line 1882 "conf_parser.y" /* yacc.c:1646  */
4886      {
4887    if (conf_parser_ctx.pass == 2)
4888 <  {
5872 <    yy_aconf->flags |= CONF_FLAGS_REDIR;
5873 <    yy_aconf->port = (yyvsp[(3) - (4)].number);
5874 <  }
4888 >    strlcpy(block_state.name.buf, yylval.string, sizeof(block_state.name.buf));
4889   }
4890 + #line 4891 "conf_parser.c" /* yacc.c:1646  */
4891      break;
4892  
4893 <  case 333:
4894 <
5880 < /* Line 1455 of yacc.c  */
5881 < #line 2151 "ircd_parser.y"
4893 >  case 338:
4894 > #line 1888 "conf_parser.y" /* yacc.c:1646  */
4895      {
4896    if (conf_parser_ctx.pass == 2)
4897 <  {
5885 <    if (yylval.number)
5886 <      yy_aconf->flags |= CONF_FLAGS_NEED_PASSWORD;
5887 <    else
5888 <      yy_aconf->flags &= ~CONF_FLAGS_NEED_PASSWORD;
5889 <  }
4897 >    strlcpy(block_state.rpass.buf, yylval.string, sizeof(block_state.rpass.buf));
4898   }
4899 + #line 4900 "conf_parser.c" /* yacc.c:1646  */
4900      break;
4901  
4902 <  case 334:
4903 <
5895 < /* Line 1455 of yacc.c  */
5896 < #line 2166 "ircd_parser.y"
4902 >  case 339:
4903 > #line 1894 "conf_parser.y" /* yacc.c:1646  */
4904      {
4905    if (conf_parser_ctx.pass == 2)
4906 <  {
5900 <    MyFree(resv_reason);
5901 <    resv_reason = NULL;
5902 <  }
4906 >    dlinkAdd(xstrdup(yylval.string), make_dlink_node(), &block_state.mask.list);
4907   }
4908 + #line 4909 "conf_parser.c" /* yacc.c:1646  */
4909      break;
4910  
4911 <  case 335:
4912 <
5908 < /* Line 1455 of yacc.c  */
5909 < #line 2173 "ircd_parser.y"
4911 >  case 345:
4912 > #line 1909 "conf_parser.y" /* yacc.c:1646  */
4913      {
4914 <  if (conf_parser_ctx.pass == 2)
5912 <  {
5913 <    MyFree(resv_reason);
5914 <    resv_reason = NULL;
5915 <  }
5916 < }
4914 >  if (conf_parser_ctx.pass != 2)
4915      break;
4916  
4917 <  case 342:
5920 <
5921 < /* Line 1455 of yacc.c  */
5922 < #line 2185 "ircd_parser.y"
5923 <    {
5924 <  if (conf_parser_ctx.pass == 2)
4917 >  if (valid_servname(yylval.string))
4918    {
4919 <    MyFree(resv_reason);
4920 <    DupString(resv_reason, yylval.string);
4919 >    struct MaskItem *conf = conf_make(CONF_SERVICE);
4920 >    conf->name = xstrdup(yylval.string);
4921    }
4922   }
4923 + #line 4924 "conf_parser.c" /* yacc.c:1646  */
4924      break;
4925  
4926 <  case 343:
4927 <
5934 < /* Line 1455 of yacc.c  */
5935 < #line 2194 "ircd_parser.y"
5936 <    {
5937 <  if (conf_parser_ctx.pass == 2)
5938 <  {
5939 <    if (IsChanPrefix(*yylval.string))
4926 >  case 346:
4927 > #line 1924 "conf_parser.y" /* yacc.c:1646  */
4928      {
4929 <      char def_reason[] = "No reason";
5942 <
5943 <      create_channel_resv(yylval.string, resv_reason != NULL ? resv_reason : def_reason, 1);
5944 <    }
5945 <  }
5946 <  /* ignore it for now.. but we really should make a warning if
5947 <   * its an erroneous name --fl_ */
5948 < }
4929 >  if (conf_parser_ctx.pass != 2)
4930      break;
4931  
4932 <  case 344:
5952 <
5953 < /* Line 1455 of yacc.c  */
5954 < #line 2209 "ircd_parser.y"
5955 <    {
5956 <  if (conf_parser_ctx.pass == 2)
5957 <  {
5958 <    char def_reason[] = "No reason";
4932 >  reset_block_state();
4933  
4934 <    create_nick_resv(yylval.string, resv_reason != NULL ? resv_reason : def_reason, 1);
4935 <  }
4934 >  strlcpy(block_state.name.buf, "*", sizeof(block_state.name.buf));
4935 >  strlcpy(block_state.user.buf, "*", sizeof(block_state.user.buf));
4936 >  strlcpy(block_state.host.buf, "*", sizeof(block_state.host.buf));
4937 >  block_state.flags.value = SHARED_ALL;
4938   }
4939 + #line 4940 "conf_parser.c" /* yacc.c:1646  */
4940      break;
4941  
4942 <  case 345:
4943 <
5967 < /* Line 1455 of yacc.c  */
5968 < #line 2222 "ircd_parser.y"
4942 >  case 347:
4943 > #line 1935 "conf_parser.y" /* yacc.c:1646  */
4944      {
4945 <  if (conf_parser_ctx.pass == 2)
5971 <  {
5972 <    yy_conf = make_conf_item(ULINE_TYPE);
5973 <    yy_match_item = map_to_conf(yy_conf);
5974 <    yy_match_item->action = SHARED_ALL;
5975 <  }
5976 < }
5977 <    break;
4945 >  struct MaskItem *conf = NULL;
4946  
4947 <  case 346:
4947 >  if (conf_parser_ctx.pass != 2)
4948 >    break;
4949  
4950 < /* Line 1455 of yacc.c  */
4951 < #line 2230 "ircd_parser.y"
4952 <    {
4953 <  if (conf_parser_ctx.pass == 2)
4954 <  {
5986 <    yy_conf = NULL;
5987 <  }
4950 >  conf = conf_make(CONF_ULINE);
4951 >  conf->flags = block_state.flags.value;
4952 >  conf->name = xstrdup(block_state.name.buf);
4953 >  conf->user = xstrdup(block_state.user.buf);
4954 >  conf->host = xstrdup(block_state.host.buf);
4955   }
4956 + #line 4957 "conf_parser.c" /* yacc.c:1646  */
4957      break;
4958  
4959 <  case 353:
4960 <
5993 < /* Line 1455 of yacc.c  */
5994 < #line 2241 "ircd_parser.y"
4959 >  case 354:
4960 > #line 1952 "conf_parser.y" /* yacc.c:1646  */
4961      {
4962    if (conf_parser_ctx.pass == 2)
4963 <  {
5998 <    MyFree(yy_conf->name);
5999 <    DupString(yy_conf->name, yylval.string);
6000 <  }
4963 >    strlcpy(block_state.name.buf, yylval.string, sizeof(block_state.name.buf));
4964   }
4965 + #line 4966 "conf_parser.c" /* yacc.c:1646  */
4966      break;
4967  
4968 <  case 354:
4969 <
6006 < /* Line 1455 of yacc.c  */
6007 < #line 2250 "ircd_parser.y"
4968 >  case 355:
4969 > #line 1958 "conf_parser.y" /* yacc.c:1646  */
4970      {
4971    if (conf_parser_ctx.pass == 2)
4972    {
# Line 6012 | Line 4974 | yyreduce:
4974  
4975      nuh.nuhmask  = yylval.string;
4976      nuh.nickptr  = NULL;
4977 <    nuh.userptr  = userbuf;
4978 <    nuh.hostptr  = hostbuf;
4977 >    nuh.userptr  = block_state.user.buf;
4978 >    nuh.hostptr  = block_state.host.buf;
4979  
4980      nuh.nicksize = 0;
4981 <    nuh.usersize = sizeof(userbuf);
4982 <    nuh.hostsize = sizeof(hostbuf);
4981 >    nuh.usersize = sizeof(block_state.user.buf);
4982 >    nuh.hostsize = sizeof(block_state.host.buf);
4983  
4984      split_nuh(&nuh);
6023
6024    DupString(yy_match_item->user, userbuf);
6025    DupString(yy_match_item->host, hostbuf);
4985    }
4986   }
4987 + #line 4988 "conf_parser.c" /* yacc.c:1646  */
4988      break;
4989  
4990 <  case 355:
4991 <
6032 < /* Line 1455 of yacc.c  */
6033 < #line 2272 "ircd_parser.y"
6034 <    {
6035 <  if (conf_parser_ctx.pass == 2)
6036 <    yy_match_item->action = 0;
6037 < }
6038 <    break;
6039 <
6040 <  case 359:
6041 <
6042 < /* Line 1455 of yacc.c  */
6043 < #line 2279 "ircd_parser.y"
4990 >  case 356:
4991 > #line 1977 "conf_parser.y" /* yacc.c:1646  */
4992      {
4993    if (conf_parser_ctx.pass == 2)
4994 <    yy_match_item->action |= SHARED_KLINE;
4994 >    block_state.flags.value = 0;
4995   }
4996 + #line 4997 "conf_parser.c" /* yacc.c:1646  */
4997      break;
4998  
4999    case 360:
5000 <
6052 < /* Line 1455 of yacc.c  */
6053 < #line 2283 "ircd_parser.y"
5000 > #line 1984 "conf_parser.y" /* yacc.c:1646  */
5001      {
5002    if (conf_parser_ctx.pass == 2)
5003 <    yy_match_item->action |= SHARED_TKLINE;
5003 >    block_state.flags.value |= SHARED_KLINE;
5004   }
5005 + #line 5006 "conf_parser.c" /* yacc.c:1646  */
5006      break;
5007  
5008    case 361:
5009 <
6062 < /* Line 1455 of yacc.c  */
6063 < #line 2287 "ircd_parser.y"
5009 > #line 1988 "conf_parser.y" /* yacc.c:1646  */
5010      {
5011    if (conf_parser_ctx.pass == 2)
5012 <    yy_match_item->action |= SHARED_UNKLINE;
5012 >    block_state.flags.value |= SHARED_UNKLINE;
5013   }
5014 + #line 5015 "conf_parser.c" /* yacc.c:1646  */
5015      break;
5016  
5017    case 362:
5018 <
6072 < /* Line 1455 of yacc.c  */
6073 < #line 2291 "ircd_parser.y"
5018 > #line 1992 "conf_parser.y" /* yacc.c:1646  */
5019      {
5020    if (conf_parser_ctx.pass == 2)
5021 <    yy_match_item->action |= SHARED_XLINE;
5021 >    block_state.flags.value |= SHARED_DLINE;
5022   }
5023 + #line 5024 "conf_parser.c" /* yacc.c:1646  */
5024      break;
5025  
5026    case 363:
5027 <
6082 < /* Line 1455 of yacc.c  */
6083 < #line 2295 "ircd_parser.y"
5027 > #line 1996 "conf_parser.y" /* yacc.c:1646  */
5028      {
5029    if (conf_parser_ctx.pass == 2)
5030 <    yy_match_item->action |= SHARED_TXLINE;
5030 >    block_state.flags.value |= SHARED_UNDLINE;
5031   }
5032 + #line 5033 "conf_parser.c" /* yacc.c:1646  */
5033      break;
5034  
5035    case 364:
5036 <
6092 < /* Line 1455 of yacc.c  */
6093 < #line 2299 "ircd_parser.y"
5036 > #line 2000 "conf_parser.y" /* yacc.c:1646  */
5037      {
5038    if (conf_parser_ctx.pass == 2)
5039 <    yy_match_item->action |= SHARED_UNXLINE;
5039 >    block_state.flags.value |= SHARED_XLINE;
5040   }
5041 + #line 5042 "conf_parser.c" /* yacc.c:1646  */
5042      break;
5043  
5044    case 365:
5045 <
6102 < /* Line 1455 of yacc.c  */
6103 < #line 2303 "ircd_parser.y"
5045 > #line 2004 "conf_parser.y" /* yacc.c:1646  */
5046      {
5047    if (conf_parser_ctx.pass == 2)
5048 <    yy_match_item->action |= SHARED_RESV;
5048 >    block_state.flags.value |= SHARED_UNXLINE;
5049   }
5050 + #line 5051 "conf_parser.c" /* yacc.c:1646  */
5051      break;
5052  
5053    case 366:
5054 <
6112 < /* Line 1455 of yacc.c  */
6113 < #line 2307 "ircd_parser.y"
5054 > #line 2008 "conf_parser.y" /* yacc.c:1646  */
5055      {
5056    if (conf_parser_ctx.pass == 2)
5057 <    yy_match_item->action |= SHARED_TRESV;
5057 >    block_state.flags.value |= SHARED_RESV;
5058   }
5059 + #line 5060 "conf_parser.c" /* yacc.c:1646  */
5060      break;
5061  
5062    case 367:
5063 <
6122 < /* Line 1455 of yacc.c  */
6123 < #line 2311 "ircd_parser.y"
5063 > #line 2012 "conf_parser.y" /* yacc.c:1646  */
5064      {
5065    if (conf_parser_ctx.pass == 2)
5066 <    yy_match_item->action |= SHARED_UNRESV;
5066 >    block_state.flags.value |= SHARED_UNRESV;
5067   }
5068 + #line 5069 "conf_parser.c" /* yacc.c:1646  */
5069      break;
5070  
5071    case 368:
5072 <
6132 < /* Line 1455 of yacc.c  */
6133 < #line 2315 "ircd_parser.y"
5072 > #line 2016 "conf_parser.y" /* yacc.c:1646  */
5073      {
5074    if (conf_parser_ctx.pass == 2)
5075 <    yy_match_item->action |= SHARED_LOCOPS;
5075 >    block_state.flags.value |= SHARED_LOCOPS;
5076   }
5077 + #line 5078 "conf_parser.c" /* yacc.c:1646  */
5078      break;
5079  
5080    case 369:
5081 <
6142 < /* Line 1455 of yacc.c  */
6143 < #line 2319 "ircd_parser.y"
5081 > #line 2020 "conf_parser.y" /* yacc.c:1646  */
5082      {
5083    if (conf_parser_ctx.pass == 2)
5084 <    yy_match_item->action = SHARED_ALL;
5084 >    block_state.flags.value = SHARED_ALL;
5085   }
5086 + #line 5087 "conf_parser.c" /* yacc.c:1646  */
5087      break;
5088  
5089    case 370:
5090 <
6152 < /* Line 1455 of yacc.c  */
6153 < #line 2328 "ircd_parser.y"
5090 > #line 2029 "conf_parser.y" /* yacc.c:1646  */
5091      {
5092 <  if (conf_parser_ctx.pass == 2)
5093 <  {
5094 <    yy_conf = make_conf_item(CLUSTER_TYPE);
5095 <    yy_conf->flags = SHARED_ALL;
5096 <  }
5092 >  if (conf_parser_ctx.pass != 2)
5093 >    break;
5094 >
5095 >  reset_block_state();
5096 >
5097 >  strlcpy(block_state.name.buf, "*", sizeof(block_state.name.buf));
5098 >  block_state.flags.value = SHARED_ALL;
5099   }
5100 + #line 5101 "conf_parser.c" /* yacc.c:1646  */
5101      break;
5102  
5103    case 371:
5104 <
6165 < /* Line 1455 of yacc.c  */
6166 < #line 2335 "ircd_parser.y"
5104 > #line 2038 "conf_parser.y" /* yacc.c:1646  */
5105      {
5106 <  if (conf_parser_ctx.pass == 2)
5107 <  {
5108 <    if (yy_conf->name == NULL)
5109 <      DupString(yy_conf->name, "*");
5110 <    yy_conf = NULL;
5111 <  }
5106 >  struct MaskItem *conf = NULL;
5107 >
5108 >  if (conf_parser_ctx.pass != 2)
5109 >    break;
5110 >
5111 >  conf = conf_make(CONF_CLUSTER);
5112 >  conf->flags = block_state.flags.value;
5113 >  conf->name = xstrdup(block_state.name.buf);
5114   }
5115 + #line 5116 "conf_parser.c" /* yacc.c:1646  */
5116      break;
5117  
5118    case 377:
5119 <
6179 < /* Line 1455 of yacc.c  */
6180 < #line 2348 "ircd_parser.y"
5119 > #line 2053 "conf_parser.y" /* yacc.c:1646  */
5120      {
5121    if (conf_parser_ctx.pass == 2)
5122 <    DupString(yy_conf->name, yylval.string);
5122 >    strlcpy(block_state.name.buf, yylval.string, sizeof(block_state.name.buf));
5123   }
5124 + #line 5125 "conf_parser.c" /* yacc.c:1646  */
5125      break;
5126  
5127    case 378:
5128 <
6189 < /* Line 1455 of yacc.c  */
6190 < #line 2354 "ircd_parser.y"
5128 > #line 2059 "conf_parser.y" /* yacc.c:1646  */
5129      {
5130    if (conf_parser_ctx.pass == 2)
5131 <    yy_conf->flags = 0;
5131 >    block_state.flags.value = 0;
5132   }
5133 + #line 5134 "conf_parser.c" /* yacc.c:1646  */
5134      break;
5135  
5136    case 382:
5137 <
6199 < /* Line 1455 of yacc.c  */
6200 < #line 2361 "ircd_parser.y"
5137 > #line 2066 "conf_parser.y" /* yacc.c:1646  */
5138      {
5139    if (conf_parser_ctx.pass == 2)
5140 <    yy_conf->flags |= SHARED_KLINE;
5140 >    block_state.flags.value |= SHARED_KLINE;
5141   }
5142 + #line 5143 "conf_parser.c" /* yacc.c:1646  */
5143      break;
5144  
5145    case 383:
5146 <
6209 < /* Line 1455 of yacc.c  */
6210 < #line 2365 "ircd_parser.y"
5146 > #line 2070 "conf_parser.y" /* yacc.c:1646  */
5147      {
5148    if (conf_parser_ctx.pass == 2)
5149 <    yy_conf->flags |= SHARED_TKLINE;
5149 >    block_state.flags.value |= SHARED_UNKLINE;
5150   }
5151 + #line 5152 "conf_parser.c" /* yacc.c:1646  */
5152      break;
5153  
5154    case 384:
5155 <
6219 < /* Line 1455 of yacc.c  */
6220 < #line 2369 "ircd_parser.y"
5155 > #line 2074 "conf_parser.y" /* yacc.c:1646  */
5156      {
5157    if (conf_parser_ctx.pass == 2)
5158 <    yy_conf->flags |= SHARED_UNKLINE;
5158 >    block_state.flags.value |= SHARED_DLINE;
5159   }
5160 + #line 5161 "conf_parser.c" /* yacc.c:1646  */
5161      break;
5162  
5163    case 385:
5164 <
6229 < /* Line 1455 of yacc.c  */
6230 < #line 2373 "ircd_parser.y"
5164 > #line 2078 "conf_parser.y" /* yacc.c:1646  */
5165      {
5166    if (conf_parser_ctx.pass == 2)
5167 <    yy_conf->flags |= SHARED_XLINE;
5167 >    block_state.flags.value |= SHARED_UNDLINE;
5168   }
5169 + #line 5170 "conf_parser.c" /* yacc.c:1646  */
5170      break;
5171  
5172    case 386:
5173 <
6239 < /* Line 1455 of yacc.c  */
6240 < #line 2377 "ircd_parser.y"
5173 > #line 2082 "conf_parser.y" /* yacc.c:1646  */
5174      {
5175    if (conf_parser_ctx.pass == 2)
5176 <    yy_conf->flags |= SHARED_TXLINE;
5176 >    block_state.flags.value |= SHARED_XLINE;
5177   }
5178 + #line 5179 "conf_parser.c" /* yacc.c:1646  */
5179      break;
5180  
5181    case 387:
5182 <
6249 < /* Line 1455 of yacc.c  */
6250 < #line 2381 "ircd_parser.y"
5182 > #line 2086 "conf_parser.y" /* yacc.c:1646  */
5183      {
5184    if (conf_parser_ctx.pass == 2)
5185 <    yy_conf->flags |= SHARED_UNXLINE;
5185 >    block_state.flags.value |= SHARED_UNXLINE;
5186   }
5187 + #line 5188 "conf_parser.c" /* yacc.c:1646  */
5188      break;
5189  
5190    case 388:
5191 <
6259 < /* Line 1455 of yacc.c  */
6260 < #line 2385 "ircd_parser.y"
5191 > #line 2090 "conf_parser.y" /* yacc.c:1646  */
5192      {
5193    if (conf_parser_ctx.pass == 2)
5194 <    yy_conf->flags |= SHARED_RESV;
5194 >    block_state.flags.value |= SHARED_RESV;
5195   }
5196 + #line 5197 "conf_parser.c" /* yacc.c:1646  */
5197      break;
5198  
5199    case 389:
5200 <
6269 < /* Line 1455 of yacc.c  */
6270 < #line 2389 "ircd_parser.y"
5200 > #line 2094 "conf_parser.y" /* yacc.c:1646  */
5201      {
5202    if (conf_parser_ctx.pass == 2)
5203 <    yy_conf->flags |= SHARED_TRESV;
5203 >    block_state.flags.value |= SHARED_UNRESV;
5204   }
5205 + #line 5206 "conf_parser.c" /* yacc.c:1646  */
5206      break;
5207  
5208    case 390:
5209 <
6279 < /* Line 1455 of yacc.c  */
6280 < #line 2393 "ircd_parser.y"
5209 > #line 2098 "conf_parser.y" /* yacc.c:1646  */
5210      {
5211    if (conf_parser_ctx.pass == 2)
5212 <    yy_conf->flags |= SHARED_UNRESV;
5212 >    block_state.flags.value |= SHARED_LOCOPS;
5213   }
5214 + #line 5215 "conf_parser.c" /* yacc.c:1646  */
5215      break;
5216  
5217    case 391:
5218 <
6289 < /* Line 1455 of yacc.c  */
6290 < #line 2397 "ircd_parser.y"
5218 > #line 2102 "conf_parser.y" /* yacc.c:1646  */
5219      {
5220    if (conf_parser_ctx.pass == 2)
5221 <    yy_conf->flags |= SHARED_LOCOPS;
5221 >    block_state.flags.value = SHARED_ALL;
5222   }
5223 + #line 5224 "conf_parser.c" /* yacc.c:1646  */
5224      break;
5225  
5226    case 392:
5227 <
6299 < /* Line 1455 of yacc.c  */
6300 < #line 2401 "ircd_parser.y"
5227 > #line 2111 "conf_parser.y" /* yacc.c:1646  */
5228      {
6302  if (conf_parser_ctx.pass == 2)
6303    yy_conf->flags = SHARED_ALL;
6304 }
6305    break;
5229  
5230 <  case 393:
6308 <
6309 < /* Line 1455 of yacc.c  */
6310 < #line 2410 "ircd_parser.y"
6311 <    {
6312 <  if (conf_parser_ctx.pass == 2)
6313 <  {
6314 <    yy_conf = make_conf_item(SERVER_TYPE);
6315 <    yy_aconf = (struct AccessItem *)map_to_conf(yy_conf);
6316 <    yy_aconf->passwd = NULL;
6317 <    /* defaults */
6318 <    yy_aconf->port = PORTNUM;
6319 <
6320 <    if (ConfigFileEntry.burst_away)
6321 <      yy_aconf->flags = CONF_FLAGS_BURST_AWAY;
6322 <  }
6323 <  else
6324 <  {
6325 <    MyFree(class_name);
6326 <    class_name = NULL;
6327 <  }
6328 < }
5230 >  if (conf_parser_ctx.pass != 2)
5231      break;
5232  
5233 <  case 394:
5234 <
5235 < /* Line 1455 of yacc.c  */
6334 < #line 2428 "ircd_parser.y"
6335 <    {
6336 <  if (conf_parser_ctx.pass == 2)
6337 <  {
6338 <    struct CollectItem *yy_hconf=NULL;
6339 <    struct CollectItem *yy_lconf=NULL;
6340 <    dlink_node *ptr;
6341 <    dlink_node *next_ptr;
6342 < #ifdef HAVE_LIBCRYPTO
6343 <    if (yy_aconf->host &&
6344 <        ((yy_aconf->passwd && yy_aconf->spasswd) ||
6345 <         (yy_aconf->rsa_public_key && IsConfCryptLink(yy_aconf))))
6346 < #else /* !HAVE_LIBCRYPTO */
6347 <      if (yy_aconf->host && !IsConfCryptLink(yy_aconf) &&
6348 <          yy_aconf->passwd && yy_aconf->spasswd)
6349 < #endif /* !HAVE_LIBCRYPTO */
6350 <        {
6351 <          if (conf_add_server(yy_conf, class_name) == -1)
6352 <          {
6353 <            delete_conf_item(yy_conf);
6354 <            yy_conf = NULL;
6355 <            yy_aconf = NULL;
6356 <          }
6357 <        }
6358 <        else
6359 <        {
6360 <          /* Even if yy_conf ->name is NULL
6361 <           * should still unhook any hub/leaf confs still pending
6362 <           */
6363 <          unhook_hub_leaf_confs();
6364 <
6365 <          if (yy_conf->name != NULL)
6366 <          {
6367 < #ifndef HAVE_LIBCRYPTO
6368 <            if (IsConfCryptLink(yy_aconf))
6369 <              yyerror("Ignoring connect block -- no OpenSSL support");
6370 < #else
6371 <            if (IsConfCryptLink(yy_aconf) && !yy_aconf->rsa_public_key)
6372 <              yyerror("Ignoring connect block -- missing key");
6373 < #endif
6374 <            if (yy_aconf->host == NULL)
6375 <              yyerror("Ignoring connect block -- missing host");
6376 <            else if (!IsConfCryptLink(yy_aconf) &&
6377 <                    (!yy_aconf->passwd || !yy_aconf->spasswd))
6378 <              yyerror("Ignoring connect block -- missing password");
6379 <          }
6380 <
6381 <
6382 <          /* XXX
6383 <           * This fixes a try_connections() core (caused by invalid class_ptr
6384 <           * pointers) reported by metalrock. That's an ugly fix, but there
6385 <           * is currently no better way. The entire config subsystem needs an
6386 <           * rewrite ASAP. make_conf_item() shouldn't really add things onto
6387 <           * a doubly linked list immediately without any sanity checks!  -Michael
6388 <           */
6389 <          delete_conf_item(yy_conf);
6390 <
6391 <          yy_aconf = NULL;
6392 <          yy_conf = NULL;
6393 <        }
6394 <
6395 <      /*
6396 <       * yy_conf is still pointing at the server that is having
6397 <       * a connect block built for it. This means, y_aconf->name
6398 <       * points to the actual irc name this server will be known as.
6399 <       * Now this new server has a set or even just one hub_mask (or leaf_mask)
6400 <       * given in the link list at yy_hconf. Fill in the HUB confs
6401 <       * from this link list now.
6402 <       */        
6403 <      DLINK_FOREACH_SAFE(ptr, next_ptr, hub_conf_list.head)
6404 <      {
6405 <        struct ConfItem *new_hub_conf;
6406 <        struct MatchItem *match_item;
6407 <
6408 <        yy_hconf = ptr->data;
6409 <
6410 <        /* yy_conf == NULL is a fatal error for this connect block! */
6411 <        if ((yy_conf != NULL) && (yy_conf->name != NULL))
6412 <        {
6413 <          new_hub_conf = make_conf_item(HUB_TYPE);
6414 <          match_item = (struct MatchItem *)map_to_conf(new_hub_conf);
6415 <          DupString(new_hub_conf->name, yy_conf->name);
6416 <          if (yy_hconf->user != NULL)
6417 <            DupString(match_item->user, yy_hconf->user);
6418 <          else
6419 <            DupString(match_item->user, "*");
6420 <          if (yy_hconf->host != NULL)
6421 <            DupString(match_item->host, yy_hconf->host);
6422 <          else
6423 <            DupString(match_item->host, "*");
6424 <        }
6425 <        dlinkDelete(&yy_hconf->node, &hub_conf_list);
6426 <        free_collect_item(yy_hconf);
6427 <      }
6428 <
6429 <      /* Ditto for the LEAF confs */
6430 <
6431 <      DLINK_FOREACH_SAFE(ptr, next_ptr, leaf_conf_list.head)
6432 <      {
6433 <        struct ConfItem *new_leaf_conf;
6434 <        struct MatchItem *match_item;
6435 <
6436 <        yy_lconf = ptr->data;
6437 <
6438 <        if ((yy_conf != NULL) && (yy_conf->name != NULL))
6439 <        {
6440 <          new_leaf_conf = make_conf_item(LEAF_TYPE);
6441 <          match_item = (struct MatchItem *)map_to_conf(new_leaf_conf);
6442 <          DupString(new_leaf_conf->name, yy_conf->name);
6443 <          if (yy_lconf->user != NULL)
6444 <            DupString(match_item->user, yy_lconf->user);
6445 <          else
6446 <            DupString(match_item->user, "*");
6447 <          if (yy_lconf->host != NULL)
6448 <            DupString(match_item->host, yy_lconf->host);
6449 <          else
6450 <            DupString(match_item->host, "*");
6451 <        }
6452 <        dlinkDelete(&yy_lconf->node, &leaf_conf_list);
6453 <        free_collect_item(yy_lconf);
6454 <      }
6455 <      MyFree(class_name);
6456 <      class_name = NULL;
6457 <      yy_conf = NULL;
6458 <      yy_aconf = NULL;
6459 <  }
5233 >  reset_block_state();
5234 >  block_state.aftype.value = AF_INET;
5235 >  block_state.port.value = PORTNUM;
5236   }
5237 + #line 5238 "conf_parser.c" /* yacc.c:1646  */
5238      break;
5239  
5240 <  case 419:
5241 <
6465 < /* Line 1455 of yacc.c  */
6466 < #line 2567 "ircd_parser.y"
5240 >  case 393:
5241 > #line 2120 "conf_parser.y" /* yacc.c:1646  */
5242      {
5243 <  if (conf_parser_ctx.pass == 2)
5244 <  {
6470 <    if (yy_conf->name != NULL)
6471 <      yyerror("Multiple connect name entry");
5243 >  struct MaskItem *conf = NULL;
5244 >  struct addrinfo hints, *res;
5245  
5246 <    MyFree(yy_conf->name);
6474 <    DupString(yy_conf->name, yylval.string);
6475 <  }
6476 < }
5246 >  if (conf_parser_ctx.pass != 2)
5247      break;
5248  
5249 <  case 420:
5249 >  if (!block_state.name.buf[0] ||
5250 >      !block_state.host.buf[0])
5251 >    break;
5252  
5253 < /* Line 1455 of yacc.c  */
5254 < #line 2579 "ircd_parser.y"
5255 <    {
6484 <  if (conf_parser_ctx.pass == 2)
6485 <  {
6486 <    if (yy_conf->name != NULL)
6487 <      yyerror("Multiple connect name entry");
5253 >  if (!block_state.rpass.buf[0] ||
5254 >      !block_state.spass.buf[0])
5255 >    break;
5256  
5257 <    MyFree(yy_conf->name);
5258 <    DupString(yy_conf->name, yylval.string);
6491 <  }
6492 < }
5257 >  if (has_wildcards(block_state.name.buf) ||
5258 >      has_wildcards(block_state.host.buf))
5259      break;
5260  
5261 <  case 421:
5261 >  conf = conf_make(CONF_SERVER);
5262 >  conf->port = block_state.port.value;
5263 >  conf->flags = block_state.flags.value;
5264 >  conf->aftype = block_state.aftype.value;
5265 >  conf->host = xstrdup(block_state.host.buf);
5266 >  conf->name = xstrdup(block_state.name.buf);
5267 >  conf->passwd = xstrdup(block_state.rpass.buf);
5268 >  conf->spasswd = xstrdup(block_state.spass.buf);
5269  
5270 < /* Line 1455 of yacc.c  */
5271 < #line 2591 "ircd_parser.y"
6499 <    {
6500 <  if (conf_parser_ctx.pass == 2)
6501 <  {
6502 <    MyFree(yy_aconf->host);
6503 <    DupString(yy_aconf->host, yylval.string);
6504 <  }
6505 < }
6506 <    break;
5270 >  if (block_state.cert.buf[0])
5271 >    conf->certfp = xstrdup(block_state.cert.buf);
5272  
5273 <  case 422:
5273 >  if (block_state.ciph.buf[0])
5274 >    conf->cipher_list = xstrdup(block_state.ciph.buf);
5275  
5276 < /* Line 1455 of yacc.c  */
5277 < #line 2600 "ircd_parser.y"
6512 <    {
6513 <  if (conf_parser_ctx.pass == 2)
6514 <  {
6515 <    struct addrinfo hints, *res;
5276 >  dlinkMoveList(&block_state.leaf.list, &conf->leaf_list);
5277 >  dlinkMoveList(&block_state.hub.list, &conf->hub_list);
5278  
5279 +  if (block_state.bind.buf[0])
5280 +  {
5281      memset(&hints, 0, sizeof(hints));
5282  
5283      hints.ai_family   = AF_UNSPEC;
5284      hints.ai_socktype = SOCK_STREAM;
5285      hints.ai_flags    = AI_PASSIVE | AI_NUMERICHOST;
5286  
5287 <    if (irc_getaddrinfo(yylval.string, NULL, &hints, &res))
5288 <      ilog(L_ERROR, "Invalid netmask for server vhost(%s)", yylval.string);
5287 >    if (getaddrinfo(block_state.bind.buf, NULL, &hints, &res))
5288 >      ilog(LOG_TYPE_IRCD, "Invalid netmask for server vhost(%s)", block_state.bind.buf);
5289      else
5290      {
5291 <      assert(res != NULL);
5291 >      assert(res);
5292  
5293 <      memcpy(&yy_aconf->my_ipnum, res->ai_addr, res->ai_addrlen);
5294 <      yy_aconf->my_ipnum.ss.ss_family = res->ai_family;
5295 <      yy_aconf->my_ipnum.ss_len = res->ai_addrlen;
5296 <      irc_freeaddrinfo(res);
5293 >      memcpy(&conf->bind, res->ai_addr, res->ai_addrlen);
5294 >      conf->bind.ss.ss_family = res->ai_family;
5295 >      conf->bind.ss_len = res->ai_addrlen;
5296 >      freeaddrinfo(res);
5297      }
5298    }
6535 }
6536    break;
6537
6538  case 423:
6539
6540 /* Line 1455 of yacc.c  */
6541 #line 2626 "ircd_parser.y"
6542    {
6543  if (conf_parser_ctx.pass == 2)
6544  {
6545    if ((yyvsp[(3) - (4)].string)[0] == ':')
6546      yyerror("Server passwords cannot begin with a colon");
6547    else if (strchr((yyvsp[(3) - (4)].string), ' ') != NULL)
6548      yyerror("Server passwords cannot contain spaces");
6549    else {
6550      if (yy_aconf->spasswd != NULL)
6551        memset(yy_aconf->spasswd, 0, strlen(yy_aconf->spasswd));
5299  
5300 <      MyFree(yy_aconf->spasswd);
5301 <      DupString(yy_aconf->spasswd, yylval.string);
6555 <    }
6556 <  }
5300 >  conf_add_class_to_conf(conf, block_state.class.buf);
5301 >  lookup_confhost(conf);
5302   }
5303 + #line 5304 "conf_parser.c" /* yacc.c:1646  */
5304      break;
5305  
5306 <  case 424:
5307 <
6562 < /* Line 1455 of yacc.c  */
6563 < #line 2644 "ircd_parser.y"
5306 >  case 411:
5307 > #line 2200 "conf_parser.y" /* yacc.c:1646  */
5308      {
5309    if (conf_parser_ctx.pass == 2)
5310 <  {
6567 <    if ((yyvsp[(3) - (4)].string)[0] == ':')
6568 <      yyerror("Server passwords cannot begin with a colon");
6569 <    else if (strchr((yyvsp[(3) - (4)].string), ' ') != NULL)
6570 <      yyerror("Server passwords cannot contain spaces");
6571 <    else {
6572 <      if (yy_aconf->passwd != NULL)
6573 <        memset(yy_aconf->passwd, 0, strlen(yy_aconf->passwd));
6574 <
6575 <      MyFree(yy_aconf->passwd);
6576 <      DupString(yy_aconf->passwd, yylval.string);
6577 <    }
6578 <  }
5310 >    strlcpy(block_state.name.buf, yylval.string, sizeof(block_state.name.buf));
5311   }
5312 + #line 5313 "conf_parser.c" /* yacc.c:1646  */
5313      break;
5314  
5315 <  case 425:
5316 <
6584 < /* Line 1455 of yacc.c  */
6585 < #line 2662 "ircd_parser.y"
5315 >  case 412:
5316 > #line 2206 "conf_parser.y" /* yacc.c:1646  */
5317      {
5318    if (conf_parser_ctx.pass == 2)
5319 <    yy_aconf->port = (yyvsp[(3) - (4)].number);
5319 >    strlcpy(block_state.host.buf, yylval.string, sizeof(block_state.host.buf));
5320   }
5321 + #line 5322 "conf_parser.c" /* yacc.c:1646  */
5322      break;
5323  
5324 <  case 426:
5325 <
6594 < /* Line 1455 of yacc.c  */
6595 < #line 2668 "ircd_parser.y"
5324 >  case 413:
5325 > #line 2212 "conf_parser.y" /* yacc.c:1646  */
5326      {
5327    if (conf_parser_ctx.pass == 2)
5328 <    yy_aconf->aftype = AF_INET;
5328 >    strlcpy(block_state.bind.buf, yylval.string, sizeof(block_state.bind.buf));
5329   }
5330 + #line 5331 "conf_parser.c" /* yacc.c:1646  */
5331      break;
5332  
5333 <  case 427:
5334 <
6604 < /* Line 1455 of yacc.c  */
6605 < #line 2672 "ircd_parser.y"
5333 >  case 414:
5334 > #line 2218 "conf_parser.y" /* yacc.c:1646  */
5335      {
5336 < #ifdef IPV6
6608 <  if (conf_parser_ctx.pass == 2)
6609 <    yy_aconf->aftype = AF_INET6;
6610 < #endif
6611 < }
5336 >  if (conf_parser_ctx.pass != 2)
5337      break;
5338  
5339 <  case 428:
5340 <
5341 < /* Line 1455 of yacc.c  */
5342 < #line 2680 "ircd_parser.y"
5343 <    {
5344 <  if (conf_parser_ctx.pass == 2)
6620 <  {
6621 <    MyFree(yy_aconf->fakename);
6622 <    DupString(yy_aconf->fakename, yylval.string);
6623 <  }
5339 >  if ((yyvsp[-1].string)[0] == ':')
5340 >    conf_error_report("Server passwords cannot begin with a colon");
5341 >  else if (strchr((yyvsp[-1].string), ' '))
5342 >    conf_error_report("Server passwords cannot contain spaces");
5343 >  else
5344 >    strlcpy(block_state.spass.buf, yylval.string, sizeof(block_state.spass.buf));
5345   }
5346 + #line 5347 "conf_parser.c" /* yacc.c:1646  */
5347      break;
5348  
5349 <  case 429:
5350 <
6629 < /* Line 1455 of yacc.c  */
6630 < #line 2689 "ircd_parser.y"
5349 >  case 415:
5350 > #line 2231 "conf_parser.y" /* yacc.c:1646  */
5351      {
5352 < }
5352 >  if (conf_parser_ctx.pass != 2)
5353      break;
5354  
5355 <  case 433:
5356 <
5357 < /* Line 1455 of yacc.c  */
5358 < #line 2693 "ircd_parser.y"
5359 <    { not_atom = 1; }
5360 <    break;
6641 <
6642 <  case 435:
6643 <
6644 < /* Line 1455 of yacc.c  */
6645 < #line 2694 "ircd_parser.y"
6646 <    { not_atom = 0; }
6647 <    break;
6648 <
6649 <  case 437:
6650 <
6651 < /* Line 1455 of yacc.c  */
6652 < #line 2697 "ircd_parser.y"
6653 <    {
6654 <  if (conf_parser_ctx.pass == 2)
6655 < #ifndef HAVE_LIBZ
6656 <    yyerror("Ignoring flags = compressed; -- no zlib support");
6657 < #else
6658 < {
6659 <   if (not_atom)ClearConfCompressed(yy_aconf);
6660 <   else SetConfCompressed(yy_aconf);
6661 < }
6662 < #endif
6663 < }
6664 <    break;
6665 <
6666 <  case 438:
6667 <
6668 < /* Line 1455 of yacc.c  */
6669 < #line 2708 "ircd_parser.y"
6670 <    {
6671 <  if (conf_parser_ctx.pass == 2)
6672 <  {
6673 <    if (not_atom)ClearConfCryptLink(yy_aconf);
6674 <    else SetConfCryptLink(yy_aconf);
6675 <  }
5355 >  if ((yyvsp[-1].string)[0] == ':')
5356 >    conf_error_report("Server passwords cannot begin with a colon");
5357 >  else if (strchr((yyvsp[-1].string), ' '))
5358 >    conf_error_report("Server passwords cannot contain spaces");
5359 >  else
5360 >    strlcpy(block_state.rpass.buf, yylval.string, sizeof(block_state.rpass.buf));
5361   }
5362 + #line 5363 "conf_parser.c" /* yacc.c:1646  */
5363      break;
5364  
5365 <  case 439:
5366 <
6681 < /* Line 1455 of yacc.c  */
6682 < #line 2715 "ircd_parser.y"
5365 >  case 416:
5366 > #line 2244 "conf_parser.y" /* yacc.c:1646  */
5367      {
5368    if (conf_parser_ctx.pass == 2)
5369 <  {
6686 <    if (not_atom)ClearConfAllowAutoConn(yy_aconf);
6687 <    else SetConfAllowAutoConn(yy_aconf);
6688 <  }
5369 >    strlcpy(block_state.cert.buf, yylval.string, sizeof(block_state.cert.buf));
5370   }
5371 + #line 5372 "conf_parser.c" /* yacc.c:1646  */
5372      break;
5373  
5374 <  case 440:
5375 <
6694 < /* Line 1455 of yacc.c  */
6695 < #line 2722 "ircd_parser.y"
5374 >  case 417:
5375 > #line 2250 "conf_parser.y" /* yacc.c:1646  */
5376      {
5377    if (conf_parser_ctx.pass == 2)
5378 <  {
6699 <    if (not_atom)ClearConfAwayBurst(yy_aconf);
6700 <    else SetConfAwayBurst(yy_aconf);
6701 <  }
5378 >    block_state.port.value = (yyvsp[-1].number);
5379   }
5380 + #line 5381 "conf_parser.c" /* yacc.c:1646  */
5381      break;
5382  
5383 <  case 441:
5384 <
6707 < /* Line 1455 of yacc.c  */
6708 < #line 2729 "ircd_parser.y"
5383 >  case 418:
5384 > #line 2256 "conf_parser.y" /* yacc.c:1646  */
5385      {
5386    if (conf_parser_ctx.pass == 2)
5387 <  {
6712 <    if (not_atom)ClearConfTopicBurst(yy_aconf);
6713 <    else SetConfTopicBurst(yy_aconf);
6714 <  }
6715 < }
6716 <    break;
6717 <
6718 <  case 442:
6719 <
6720 < /* Line 1455 of yacc.c  */
6721 < #line 2739 "ircd_parser.y"
6722 <    {
6723 < #ifdef HAVE_LIBCRYPTO
6724 <  if (conf_parser_ctx.pass == 2)
6725 <  {
6726 <    BIO *file;
6727 <
6728 <    if (yy_aconf->rsa_public_key != NULL)
6729 <    {
6730 <      RSA_free(yy_aconf->rsa_public_key);
6731 <      yy_aconf->rsa_public_key = NULL;
6732 <    }
6733 <
6734 <    if (yy_aconf->rsa_public_key_file != NULL)
6735 <    {
6736 <      MyFree(yy_aconf->rsa_public_key_file);
6737 <      yy_aconf->rsa_public_key_file = NULL;
6738 <    }
6739 <
6740 <    DupString(yy_aconf->rsa_public_key_file, yylval.string);
6741 <
6742 <    if ((file = BIO_new_file(yylval.string, "r")) == NULL)
6743 <    {
6744 <      yyerror("Ignoring rsa_public_key_file -- file doesn't exist");
6745 <      break;
6746 <    }
6747 <
6748 <    yy_aconf->rsa_public_key = (RSA *)PEM_read_bio_RSA_PUBKEY(file, NULL, 0, NULL);
6749 <
6750 <    if (yy_aconf->rsa_public_key == NULL)
6751 <    {
6752 <      yyerror("Ignoring rsa_public_key_file -- Key invalid; check key syntax.");
6753 <      break;
6754 <    }
6755 <      
6756 <    BIO_set_close(file, BIO_CLOSE);
6757 <    BIO_free(file);
6758 <  }
6759 < #endif /* HAVE_LIBCRYPTO */
5387 >    block_state.aftype.value = AF_INET;
5388   }
5389 + #line 5390 "conf_parser.c" /* yacc.c:1646  */
5390      break;
5391  
5392 <  case 443:
5393 <
6765 < /* Line 1455 of yacc.c  */
6766 < #line 2780 "ircd_parser.y"
5392 >  case 419:
5393 > #line 2260 "conf_parser.y" /* yacc.c:1646  */
5394      {
5395 + #ifdef IPV6
5396    if (conf_parser_ctx.pass == 2)
5397 <  {
5398 <    if (yylval.number)
6771 <      yy_aconf->flags |= CONF_FLAGS_ENCRYPTED;
6772 <    else
6773 <      yy_aconf->flags &= ~CONF_FLAGS_ENCRYPTED;
6774 <  }
5397 >    block_state.aftype.value = AF_INET6;
5398 > #endif
5399   }
5400 + #line 5401 "conf_parser.c" /* yacc.c:1646  */
5401      break;
5402  
5403 <  case 444:
5404 <
6780 < /* Line 1455 of yacc.c  */
6781 < #line 2791 "ircd_parser.y"
5403 >  case 420:
5404 > #line 2268 "conf_parser.y" /* yacc.c:1646  */
5405      {
5406 <  if (conf_parser_ctx.pass == 2)
6784 <  {
6785 <    if (yylval.number)
6786 <      yy_aconf->flags |= CONF_FLAGS_CRYPTLINK;
6787 <    else
6788 <      yy_aconf->flags &= ~CONF_FLAGS_CRYPTLINK;
6789 <  }
5406 >  block_state.flags.value &= CONF_FLAGS_ENCRYPTED;
5407   }
5408 + #line 5409 "conf_parser.c" /* yacc.c:1646  */
5409      break;
5410  
5411 <  case 445:
5412 <
6795 < /* Line 1455 of yacc.c  */
6796 < #line 2802 "ircd_parser.y"
5411 >  case 424:
5412 > #line 2274 "conf_parser.y" /* yacc.c:1646  */
5413      {
5414    if (conf_parser_ctx.pass == 2)
5415 <  {
6800 <    if (yylval.number)
6801 < #ifndef HAVE_LIBZ
6802 <      yyerror("Ignoring compressed=yes; -- no zlib support");
6803 < #else
6804 <      yy_aconf->flags |= CONF_FLAGS_COMPRESSED;
6805 < #endif
6806 <    else
6807 <      yy_aconf->flags &= ~CONF_FLAGS_COMPRESSED;
6808 <  }
5415 >    block_state.flags.value |= CONF_FLAGS_ALLOW_AUTO_CONN;
5416   }
5417 + #line 5418 "conf_parser.c" /* yacc.c:1646  */
5418      break;
5419  
5420 <  case 446:
5421 <
6814 < /* Line 1455 of yacc.c  */
6815 < #line 2817 "ircd_parser.y"
5420 >  case 425:
5421 > #line 2278 "conf_parser.y" /* yacc.c:1646  */
5422      {
5423    if (conf_parser_ctx.pass == 2)
5424 <  {
6819 <    if (yylval.number)
6820 <      yy_aconf->flags |= CONF_FLAGS_ALLOW_AUTO_CONN;
6821 <    else
6822 <      yy_aconf->flags &= ~CONF_FLAGS_ALLOW_AUTO_CONN;
6823 <  }
5424 >    block_state.flags.value |= CONF_FLAGS_SSL;
5425   }
5426 + #line 5427 "conf_parser.c" /* yacc.c:1646  */
5427      break;
5428  
5429 <  case 447:
5430 <
6829 < /* Line 1455 of yacc.c  */
6830 < #line 2828 "ircd_parser.y"
5429 >  case 426:
5430 > #line 2284 "conf_parser.y" /* yacc.c:1646  */
5431      {
5432    if (conf_parser_ctx.pass == 2)
5433    {
5434      if (yylval.number)
5435 <      SetConfTopicBurst(yy_aconf);
5435 >      block_state.flags.value |= CONF_FLAGS_ENCRYPTED;
5436      else
5437 <      ClearConfTopicBurst(yy_aconf);
5437 >      block_state.flags.value &= ~CONF_FLAGS_ENCRYPTED;
5438    }
5439   }
5440 + #line 5441 "conf_parser.c" /* yacc.c:1646  */
5441      break;
5442  
5443 <  case 448:
5444 <
6844 < /* Line 1455 of yacc.c  */
6845 < #line 2839 "ircd_parser.y"
5443 >  case 427:
5444 > #line 2295 "conf_parser.y" /* yacc.c:1646  */
5445      {
5446    if (conf_parser_ctx.pass == 2)
5447 <  {
6849 <    struct CollectItem *yy_tmp;
6850 <
6851 <    yy_tmp = (struct CollectItem *)MyMalloc(sizeof(struct CollectItem));
6852 <    DupString(yy_tmp->host, yylval.string);
6853 <    DupString(yy_tmp->user, "*");
6854 <    dlinkAdd(yy_tmp, &yy_tmp->node, &hub_conf_list);
6855 <  }
5447 >    dlinkAdd(xstrdup(yylval.string), make_dlink_node(), &block_state.hub.list);
5448   }
5449 + #line 5450 "conf_parser.c" /* yacc.c:1646  */
5450      break;
5451  
5452 <  case 449:
5453 <
6861 < /* Line 1455 of yacc.c  */
6862 < #line 2852 "ircd_parser.y"
5452 >  case 428:
5453 > #line 2301 "conf_parser.y" /* yacc.c:1646  */
5454      {
5455    if (conf_parser_ctx.pass == 2)
5456 <  {
6866 <    struct CollectItem *yy_tmp;
6867 <
6868 <    yy_tmp = (struct CollectItem *)MyMalloc(sizeof(struct CollectItem));
6869 <    DupString(yy_tmp->host, yylval.string);
6870 <    DupString(yy_tmp->user, "*");
6871 <    dlinkAdd(yy_tmp, &yy_tmp->node, &leaf_conf_list);
6872 <  }
5456 >    dlinkAdd(xstrdup(yylval.string), make_dlink_node(), &block_state.leaf.list);
5457   }
5458 + #line 5459 "conf_parser.c" /* yacc.c:1646  */
5459      break;
5460  
5461 <  case 450:
5462 <
6878 < /* Line 1455 of yacc.c  */
6879 < #line 2865 "ircd_parser.y"
5461 >  case 429:
5462 > #line 2307 "conf_parser.y" /* yacc.c:1646  */
5463      {
5464    if (conf_parser_ctx.pass == 2)
5465 <  {
6883 <    MyFree(class_name);
6884 <    DupString(class_name, yylval.string);
6885 <  }
5465 >    strlcpy(block_state.class.buf, yylval.string, sizeof(block_state.class.buf));
5466   }
5467 + #line 5468 "conf_parser.c" /* yacc.c:1646  */
5468      break;
5469  
5470 <  case 451:
5471 <
6891 < /* Line 1455 of yacc.c  */
6892 < #line 2874 "ircd_parser.y"
5470 >  case 430:
5471 > #line 2313 "conf_parser.y" /* yacc.c:1646  */
5472      {
5473   #ifdef HAVE_LIBCRYPTO
5474    if (conf_parser_ctx.pass == 2)
5475 <  {
6897 <    struct EncCapability *ecap;
6898 <    const char *cipher_name;
6899 <    int found = 0;
6900 <
6901 <    yy_aconf->cipher_preference = NULL;
6902 <    cipher_name = yylval.string;
6903 <
6904 <    for (ecap = CipherTable; ecap->name; ecap++)
6905 <    {
6906 <      if ((irccmp(ecap->name, cipher_name) == 0) &&
6907 <          (ecap->cap & CAP_ENC_MASK))
6908 <      {
6909 <        yy_aconf->cipher_preference = ecap;
6910 <        found = 1;
6911 <        break;
6912 <      }
6913 <    }
6914 <
6915 <    if (!found)
6916 <      yyerror("Invalid cipher");
6917 <  }
5475 >    strlcpy(block_state.ciph.buf, yylval.string, sizeof(block_state.ciph.buf));
5476   #else
5477    if (conf_parser_ctx.pass == 2)
5478 <    yyerror("Ignoring cipher_preference -- no OpenSSL support");
5478 >    conf_error_report("Ignoring connect::ciphers -- no OpenSSL support");
5479   #endif
5480   }
5481 + #line 5482 "conf_parser.c" /* yacc.c:1646  */
5482      break;
5483  
5484 <  case 452:
5485 <
6927 < /* Line 1455 of yacc.c  */
6928 < #line 2909 "ircd_parser.y"
5484 >  case 431:
5485 > #line 2328 "conf_parser.y" /* yacc.c:1646  */
5486      {
5487    if (conf_parser_ctx.pass == 2)
5488 <  {
6932 <    userbuf[0] = hostbuf[0] = reasonbuf[0] = '\0';
6933 <    regex_ban = 0;
6934 <  }
5488 >    reset_block_state();
5489   }
5490 + #line 5491 "conf_parser.c" /* yacc.c:1646  */
5491      break;
5492  
5493 <  case 453:
5494 <
6940 < /* Line 1455 of yacc.c  */
6941 < #line 2916 "ircd_parser.y"
5493 >  case 432:
5494 > #line 2332 "conf_parser.y" /* yacc.c:1646  */
5495      {
5496 <  if (conf_parser_ctx.pass == 2)
6944 <  {
6945 <    if (userbuf[0] && hostbuf[0])
6946 <    {
6947 <      if (regex_ban)
6948 <      {
6949 < #ifdef HAVE_LIBPCRE
6950 <        pcre *exp_user = NULL;
6951 <        pcre *exp_host = NULL;
6952 <        const char *errptr = NULL;
6953 <
6954 <        if (!(exp_user = ircd_pcre_compile(userbuf, &errptr)) ||
6955 <            !(exp_host = ircd_pcre_compile(hostbuf, &errptr)))
6956 <        {
6957 <          ilog(L_ERROR, "Failed to add regular expression based K-Line: %s",
6958 <               errptr);
6959 <          break;
6960 <        }
6961 <
6962 <        yy_aconf = map_to_conf(make_conf_item(RKLINE_TYPE));
6963 <        yy_aconf->regexuser = exp_user;
6964 <        yy_aconf->regexhost = exp_host;
5496 >  struct MaskItem *conf = NULL;
5497  
5498 <        DupString(yy_aconf->user, userbuf);
6967 <        DupString(yy_aconf->host, hostbuf);
6968 <
6969 <        if (reasonbuf[0])
6970 <          DupString(yy_aconf->reason, reasonbuf);
6971 <        else
6972 <          DupString(yy_aconf->reason, "No reason");
6973 < #else
6974 <        ilog(L_ERROR, "Failed to add regular expression based K-Line: no PCRE support");
6975 <        break;
6976 < #endif
6977 <      }
6978 <      else
6979 <      {
6980 <        yy_aconf = map_to_conf(make_conf_item(KLINE_TYPE));
6981 <
6982 <        DupString(yy_aconf->user, userbuf);
6983 <        DupString(yy_aconf->host, hostbuf);
6984 <
6985 <        if (reasonbuf[0])
6986 <          DupString(yy_aconf->reason, reasonbuf);
6987 <        else
6988 <          DupString(yy_aconf->reason, "No reason");
6989 <        add_conf_by_address(CONF_KILL, yy_aconf);
6990 <      }
6991 <    }
6992 <
6993 <    yy_aconf = NULL;
6994 <  }
6995 < }
5498 >  if (conf_parser_ctx.pass != 2)
5499      break;
5500  
5501 <  case 454:
5502 <
7000 < /* Line 1455 of yacc.c  */
7001 < #line 2972 "ircd_parser.y"
7002 <    {
7003 < }
5501 >  if (!block_state.user.buf[0] ||
5502 >      !block_state.host.buf[0])
5503      break;
5504  
5505 <  case 458:
5505 >  conf = conf_make(CONF_KLINE);
5506 >  conf->user = xstrdup(block_state.user.buf);
5507 >  conf->host = xstrdup(block_state.host.buf);
5508  
5509 < /* Line 1455 of yacc.c  */
5510 < #line 2977 "ircd_parser.y"
5511 <    {
5512 <  if (conf_parser_ctx.pass == 2)
5513 <    regex_ban = 1;
5509 >  if (block_state.rpass.buf[0])
5510 >    conf->reason = xstrdup(block_state.rpass.buf);
5511 >  else
5512 >    conf->reason = xstrdup(CONF_NOREASON);
5513 >  add_conf_by_address(CONF_KLINE, conf);
5514   }
5515 + #line 5516 "conf_parser.c" /* yacc.c:1646  */
5516      break;
5517  
5518 <  case 465:
5519 <
7018 < /* Line 1455 of yacc.c  */
7019 < #line 2986 "ircd_parser.y"
5518 >  case 438:
5519 > #line 2357 "conf_parser.y" /* yacc.c:1646  */
5520      {
5521 +
5522    if (conf_parser_ctx.pass == 2)
5523    {
5524      struct split_nuh_item nuh;
5525  
5526      nuh.nuhmask  = yylval.string;
5527      nuh.nickptr  = NULL;
5528 <    nuh.userptr  = userbuf;
5529 <    nuh.hostptr  = hostbuf;
5528 >    nuh.userptr  = block_state.user.buf;
5529 >    nuh.hostptr  = block_state.host.buf;
5530  
5531      nuh.nicksize = 0;
5532 <    nuh.usersize = sizeof(userbuf);
5533 <    nuh.hostsize = sizeof(hostbuf);
5532 >    nuh.usersize = sizeof(block_state.user.buf);
5533 >    nuh.hostsize = sizeof(block_state.host.buf);
5534  
5535      split_nuh(&nuh);
5536    }
5537   }
5538 + #line 5539 "conf_parser.c" /* yacc.c:1646  */
5539      break;
5540  
5541 <  case 466:
5542 <
7041 < /* Line 1455 of yacc.c  */
7042 < #line 3005 "ircd_parser.y"
5541 >  case 439:
5542 > #line 2377 "conf_parser.y" /* yacc.c:1646  */
5543      {
5544    if (conf_parser_ctx.pass == 2)
5545 <    strlcpy(reasonbuf, yylval.string, sizeof(reasonbuf));
5545 >    strlcpy(block_state.rpass.buf, yylval.string, sizeof(block_state.rpass.buf));
5546   }
5547 + #line 5548 "conf_parser.c" /* yacc.c:1646  */
5548      break;
5549  
5550 <  case 467:
5551 <
7051 < /* Line 1455 of yacc.c  */
7052 < #line 3014 "ircd_parser.y"
5550 >  case 440:
5551 > #line 2386 "conf_parser.y" /* yacc.c:1646  */
5552      {
5553    if (conf_parser_ctx.pass == 2)
5554 <    hostbuf[0] = reasonbuf[0] = '\0';
5554 >    reset_block_state();
5555   }
5556 + #line 5557 "conf_parser.c" /* yacc.c:1646  */
5557      break;
5558  
5559 <  case 468:
5560 <
7061 < /* Line 1455 of yacc.c  */
7062 < #line 3018 "ircd_parser.y"
5559 >  case 441:
5560 > #line 2390 "conf_parser.y" /* yacc.c:1646  */
5561      {
5562 <  if (conf_parser_ctx.pass == 2)
5562 >  struct MaskItem *conf = NULL;
5563 >
5564 >  if (conf_parser_ctx.pass != 2)
5565 >    break;
5566 >
5567 >  if (!block_state.addr.buf[0])
5568 >    break;
5569 >
5570 >  if (parse_netmask(block_state.addr.buf, NULL, NULL) != HM_HOST)
5571    {
5572 <    if (hostbuf[0] && parse_netmask(hostbuf, NULL, NULL) != HM_HOST)
5573 <    {
7068 <      yy_aconf = map_to_conf(make_conf_item(DLINE_TYPE));
7069 <      DupString(yy_aconf->host, hostbuf);
5572 >    conf = conf_make(CONF_DLINE);
5573 >    conf->host = xstrdup(block_state.addr.buf);
5574  
5575 <      if (reasonbuf[0])
5576 <        DupString(yy_aconf->reason, reasonbuf);
5577 <      else
5578 <        DupString(yy_aconf->reason, "No reason");
5579 <      add_conf_by_address(CONF_DLINE, yy_aconf);
7076 <      yy_aconf = NULL;
7077 <    }
5575 >    if (block_state.rpass.buf[0])
5576 >      conf->reason = xstrdup(block_state.rpass.buf);
5577 >    else
5578 >      conf->reason = xstrdup(CONF_NOREASON);
5579 >    add_conf_by_address(CONF_DLINE, conf);
5580    }
5581   }
5582 + #line 5583 "conf_parser.c" /* yacc.c:1646  */
5583      break;
5584  
5585 <  case 474:
5586 <
7084 < /* Line 1455 of yacc.c  */
7085 < #line 3040 "ircd_parser.y"
5585 >  case 447:
5586 > #line 2416 "conf_parser.y" /* yacc.c:1646  */
5587      {
5588    if (conf_parser_ctx.pass == 2)
5589 <    strlcpy(hostbuf, yylval.string, sizeof(hostbuf));
5589 >    strlcpy(block_state.addr.buf, yylval.string, sizeof(block_state.addr.buf));
5590   }
5591 + #line 5592 "conf_parser.c" /* yacc.c:1646  */
5592      break;
5593  
5594 <  case 475:
5595 <
7094 < /* Line 1455 of yacc.c  */
7095 < #line 3046 "ircd_parser.y"
5594 >  case 448:
5595 > #line 2422 "conf_parser.y" /* yacc.c:1646  */
5596      {
5597    if (conf_parser_ctx.pass == 2)
5598 <    strlcpy(reasonbuf, yylval.string, sizeof(reasonbuf));
5598 >    strlcpy(block_state.rpass.buf, yylval.string, sizeof(block_state.rpass.buf));
5599   }
5600 + #line 5601 "conf_parser.c" /* yacc.c:1646  */
5601      break;
5602  
5603 <  case 481:
5604 <
7104 < /* Line 1455 of yacc.c  */
7105 < #line 3060 "ircd_parser.y"
5603 >  case 454:
5604 > #line 2436 "conf_parser.y" /* yacc.c:1646  */
5605      {
5606    if (conf_parser_ctx.pass == 2)
5607    {
5608      if (yylval.string[0] && parse_netmask(yylval.string, NULL, NULL) != HM_HOST)
5609      {
5610 <      yy_aconf = map_to_conf(make_conf_item(EXEMPTDLINE_TYPE));
5611 <      DupString(yy_aconf->host, yylval.string);
5610 >      struct MaskItem *conf = conf_make(CONF_EXEMPT);
5611 >      conf->host = xstrdup(yylval.string);
5612  
5613 <      add_conf_by_address(CONF_EXEMPTDLINE, yy_aconf);
7115 <      yy_aconf = NULL;
5613 >      add_conf_by_address(CONF_EXEMPT, conf);
5614      }
5615    }
5616   }
5617 + #line 5618 "conf_parser.c" /* yacc.c:1646  */
5618      break;
5619  
5620 <  case 482:
5621 <
7123 < /* Line 1455 of yacc.c  */
7124 < #line 3078 "ircd_parser.y"
5620 >  case 455:
5621 > #line 2453 "conf_parser.y" /* yacc.c:1646  */
5622      {
5623    if (conf_parser_ctx.pass == 2)
5624 <  {
7128 <    regex_ban = 0;
7129 <    reasonbuf[0] = gecos_name[0] = '\0';
7130 <  }
5624 >    reset_block_state();
5625   }
5626 + #line 5627 "conf_parser.c" /* yacc.c:1646  */
5627      break;
5628  
5629 <  case 483:
5630 <
7136 < /* Line 1455 of yacc.c  */
7137 < #line 3085 "ircd_parser.y"
7138 <    {
7139 <  if (conf_parser_ctx.pass == 2)
7140 <  {
7141 <    if (gecos_name[0])
5629 >  case 456:
5630 > #line 2457 "conf_parser.y" /* yacc.c:1646  */
5631      {
5632 <      if (regex_ban)
7144 <      {
7145 < #ifdef HAVE_LIBPCRE
7146 <        pcre *exp_p = NULL;
7147 <        const char *errptr = NULL;
7148 <
7149 <        if (!(exp_p = ircd_pcre_compile(gecos_name, &errptr)))
7150 <        {
7151 <          ilog(L_ERROR, "Failed to add regular expression based X-Line: %s",
7152 <               errptr);
7153 <          break;
7154 <        }
5632 >  struct MaskItem *conf = NULL;
5633  
5634 <        yy_conf = make_conf_item(RXLINE_TYPE);
5635 <        yy_conf->regexpname = exp_p;
7158 < #else
7159 <        ilog(L_ERROR, "Failed to add regular expression based X-Line: no PCRE support");
7160 <        break;
7161 < #endif
7162 <      }
7163 <      else
7164 <        yy_conf = make_conf_item(XLINE_TYPE);
7165 <
7166 <      yy_match_item = map_to_conf(yy_conf);
7167 <      DupString(yy_conf->name, gecos_name);
5634 >  if (conf_parser_ctx.pass != 2)
5635 >    break;
5636  
5637 <      if (reasonbuf[0])
7170 <        DupString(yy_match_item->reason, reasonbuf);
7171 <      else
7172 <        DupString(yy_match_item->reason, "No reason");
7173 <    }
7174 <  }
7175 < }
5637 >  if (!block_state.name.buf[0])
5638      break;
5639  
5640 <  case 484:
5640 >  conf = conf_make(CONF_XLINE);
5641 >  conf->name = xstrdup(block_state.name.buf);
5642  
5643 < /* Line 1455 of yacc.c  */
5644 < #line 3125 "ircd_parser.y"
5645 <    {
5643 >  if (block_state.rpass.buf[0])
5644 >    conf->reason = xstrdup(block_state.rpass.buf);
5645 >  else
5646 >    conf->reason = xstrdup(CONF_NOREASON);
5647   }
5648 + #line 5649 "conf_parser.c" /* yacc.c:1646  */
5649      break;
5650  
5651 <  case 488:
5652 <
7188 < /* Line 1455 of yacc.c  */
7189 < #line 3130 "ircd_parser.y"
5651 >  case 462:
5652 > #line 2479 "conf_parser.y" /* yacc.c:1646  */
5653      {
5654    if (conf_parser_ctx.pass == 2)
5655 <    regex_ban = 1;
5655 >    strlcpy(block_state.name.buf, yylval.string, sizeof(block_state.name.buf));
5656   }
5657 + #line 5658 "conf_parser.c" /* yacc.c:1646  */
5658      break;
5659  
5660 <  case 495:
5661 <
7198 < /* Line 1455 of yacc.c  */
7199 < #line 3139 "ircd_parser.y"
5660 >  case 463:
5661 > #line 2485 "conf_parser.y" /* yacc.c:1646  */
5662      {
5663    if (conf_parser_ctx.pass == 2)
5664 <    strlcpy(gecos_name, yylval.string, sizeof(gecos_name));
5664 >    strlcpy(block_state.rpass.buf, yylval.string, sizeof(block_state.rpass.buf));
5665   }
5666 + #line 5667 "conf_parser.c" /* yacc.c:1646  */
5667      break;
5668  
5669 <  case 496:
5670 <
7208 < /* Line 1455 of yacc.c  */
7209 < #line 3145 "ircd_parser.y"
5669 >  case 518:
5670 > #line 2551 "conf_parser.y" /* yacc.c:1646  */
5671      {
5672 <  if (conf_parser_ctx.pass == 2)
7212 <    strlcpy(reasonbuf, yylval.string, sizeof(reasonbuf));
5672 >  ConfigFileEntry.max_watch = (yyvsp[-1].number);
5673   }
5674 + #line 5675 "conf_parser.c" /* yacc.c:1646  */
5675      break;
5676  
5677 <  case 557:
5678 <
7218 < /* Line 1455 of yacc.c  */
7219 < #line 3190 "ircd_parser.y"
5677 >  case 519:
5678 > #line 2556 "conf_parser.y" /* yacc.c:1646  */
5679      {
5680 <  ConfigFileEntry.max_watch = (yyvsp[(3) - (4)].number);
5680 >  if (conf_parser_ctx.pass == 2)
5681 >    ConfigFileEntry.cycle_on_host_change = yylval.number;
5682   }
5683 + #line 5684 "conf_parser.c" /* yacc.c:1646  */
5684      break;
5685  
5686 <  case 558:
5687 <
7227 < /* Line 1455 of yacc.c  */
7228 < #line 3195 "ircd_parser.y"
5686 >  case 520:
5687 > #line 2562 "conf_parser.y" /* yacc.c:1646  */
5688      {
5689 <  ConfigFileEntry.gline_min_cidr = (yyvsp[(3) - (4)].number);
5689 >  if (conf_parser_ctx.pass == 2)
5690 >    ConfigFileEntry.glines = yylval.number;
5691   }
5692 + #line 5693 "conf_parser.c" /* yacc.c:1646  */
5693      break;
5694  
5695 <  case 559:
5696 <
7236 < /* Line 1455 of yacc.c  */
7237 < #line 3200 "ircd_parser.y"
5695 >  case 521:
5696 > #line 2568 "conf_parser.y" /* yacc.c:1646  */
5697      {
5698 <  ConfigFileEntry.gline_min_cidr6 = (yyvsp[(3) - (4)].number);
5698 >  if (conf_parser_ctx.pass == 2)
5699 >    ConfigFileEntry.gline_time = (yyvsp[-1].number);
5700   }
5701 + #line 5702 "conf_parser.c" /* yacc.c:1646  */
5702      break;
5703  
5704 <  case 560:
5705 <
7245 < /* Line 1455 of yacc.c  */
7246 < #line 3205 "ircd_parser.y"
5704 >  case 522:
5705 > #line 2574 "conf_parser.y" /* yacc.c:1646  */
5706      {
5707 <  ConfigFileEntry.burst_away = yylval.number;
5707 >  if (conf_parser_ctx.pass == 2)
5708 >    ConfigFileEntry.gline_request_time = (yyvsp[-1].number);
5709   }
5710 + #line 5711 "conf_parser.c" /* yacc.c:1646  */
5711      break;
5712  
5713 <  case 561:
5714 <
7254 < /* Line 1455 of yacc.c  */
7255 < #line 3210 "ircd_parser.y"
5713 >  case 523:
5714 > #line 2580 "conf_parser.y" /* yacc.c:1646  */
5715      {
5716 <  ConfigFileEntry.use_whois_actually = yylval.number;
5716 >  ConfigFileEntry.gline_min_cidr = (yyvsp[-1].number);
5717   }
5718 + #line 5719 "conf_parser.c" /* yacc.c:1646  */
5719      break;
5720  
5721 <  case 562:
5722 <
7263 < /* Line 1455 of yacc.c  */
7264 < #line 3215 "ircd_parser.y"
5721 >  case 524:
5722 > #line 2585 "conf_parser.y" /* yacc.c:1646  */
5723      {
5724 <  GlobalSetOptions.rejecttime = yylval.number;
5724 >  ConfigFileEntry.gline_min_cidr6 = (yyvsp[-1].number);
5725   }
5726 + #line 5727 "conf_parser.c" /* yacc.c:1646  */
5727      break;
5728  
5729 <  case 563:
5730 <
7272 < /* Line 1455 of yacc.c  */
7273 < #line 3220 "ircd_parser.y"
5729 >  case 525:
5730 > #line 2590 "conf_parser.y" /* yacc.c:1646  */
5731      {
5732    ConfigFileEntry.tkline_expire_notices = yylval.number;
5733   }
5734 + #line 5735 "conf_parser.c" /* yacc.c:1646  */
5735      break;
5736  
5737 <  case 564:
5738 <
7281 < /* Line 1455 of yacc.c  */
7282 < #line 3225 "ircd_parser.y"
5737 >  case 526:
5738 > #line 2595 "conf_parser.y" /* yacc.c:1646  */
5739      {
5740 <  ConfigFileEntry.kill_chase_time_limit = (yyvsp[(3) - (4)].number);
5740 >  ConfigFileEntry.kill_chase_time_limit = (yyvsp[-1].number);
5741   }
5742 + #line 5743 "conf_parser.c" /* yacc.c:1646  */
5743      break;
5744  
5745 <  case 565:
5746 <
7290 < /* Line 1455 of yacc.c  */
7291 < #line 3230 "ircd_parser.y"
5745 >  case 527:
5746 > #line 2600 "conf_parser.y" /* yacc.c:1646  */
5747      {
5748    ConfigFileEntry.hide_spoof_ips = yylval.number;
5749   }
5750 + #line 5751 "conf_parser.c" /* yacc.c:1646  */
5751      break;
5752  
5753 <  case 566:
5754 <
7299 < /* Line 1455 of yacc.c  */
7300 < #line 3235 "ircd_parser.y"
5753 >  case 528:
5754 > #line 2605 "conf_parser.y" /* yacc.c:1646  */
5755      {
5756    ConfigFileEntry.ignore_bogus_ts = yylval.number;
5757   }
5758 + #line 5759 "conf_parser.c" /* yacc.c:1646  */
5759      break;
5760  
5761 <  case 567:
5762 <
7308 < /* Line 1455 of yacc.c  */
7309 < #line 3240 "ircd_parser.y"
7310 <    {
7311 <  ConfigFileEntry.disable_remote = yylval.number;
7312 < }
7313 <    break;
7314 <
7315 <  case 568:
7316 <
7317 < /* Line 1455 of yacc.c  */
7318 < #line 3245 "ircd_parser.y"
5761 >  case 529:
5762 > #line 2610 "conf_parser.y" /* yacc.c:1646  */
5763      {
5764    ConfigFileEntry.failed_oper_notice = yylval.number;
5765   }
5766 + #line 5767 "conf_parser.c" /* yacc.c:1646  */
5767      break;
5768  
5769 <  case 569:
5770 <
7326 < /* Line 1455 of yacc.c  */
7327 < #line 3250 "ircd_parser.y"
5769 >  case 530:
5770 > #line 2615 "conf_parser.y" /* yacc.c:1646  */
5771      {
5772    ConfigFileEntry.anti_nick_flood = yylval.number;
5773   }
5774 + #line 5775 "conf_parser.c" /* yacc.c:1646  */
5775      break;
5776  
5777 <  case 570:
5778 <
7335 < /* Line 1455 of yacc.c  */
7336 < #line 3255 "ircd_parser.y"
5777 >  case 531:
5778 > #line 2620 "conf_parser.y" /* yacc.c:1646  */
5779      {
5780 <  ConfigFileEntry.max_nick_time = (yyvsp[(3) - (4)].number);
5780 >  ConfigFileEntry.max_nick_time = (yyvsp[-1].number);
5781   }
5782 + #line 5783 "conf_parser.c" /* yacc.c:1646  */
5783      break;
5784  
5785 <  case 571:
5786 <
7344 < /* Line 1455 of yacc.c  */
7345 < #line 3260 "ircd_parser.y"
5785 >  case 532:
5786 > #line 2625 "conf_parser.y" /* yacc.c:1646  */
5787      {
5788 <  ConfigFileEntry.max_nick_changes = (yyvsp[(3) - (4)].number);
5788 >  ConfigFileEntry.max_nick_changes = (yyvsp[-1].number);
5789   }
5790 + #line 5791 "conf_parser.c" /* yacc.c:1646  */
5791      break;
5792  
5793 <  case 572:
5794 <
7353 < /* Line 1455 of yacc.c  */
7354 < #line 3265 "ircd_parser.y"
5793 >  case 533:
5794 > #line 2630 "conf_parser.y" /* yacc.c:1646  */
5795      {
5796 <  ConfigFileEntry.max_accept = (yyvsp[(3) - (4)].number);
5796 >  ConfigFileEntry.max_accept = (yyvsp[-1].number);
5797   }
5798 + #line 5799 "conf_parser.c" /* yacc.c:1646  */
5799      break;
5800  
5801 <  case 573:
5802 <
7362 < /* Line 1455 of yacc.c  */
7363 < #line 3270 "ircd_parser.y"
5801 >  case 534:
5802 > #line 2635 "conf_parser.y" /* yacc.c:1646  */
5803      {
5804 <  ConfigFileEntry.anti_spam_exit_message_time = (yyvsp[(3) - (4)].number);
5804 >  ConfigFileEntry.anti_spam_exit_message_time = (yyvsp[-1].number);
5805   }
5806 + #line 5807 "conf_parser.c" /* yacc.c:1646  */
5807      break;
5808  
5809 <  case 574:
5810 <
7371 < /* Line 1455 of yacc.c  */
7372 < #line 3275 "ircd_parser.y"
5809 >  case 535:
5810 > #line 2640 "conf_parser.y" /* yacc.c:1646  */
5811      {
5812 <  ConfigFileEntry.ts_warn_delta = (yyvsp[(3) - (4)].number);
5812 >  ConfigFileEntry.ts_warn_delta = (yyvsp[-1].number);
5813   }
5814 + #line 5815 "conf_parser.c" /* yacc.c:1646  */
5815      break;
5816  
5817 <  case 575:
5818 <
7380 < /* Line 1455 of yacc.c  */
7381 < #line 3280 "ircd_parser.y"
5817 >  case 536:
5818 > #line 2645 "conf_parser.y" /* yacc.c:1646  */
5819      {
5820    if (conf_parser_ctx.pass == 2)
5821 <    ConfigFileEntry.ts_max_delta = (yyvsp[(3) - (4)].number);
5821 >    ConfigFileEntry.ts_max_delta = (yyvsp[-1].number);
5822   }
5823 + #line 5824 "conf_parser.c" /* yacc.c:1646  */
5824      break;
5825  
5826 <  case 576:
5827 <
7390 < /* Line 1455 of yacc.c  */
7391 < #line 3286 "ircd_parser.y"
5826 >  case 537:
5827 > #line 2651 "conf_parser.y" /* yacc.c:1646  */
5828      {
5829 <  if (((yyvsp[(3) - (4)].number) > 0) && conf_parser_ctx.pass == 1)
5829 >  if (((yyvsp[-1].number) > 0) && conf_parser_ctx.pass == 1)
5830    {
5831 <    ilog(L_CRIT, "You haven't read your config file properly.");
5832 <    ilog(L_CRIT, "There is a line in the example conf that will kill your server if not removed.");
5833 <    ilog(L_CRIT, "Consider actually reading/editing the conf file, and removing this line.");
5831 >    ilog(LOG_TYPE_IRCD, "You haven't read your config file properly.");
5832 >    ilog(LOG_TYPE_IRCD, "There is a line in the example conf that will kill your server if not removed.");
5833 >    ilog(LOG_TYPE_IRCD, "Consider actually reading/editing the conf file, and removing this line.");
5834      exit(0);
5835    }
5836   }
5837 + #line 5838 "conf_parser.c" /* yacc.c:1646  */
5838      break;
5839  
5840 <  case 577:
5841 <
7405 < /* Line 1455 of yacc.c  */
7406 < #line 3297 "ircd_parser.y"
7407 <    {
7408 <  ConfigFileEntry.kline_with_reason = yylval.number;
7409 < }
7410 <    break;
7411 <
7412 <  case 578:
7413 <
7414 < /* Line 1455 of yacc.c  */
7415 < #line 3302 "ircd_parser.y"
7416 <    {
7417 <  if (conf_parser_ctx.pass == 2)
7418 <  {
7419 <    MyFree(ConfigFileEntry.kline_reason);
7420 <    DupString(ConfigFileEntry.kline_reason, yylval.string);
7421 <  }
7422 < }
7423 <    break;
7424 <
7425 <  case 579:
7426 <
7427 < /* Line 1455 of yacc.c  */
7428 < #line 3311 "ircd_parser.y"
5840 >  case 538:
5841 > #line 2662 "conf_parser.y" /* yacc.c:1646  */
5842      {
5843    ConfigFileEntry.invisible_on_connect = yylval.number;
5844   }
5845 + #line 5846 "conf_parser.c" /* yacc.c:1646  */
5846      break;
5847  
5848 <  case 580:
5849 <
7436 < /* Line 1455 of yacc.c  */
7437 < #line 3316 "ircd_parser.y"
5848 >  case 539:
5849 > #line 2667 "conf_parser.y" /* yacc.c:1646  */
5850      {
5851 <  ConfigFileEntry.warn_no_nline = yylval.number;
5851 >  ConfigFileEntry.warn_no_connect_block = yylval.number;
5852   }
5853 + #line 5854 "conf_parser.c" /* yacc.c:1646  */
5854      break;
5855  
5856 <  case 581:
5857 <
7445 < /* Line 1455 of yacc.c  */
7446 < #line 3321 "ircd_parser.y"
5856 >  case 540:
5857 > #line 2672 "conf_parser.y" /* yacc.c:1646  */
5858      {
5859    ConfigFileEntry.stats_e_disabled = yylval.number;
5860   }
5861 + #line 5862 "conf_parser.c" /* yacc.c:1646  */
5862      break;
5863  
5864 <  case 582:
5865 <
7454 < /* Line 1455 of yacc.c  */
7455 < #line 3326 "ircd_parser.y"
5864 >  case 541:
5865 > #line 2677 "conf_parser.y" /* yacc.c:1646  */
5866      {
5867    ConfigFileEntry.stats_o_oper_only = yylval.number;
5868   }
5869 + #line 5870 "conf_parser.c" /* yacc.c:1646  */
5870      break;
5871  
5872 <  case 583:
5873 <
7463 < /* Line 1455 of yacc.c  */
7464 < #line 3331 "ircd_parser.y"
5872 >  case 542:
5873 > #line 2682 "conf_parser.y" /* yacc.c:1646  */
5874      {
5875    ConfigFileEntry.stats_P_oper_only = yylval.number;
5876   }
5877 + #line 5878 "conf_parser.c" /* yacc.c:1646  */
5878      break;
5879  
5880 <  case 584:
5880 >  case 543:
5881 > #line 2687 "conf_parser.y" /* yacc.c:1646  */
5882 >    {
5883 >  ConfigFileEntry.stats_u_oper_only = yylval.number;
5884 > }
5885 > #line 5886 "conf_parser.c" /* yacc.c:1646  */
5886 >    break;
5887  
5888 < /* Line 1455 of yacc.c  */
5889 < #line 3336 "ircd_parser.y"
5888 >  case 544:
5889 > #line 2692 "conf_parser.y" /* yacc.c:1646  */
5890      {
5891    ConfigFileEntry.stats_k_oper_only = 2 * yylval.number;
5892   }
5893 + #line 5894 "conf_parser.c" /* yacc.c:1646  */
5894      break;
5895  
5896 <  case 585:
5897 <
7481 < /* Line 1455 of yacc.c  */
7482 < #line 3339 "ircd_parser.y"
5896 >  case 545:
5897 > #line 2695 "conf_parser.y" /* yacc.c:1646  */
5898      {
5899    ConfigFileEntry.stats_k_oper_only = 1;
5900   }
5901 + #line 5902 "conf_parser.c" /* yacc.c:1646  */
5902      break;
5903  
5904 <  case 586:
5905 <
7490 < /* Line 1455 of yacc.c  */
7491 < #line 3344 "ircd_parser.y"
5904 >  case 546:
5905 > #line 2700 "conf_parser.y" /* yacc.c:1646  */
5906      {
5907    ConfigFileEntry.stats_i_oper_only = 2 * yylval.number;
5908   }
5909 + #line 5910 "conf_parser.c" /* yacc.c:1646  */
5910      break;
5911  
5912 <  case 587:
5913 <
7499 < /* Line 1455 of yacc.c  */
7500 < #line 3347 "ircd_parser.y"
5912 >  case 547:
5913 > #line 2703 "conf_parser.y" /* yacc.c:1646  */
5914      {
5915    ConfigFileEntry.stats_i_oper_only = 1;
5916   }
5917 + #line 5918 "conf_parser.c" /* yacc.c:1646  */
5918      break;
5919  
5920 <  case 588:
5921 <
7508 < /* Line 1455 of yacc.c  */
7509 < #line 3352 "ircd_parser.y"
5920 >  case 548:
5921 > #line 2708 "conf_parser.y" /* yacc.c:1646  */
5922      {
5923 <  ConfigFileEntry.pace_wait = (yyvsp[(3) - (4)].number);
5923 >  ConfigFileEntry.pace_wait = (yyvsp[-1].number);
5924   }
5925 + #line 5926 "conf_parser.c" /* yacc.c:1646  */
5926      break;
5927  
5928 <  case 589:
5929 <
7517 < /* Line 1455 of yacc.c  */
7518 < #line 3357 "ircd_parser.y"
5928 >  case 549:
5929 > #line 2713 "conf_parser.y" /* yacc.c:1646  */
5930      {
5931 <  ConfigFileEntry.caller_id_wait = (yyvsp[(3) - (4)].number);
5931 >  ConfigFileEntry.caller_id_wait = (yyvsp[-1].number);
5932   }
5933 + #line 5934 "conf_parser.c" /* yacc.c:1646  */
5934      break;
5935  
5936 <  case 590:
5937 <
7526 < /* Line 1455 of yacc.c  */
7527 < #line 3362 "ircd_parser.y"
5936 >  case 550:
5937 > #line 2718 "conf_parser.y" /* yacc.c:1646  */
5938      {
5939    ConfigFileEntry.opers_bypass_callerid = yylval.number;
5940   }
5941 + #line 5942 "conf_parser.c" /* yacc.c:1646  */
5942      break;
5943  
5944 <  case 591:
5945 <
7535 < /* Line 1455 of yacc.c  */
7536 < #line 3367 "ircd_parser.y"
5944 >  case 551:
5945 > #line 2723 "conf_parser.y" /* yacc.c:1646  */
5946      {
5947 <  ConfigFileEntry.pace_wait_simple = (yyvsp[(3) - (4)].number);
5947 >  ConfigFileEntry.pace_wait_simple = (yyvsp[-1].number);
5948   }
5949 + #line 5950 "conf_parser.c" /* yacc.c:1646  */
5950      break;
5951  
5952 <  case 592:
5953 <
7544 < /* Line 1455 of yacc.c  */
7545 < #line 3372 "ircd_parser.y"
5952 >  case 552:
5953 > #line 2728 "conf_parser.y" /* yacc.c:1646  */
5954      {
5955    ConfigFileEntry.short_motd = yylval.number;
5956   }
5957 + #line 5958 "conf_parser.c" /* yacc.c:1646  */
5958      break;
5959  
5960 <  case 593:
5961 <
7553 < /* Line 1455 of yacc.c  */
7554 < #line 3377 "ircd_parser.y"
5960 >  case 553:
5961 > #line 2733 "conf_parser.y" /* yacc.c:1646  */
5962      {
5963    ConfigFileEntry.no_oper_flood = yylval.number;
5964   }
5965 + #line 5966 "conf_parser.c" /* yacc.c:1646  */
5966      break;
5967  
5968 <  case 594:
5969 <
7562 < /* Line 1455 of yacc.c  */
7563 < #line 3382 "ircd_parser.y"
5968 >  case 554:
5969 > #line 2738 "conf_parser.y" /* yacc.c:1646  */
5970      {
5971    ConfigFileEntry.true_no_oper_flood = yylval.number;
5972   }
5973 + #line 5974 "conf_parser.c" /* yacc.c:1646  */
5974      break;
5975  
5976 <  case 595:
5977 <
7571 < /* Line 1455 of yacc.c  */
7572 < #line 3387 "ircd_parser.y"
5976 >  case 555:
5977 > #line 2743 "conf_parser.y" /* yacc.c:1646  */
5978      {
5979    ConfigFileEntry.oper_pass_resv = yylval.number;
5980   }
5981 + #line 5982 "conf_parser.c" /* yacc.c:1646  */
5982      break;
5983  
5984 <  case 596:
5985 <
7580 < /* Line 1455 of yacc.c  */
7581 < #line 3392 "ircd_parser.y"
7582 <    {
7583 <  if (conf_parser_ctx.pass == 2)
7584 <  {
7585 <    if (strlen(yylval.string) > LOCALE_LENGTH-2)
7586 <      yylval.string[LOCALE_LENGTH-1] = '\0';
7587 <
7588 <    set_locale(yylval.string);
7589 <  }
7590 < }
7591 <    break;
7592 <
7593 <  case 597:
7594 <
7595 < /* Line 1455 of yacc.c  */
7596 < #line 3403 "ircd_parser.y"
5984 >  case 556:
5985 > #line 2748 "conf_parser.y" /* yacc.c:1646  */
5986      {
5987 <  ConfigFileEntry.idletime = (yyvsp[(3) - (4)].number);
5987 >  ConfigFileEntry.dots_in_ident = (yyvsp[-1].number);
5988   }
5989 + #line 5990 "conf_parser.c" /* yacc.c:1646  */
5990      break;
5991  
5992 <  case 598:
5993 <
7604 < /* Line 1455 of yacc.c  */
7605 < #line 3408 "ircd_parser.y"
5992 >  case 557:
5993 > #line 2753 "conf_parser.y" /* yacc.c:1646  */
5994      {
5995 <  ConfigFileEntry.dots_in_ident = (yyvsp[(3) - (4)].number);
5995 >  ConfigFileEntry.max_targets = (yyvsp[-1].number);
5996   }
5997 + #line 5998 "conf_parser.c" /* yacc.c:1646  */
5998      break;
5999  
6000 <  case 599:
6001 <
7613 < /* Line 1455 of yacc.c  */
7614 < #line 3413 "ircd_parser.y"
6000 >  case 558:
6001 > #line 2758 "conf_parser.y" /* yacc.c:1646  */
6002      {
6003 <  ConfigFileEntry.max_targets = (yyvsp[(3) - (4)].number);
6003 >  ConfigFileEntry.use_egd = yylval.number;
6004   }
6005 + #line 6006 "conf_parser.c" /* yacc.c:1646  */
6006      break;
6007  
6008 <  case 600:
6009 <
7622 < /* Line 1455 of yacc.c  */
7623 < #line 3418 "ircd_parser.y"
6008 >  case 559:
6009 > #line 2763 "conf_parser.y" /* yacc.c:1646  */
6010      {
6011    if (conf_parser_ctx.pass == 2)
6012    {
6013 <    MyFree(ConfigFileEntry.servlink_path);
6014 <    DupString(ConfigFileEntry.servlink_path, yylval.string);
6013 >    MyFree(ConfigFileEntry.egdpool_path);
6014 >    ConfigFileEntry.egdpool_path = xstrdup(yylval.string);
6015    }
6016   }
6017 + #line 6018 "conf_parser.c" /* yacc.c:1646  */
6018      break;
6019  
6020 <  case 601:
6021 <
7635 < /* Line 1455 of yacc.c  */
7636 < #line 3427 "ircd_parser.y"
6020 >  case 560:
6021 > #line 2772 "conf_parser.y" /* yacc.c:1646  */
6022      {
6023 < #ifdef HAVE_LIBCRYPTO
7639 <  if (conf_parser_ctx.pass == 2)
6023 >  if (conf_parser_ctx.pass == 2 && valid_servname(yylval.string))
6024    {
6025 <    struct EncCapability *ecap;
6026 <    const char *cipher_name;
7643 <    int found = 0;
7644 <
7645 <    ConfigFileEntry.default_cipher_preference = NULL;
7646 <    cipher_name = yylval.string;
7647 <
7648 <    for (ecap = CipherTable; ecap->name; ecap++)
7649 <    {
7650 <      if ((irccmp(ecap->name, cipher_name) == 0) &&
7651 <          (ecap->cap & CAP_ENC_MASK))
7652 <      {
7653 <        ConfigFileEntry.default_cipher_preference = ecap;
7654 <        found = 1;
7655 <        break;
7656 <      }
7657 <    }
7658 <
7659 <    if (!found)
7660 <      yyerror("Invalid cipher");
6025 >    MyFree(ConfigFileEntry.service_name);
6026 >    ConfigFileEntry.service_name = xstrdup(yylval.string);
6027    }
7662 #else
7663  if (conf_parser_ctx.pass == 2)
7664    yyerror("Ignoring default_cipher_preference -- no OpenSSL support");
7665 #endif
6028   }
6029 + #line 6030 "conf_parser.c" /* yacc.c:1646  */
6030      break;
6031  
6032 <  case 602:
6033 <
7671 < /* Line 1455 of yacc.c  */
7672 < #line 3459 "ircd_parser.y"
7673 <    {
7674 <  if (conf_parser_ctx.pass == 2)
7675 <  {
7676 <    ConfigFileEntry.compression_level = (yyvsp[(3) - (4)].number);
7677 < #ifndef HAVE_LIBZ
7678 <    yyerror("Ignoring compression_level -- no zlib support");
7679 < #else
7680 <    if ((ConfigFileEntry.compression_level < 1) ||
7681 <        (ConfigFileEntry.compression_level > 9))
6032 >  case 561:
6033 > #line 2781 "conf_parser.y" /* yacc.c:1646  */
6034      {
6035 <      yyerror("Ignoring invalid compression_level, using default");
7684 <      ConfigFileEntry.compression_level = 0;
7685 <    }
7686 < #endif
7687 <  }
6035 >  ConfigFileEntry.ping_cookie = yylval.number;
6036   }
6037 + #line 6038 "conf_parser.c" /* yacc.c:1646  */
6038      break;
6039  
6040 <  case 603:
6041 <
7693 < /* Line 1455 of yacc.c  */
7694 < #line 3477 "ircd_parser.y"
6040 >  case 562:
6041 > #line 2786 "conf_parser.y" /* yacc.c:1646  */
6042      {
6043 <  ConfigFileEntry.use_egd = yylval.number;
6043 >  ConfigFileEntry.disable_auth = yylval.number;
6044   }
6045 + #line 6046 "conf_parser.c" /* yacc.c:1646  */
6046      break;
6047  
6048 <  case 604:
6049 <
7702 < /* Line 1455 of yacc.c  */
7703 < #line 3482 "ircd_parser.y"
6048 >  case 563:
6049 > #line 2791 "conf_parser.y" /* yacc.c:1646  */
6050      {
6051 <  if (conf_parser_ctx.pass == 2)
7706 <  {
7707 <    MyFree(ConfigFileEntry.egdpool_path);
7708 <    DupString(ConfigFileEntry.egdpool_path, yylval.string);
7709 <  }
6051 >  ConfigFileEntry.throttle_count = (yyvsp[-1].number);
6052   }
6053 + #line 6054 "conf_parser.c" /* yacc.c:1646  */
6054      break;
6055  
6056 <  case 605:
6057 <
7715 < /* Line 1455 of yacc.c  */
7716 < #line 3491 "ircd_parser.y"
6056 >  case 564:
6057 > #line 2796 "conf_parser.y" /* yacc.c:1646  */
6058      {
6059 <  ConfigFileEntry.ping_cookie = yylval.number;
6059 >  ConfigFileEntry.throttle_time = (yyvsp[-1].number);
6060   }
6061 + #line 6062 "conf_parser.c" /* yacc.c:1646  */
6062      break;
6063  
6064 <  case 606:
6065 <
7724 < /* Line 1455 of yacc.c  */
7725 < #line 3496 "ircd_parser.y"
6064 >  case 565:
6065 > #line 2801 "conf_parser.y" /* yacc.c:1646  */
6066      {
6067 <  ConfigFileEntry.disable_auth = yylval.number;
6067 >  ConfigFileEntry.oper_umodes = 0;
6068   }
6069 + #line 6070 "conf_parser.c" /* yacc.c:1646  */
6070      break;
6071  
6072 <  case 607:
6073 <
7733 < /* Line 1455 of yacc.c  */
7734 < #line 3501 "ircd_parser.y"
6072 >  case 569:
6073 > #line 2807 "conf_parser.y" /* yacc.c:1646  */
6074      {
6075 <  ConfigFileEntry.throttle_time = yylval.number;
6075 >  ConfigFileEntry.oper_umodes |= UMODE_BOTS;
6076   }
6077 + #line 6078 "conf_parser.c" /* yacc.c:1646  */
6078      break;
6079  
6080 <  case 608:
6081 <
7742 < /* Line 1455 of yacc.c  */
7743 < #line 3506 "ircd_parser.y"
6080 >  case 570:
6081 > #line 2810 "conf_parser.y" /* yacc.c:1646  */
6082      {
6083 <  ConfigFileEntry.oper_umodes = 0;
6083 >  ConfigFileEntry.oper_umodes |= UMODE_CCONN;
6084   }
6085 + #line 6086 "conf_parser.c" /* yacc.c:1646  */
6086      break;
6087  
6088 <  case 612:
6089 <
7751 < /* Line 1455 of yacc.c  */
7752 < #line 3512 "ircd_parser.y"
6088 >  case 571:
6089 > #line 2813 "conf_parser.y" /* yacc.c:1646  */
6090      {
6091 <  ConfigFileEntry.oper_umodes |= UMODE_BOTS;
6091 >  ConfigFileEntry.oper_umodes |= UMODE_DEAF;
6092   }
6093 + #line 6094 "conf_parser.c" /* yacc.c:1646  */
6094      break;
6095  
6096 <  case 613:
6097 <
7760 < /* Line 1455 of yacc.c  */
7761 < #line 3515 "ircd_parser.y"
6096 >  case 572:
6097 > #line 2816 "conf_parser.y" /* yacc.c:1646  */
6098      {
6099 <  ConfigFileEntry.oper_umodes |= UMODE_CCONN;
6099 >  ConfigFileEntry.oper_umodes |= UMODE_DEBUG;
6100   }
6101 + #line 6102 "conf_parser.c" /* yacc.c:1646  */
6102      break;
6103  
6104 <  case 614:
6105 <
7769 < /* Line 1455 of yacc.c  */
7770 < #line 3518 "ircd_parser.y"
6104 >  case 573:
6105 > #line 2819 "conf_parser.y" /* yacc.c:1646  */
6106      {
6107 <  ConfigFileEntry.oper_umodes |= UMODE_CCONN_FULL;
6107 >  ConfigFileEntry.oper_umodes |= UMODE_FULL;
6108   }
6109 + #line 6110 "conf_parser.c" /* yacc.c:1646  */
6110      break;
6111  
6112 <  case 615:
6113 <
7778 < /* Line 1455 of yacc.c  */
7779 < #line 3521 "ircd_parser.y"
6112 >  case 574:
6113 > #line 2822 "conf_parser.y" /* yacc.c:1646  */
6114      {
6115 <  ConfigFileEntry.oper_umodes |= UMODE_DEAF;
6115 >  ConfigFileEntry.oper_umodes |= UMODE_HIDDEN;
6116   }
6117 + #line 6118 "conf_parser.c" /* yacc.c:1646  */
6118      break;
6119  
6120 <  case 616:
6121 <
7787 < /* Line 1455 of yacc.c  */
7788 < #line 3524 "ircd_parser.y"
6120 >  case 575:
6121 > #line 2825 "conf_parser.y" /* yacc.c:1646  */
6122      {
6123 <  ConfigFileEntry.oper_umodes |= UMODE_DEBUG;
6123 >  ConfigFileEntry.oper_umodes |= UMODE_HIDECHANS;
6124   }
6125 + #line 6126 "conf_parser.c" /* yacc.c:1646  */
6126      break;
6127  
6128 <  case 617:
6129 <
7796 < /* Line 1455 of yacc.c  */
7797 < #line 3527 "ircd_parser.y"
6128 >  case 576:
6129 > #line 2828 "conf_parser.y" /* yacc.c:1646  */
6130      {
6131 <  ConfigFileEntry.oper_umodes |= UMODE_FULL;
6131 >  ConfigFileEntry.oper_umodes |= UMODE_HIDEIDLE;
6132   }
6133 + #line 6134 "conf_parser.c" /* yacc.c:1646  */
6134      break;
6135  
6136 <  case 618:
6137 <
7805 < /* Line 1455 of yacc.c  */
7806 < #line 3530 "ircd_parser.y"
6136 >  case 577:
6137 > #line 2831 "conf_parser.y" /* yacc.c:1646  */
6138      {
6139    ConfigFileEntry.oper_umodes |= UMODE_SKILL;
6140   }
6141 + #line 6142 "conf_parser.c" /* yacc.c:1646  */
6142      break;
6143  
6144 <  case 619:
6145 <
7814 < /* Line 1455 of yacc.c  */
7815 < #line 3533 "ircd_parser.y"
6144 >  case 578:
6145 > #line 2834 "conf_parser.y" /* yacc.c:1646  */
6146      {
6147    ConfigFileEntry.oper_umodes |= UMODE_NCHANGE;
6148   }
6149 + #line 6150 "conf_parser.c" /* yacc.c:1646  */
6150      break;
6151  
6152 <  case 620:
6153 <
7823 < /* Line 1455 of yacc.c  */
7824 < #line 3536 "ircd_parser.y"
6152 >  case 579:
6153 > #line 2837 "conf_parser.y" /* yacc.c:1646  */
6154      {
6155    ConfigFileEntry.oper_umodes |= UMODE_REJ;
6156   }
6157 + #line 6158 "conf_parser.c" /* yacc.c:1646  */
6158      break;
6159  
6160 <  case 621:
6161 <
7832 < /* Line 1455 of yacc.c  */
7833 < #line 3539 "ircd_parser.y"
6160 >  case 580:
6161 > #line 2840 "conf_parser.y" /* yacc.c:1646  */
6162      {
6163    ConfigFileEntry.oper_umodes |= UMODE_UNAUTH;
6164   }
6165 + #line 6166 "conf_parser.c" /* yacc.c:1646  */
6166      break;
6167  
6168 <  case 622:
6169 <
7841 < /* Line 1455 of yacc.c  */
7842 < #line 3542 "ircd_parser.y"
6168 >  case 581:
6169 > #line 2843 "conf_parser.y" /* yacc.c:1646  */
6170      {
6171    ConfigFileEntry.oper_umodes |= UMODE_SPY;
6172   }
6173 + #line 6174 "conf_parser.c" /* yacc.c:1646  */
6174      break;
6175  
6176 <  case 623:
6177 <
7850 < /* Line 1455 of yacc.c  */
7851 < #line 3545 "ircd_parser.y"
6176 >  case 582:
6177 > #line 2846 "conf_parser.y" /* yacc.c:1646  */
6178      {
6179    ConfigFileEntry.oper_umodes |= UMODE_EXTERNAL;
6180   }
6181 + #line 6182 "conf_parser.c" /* yacc.c:1646  */
6182      break;
6183  
6184 <  case 624:
6185 <
7859 < /* Line 1455 of yacc.c  */
7860 < #line 3548 "ircd_parser.y"
7861 <    {
7862 <  ConfigFileEntry.oper_umodes |= UMODE_OPERWALL;
7863 < }
7864 <    break;
7865 <
7866 <  case 625:
7867 <
7868 < /* Line 1455 of yacc.c  */
7869 < #line 3551 "ircd_parser.y"
6184 >  case 583:
6185 > #line 2849 "conf_parser.y" /* yacc.c:1646  */
6186      {
6187    ConfigFileEntry.oper_umodes |= UMODE_SERVNOTICE;
6188   }
6189 + #line 6190 "conf_parser.c" /* yacc.c:1646  */
6190      break;
6191  
6192 <  case 626:
6193 <
7877 < /* Line 1455 of yacc.c  */
7878 < #line 3554 "ircd_parser.y"
6192 >  case 584:
6193 > #line 2852 "conf_parser.y" /* yacc.c:1646  */
6194      {
6195    ConfigFileEntry.oper_umodes |= UMODE_INVISIBLE;
6196   }
6197 + #line 6198 "conf_parser.c" /* yacc.c:1646  */
6198      break;
6199  
6200 <  case 627:
6201 <
7886 < /* Line 1455 of yacc.c  */
7887 < #line 3557 "ircd_parser.y"
6200 >  case 585:
6201 > #line 2855 "conf_parser.y" /* yacc.c:1646  */
6202      {
6203    ConfigFileEntry.oper_umodes |= UMODE_WALLOP;
6204   }
6205 + #line 6206 "conf_parser.c" /* yacc.c:1646  */
6206      break;
6207  
6208 <  case 628:
6209 <
7895 < /* Line 1455 of yacc.c  */
7896 < #line 3560 "ircd_parser.y"
6208 >  case 586:
6209 > #line 2858 "conf_parser.y" /* yacc.c:1646  */
6210      {
6211    ConfigFileEntry.oper_umodes |= UMODE_SOFTCALLERID;
6212   }
6213 + #line 6214 "conf_parser.c" /* yacc.c:1646  */
6214      break;
6215  
6216 <  case 629:
6217 <
7904 < /* Line 1455 of yacc.c  */
7905 < #line 3563 "ircd_parser.y"
6216 >  case 587:
6217 > #line 2861 "conf_parser.y" /* yacc.c:1646  */
6218      {
6219    ConfigFileEntry.oper_umodes |= UMODE_CALLERID;
6220   }
6221 + #line 6222 "conf_parser.c" /* yacc.c:1646  */
6222      break;
6223  
6224 <  case 630:
6225 <
7913 < /* Line 1455 of yacc.c  */
7914 < #line 3566 "ircd_parser.y"
6224 >  case 588:
6225 > #line 2864 "conf_parser.y" /* yacc.c:1646  */
6226      {
6227    ConfigFileEntry.oper_umodes |= UMODE_LOCOPS;
6228   }
6229 + #line 6230 "conf_parser.c" /* yacc.c:1646  */
6230      break;
6231  
6232 <  case 631:
6233 <
7922 < /* Line 1455 of yacc.c  */
7923 < #line 3571 "ircd_parser.y"
6232 >  case 589:
6233 > #line 2867 "conf_parser.y" /* yacc.c:1646  */
6234      {
6235 <  ConfigFileEntry.oper_only_umodes = 0;
6235 >  ConfigFileEntry.oper_umodes |= UMODE_REGONLY;
6236   }
6237 + #line 6238 "conf_parser.c" /* yacc.c:1646  */
6238      break;
6239  
6240 <  case 635:
6241 <
7931 < /* Line 1455 of yacc.c  */
7932 < #line 3577 "ircd_parser.y"
6240 >  case 590:
6241 > #line 2870 "conf_parser.y" /* yacc.c:1646  */
6242      {
6243 <  ConfigFileEntry.oper_only_umodes |= UMODE_BOTS;
6243 >  ConfigFileEntry.oper_umodes |= UMODE_FARCONNECT;
6244   }
6245 + #line 6246 "conf_parser.c" /* yacc.c:1646  */
6246      break;
6247  
6248 <  case 636:
6249 <
7940 < /* Line 1455 of yacc.c  */
7941 < #line 3580 "ircd_parser.y"
6248 >  case 591:
6249 > #line 2875 "conf_parser.y" /* yacc.c:1646  */
6250      {
6251 <  ConfigFileEntry.oper_only_umodes |= UMODE_CCONN;
6251 >  ConfigFileEntry.oper_only_umodes = 0;
6252   }
6253 + #line 6254 "conf_parser.c" /* yacc.c:1646  */
6254      break;
6255  
6256 <  case 637:
6257 <
7949 < /* Line 1455 of yacc.c  */
7950 < #line 3583 "ircd_parser.y"
6256 >  case 595:
6257 > #line 2881 "conf_parser.y" /* yacc.c:1646  */
6258      {
6259 <  ConfigFileEntry.oper_only_umodes |= UMODE_CCONN_FULL;
6259 >  ConfigFileEntry.oper_only_umodes |= UMODE_BOTS;
6260   }
6261 + #line 6262 "conf_parser.c" /* yacc.c:1646  */
6262      break;
6263  
6264 <  case 638:
6264 >  case 596:
6265 > #line 2884 "conf_parser.y" /* yacc.c:1646  */
6266 >    {
6267 >  ConfigFileEntry.oper_only_umodes |= UMODE_CCONN;
6268 > }
6269 > #line 6270 "conf_parser.c" /* yacc.c:1646  */
6270 >    break;
6271  
6272 < /* Line 1455 of yacc.c  */
6273 < #line 3586 "ircd_parser.y"
6272 >  case 597:
6273 > #line 2887 "conf_parser.y" /* yacc.c:1646  */
6274      {
6275    ConfigFileEntry.oper_only_umodes |= UMODE_DEAF;
6276   }
6277 + #line 6278 "conf_parser.c" /* yacc.c:1646  */
6278      break;
6279  
6280 <  case 639:
6281 <
7967 < /* Line 1455 of yacc.c  */
7968 < #line 3589 "ircd_parser.y"
6280 >  case 598:
6281 > #line 2890 "conf_parser.y" /* yacc.c:1646  */
6282      {
6283    ConfigFileEntry.oper_only_umodes |= UMODE_DEBUG;
6284   }
6285 + #line 6286 "conf_parser.c" /* yacc.c:1646  */
6286      break;
6287  
6288 <  case 640:
6289 <
6290 < /* Line 1455 of yacc.c  */
7977 < #line 3592 "ircd_parser.y"
7978 <    {
6288 >  case 599:
6289 > #line 2893 "conf_parser.y" /* yacc.c:1646  */
6290 >    {
6291    ConfigFileEntry.oper_only_umodes |= UMODE_FULL;
6292   }
6293 + #line 6294 "conf_parser.c" /* yacc.c:1646  */
6294      break;
6295  
6296 <  case 641:
6297 <
7985 < /* Line 1455 of yacc.c  */
7986 < #line 3595 "ircd_parser.y"
6296 >  case 600:
6297 > #line 2896 "conf_parser.y" /* yacc.c:1646  */
6298      {
6299    ConfigFileEntry.oper_only_umodes |= UMODE_SKILL;
6300   }
6301 + #line 6302 "conf_parser.c" /* yacc.c:1646  */
6302      break;
6303  
6304 <  case 642:
6304 >  case 601:
6305 > #line 2899 "conf_parser.y" /* yacc.c:1646  */
6306 >    {
6307 >  ConfigFileEntry.oper_only_umodes |= UMODE_HIDDEN;
6308 > }
6309 > #line 6310 "conf_parser.c" /* yacc.c:1646  */
6310 >    break;
6311  
6312 < /* Line 1455 of yacc.c  */
6313 < #line 3598 "ircd_parser.y"
6312 >  case 602:
6313 > #line 2902 "conf_parser.y" /* yacc.c:1646  */
6314      {
6315    ConfigFileEntry.oper_only_umodes |= UMODE_NCHANGE;
6316   }
6317 + #line 6318 "conf_parser.c" /* yacc.c:1646  */
6318      break;
6319  
6320 <  case 643:
6321 <
8003 < /* Line 1455 of yacc.c  */
8004 < #line 3601 "ircd_parser.y"
6320 >  case 603:
6321 > #line 2905 "conf_parser.y" /* yacc.c:1646  */
6322      {
6323    ConfigFileEntry.oper_only_umodes |= UMODE_REJ;
6324   }
6325 + #line 6326 "conf_parser.c" /* yacc.c:1646  */
6326      break;
6327  
6328 <  case 644:
6329 <
8012 < /* Line 1455 of yacc.c  */
8013 < #line 3604 "ircd_parser.y"
6328 >  case 604:
6329 > #line 2908 "conf_parser.y" /* yacc.c:1646  */
6330      {
6331    ConfigFileEntry.oper_only_umodes |= UMODE_UNAUTH;
6332   }
6333 + #line 6334 "conf_parser.c" /* yacc.c:1646  */
6334      break;
6335  
6336 <  case 645:
6337 <
8021 < /* Line 1455 of yacc.c  */
8022 < #line 3607 "ircd_parser.y"
6336 >  case 605:
6337 > #line 2911 "conf_parser.y" /* yacc.c:1646  */
6338      {
6339    ConfigFileEntry.oper_only_umodes |= UMODE_SPY;
6340   }
6341 + #line 6342 "conf_parser.c" /* yacc.c:1646  */
6342      break;
6343  
6344 <  case 646:
6345 <
8030 < /* Line 1455 of yacc.c  */
8031 < #line 3610 "ircd_parser.y"
6344 >  case 606:
6345 > #line 2914 "conf_parser.y" /* yacc.c:1646  */
6346      {
6347    ConfigFileEntry.oper_only_umodes |= UMODE_EXTERNAL;
6348   }
6349 + #line 6350 "conf_parser.c" /* yacc.c:1646  */
6350      break;
6351  
6352 <  case 647:
6353 <
8039 < /* Line 1455 of yacc.c  */
8040 < #line 3613 "ircd_parser.y"
8041 <    {
8042 <  ConfigFileEntry.oper_only_umodes |= UMODE_OPERWALL;
8043 < }
8044 <    break;
8045 <
8046 <  case 648:
8047 <
8048 < /* Line 1455 of yacc.c  */
8049 < #line 3616 "ircd_parser.y"
6352 >  case 607:
6353 > #line 2917 "conf_parser.y" /* yacc.c:1646  */
6354      {
6355    ConfigFileEntry.oper_only_umodes |= UMODE_SERVNOTICE;
6356   }
6357 + #line 6358 "conf_parser.c" /* yacc.c:1646  */
6358      break;
6359  
6360 <  case 649:
6361 <
8057 < /* Line 1455 of yacc.c  */
8058 < #line 3619 "ircd_parser.y"
6360 >  case 608:
6361 > #line 2920 "conf_parser.y" /* yacc.c:1646  */
6362      {
6363    ConfigFileEntry.oper_only_umodes |= UMODE_INVISIBLE;
6364   }
6365 + #line 6366 "conf_parser.c" /* yacc.c:1646  */
6366      break;
6367  
6368 <  case 650:
6369 <
8066 < /* Line 1455 of yacc.c  */
8067 < #line 3622 "ircd_parser.y"
6368 >  case 609:
6369 > #line 2923 "conf_parser.y" /* yacc.c:1646  */
6370      {
6371    ConfigFileEntry.oper_only_umodes |= UMODE_WALLOP;
6372   }
6373 + #line 6374 "conf_parser.c" /* yacc.c:1646  */
6374      break;
6375  
6376 <  case 651:
6377 <
8075 < /* Line 1455 of yacc.c  */
8076 < #line 3625 "ircd_parser.y"
6376 >  case 610:
6377 > #line 2926 "conf_parser.y" /* yacc.c:1646  */
6378      {
6379    ConfigFileEntry.oper_only_umodes |= UMODE_SOFTCALLERID;
6380   }
6381 + #line 6382 "conf_parser.c" /* yacc.c:1646  */
6382      break;
6383  
6384 <  case 652:
6385 <
8084 < /* Line 1455 of yacc.c  */
8085 < #line 3628 "ircd_parser.y"
6384 >  case 611:
6385 > #line 2929 "conf_parser.y" /* yacc.c:1646  */
6386      {
6387    ConfigFileEntry.oper_only_umodes |= UMODE_CALLERID;
6388   }
6389 + #line 6390 "conf_parser.c" /* yacc.c:1646  */
6390      break;
6391  
6392 <  case 653:
6393 <
8093 < /* Line 1455 of yacc.c  */
8094 < #line 3631 "ircd_parser.y"
6392 >  case 612:
6393 > #line 2932 "conf_parser.y" /* yacc.c:1646  */
6394      {
6395    ConfigFileEntry.oper_only_umodes |= UMODE_LOCOPS;
6396   }
6397 + #line 6398 "conf_parser.c" /* yacc.c:1646  */
6398      break;
6399  
6400 <  case 654:
6401 <
8102 < /* Line 1455 of yacc.c  */
8103 < #line 3636 "ircd_parser.y"
8104 <    {
8105 <  ConfigFileEntry.min_nonwildcard = (yyvsp[(3) - (4)].number);
8106 < }
8107 <    break;
8108 <
8109 <  case 655:
8110 <
8111 < /* Line 1455 of yacc.c  */
8112 < #line 3641 "ircd_parser.y"
8113 <    {
8114 <  ConfigFileEntry.min_nonwildcard_simple = (yyvsp[(3) - (4)].number);
8115 < }
8116 <    break;
8117 <
8118 <  case 656:
8119 <
8120 < /* Line 1455 of yacc.c  */
8121 < #line 3646 "ircd_parser.y"
8122 <    {
8123 <  ConfigFileEntry.default_floodcount = (yyvsp[(3) - (4)].number);
8124 < }
8125 <    break;
8126 <
8127 <  case 657:
8128 <
8129 < /* Line 1455 of yacc.c  */
8130 < #line 3651 "ircd_parser.y"
8131 <    {
8132 <  ConfigFileEntry.client_flood = (yyvsp[(3) - (4)].number);
8133 < }
8134 <    break;
8135 <
8136 <  case 658:
8137 <
8138 < /* Line 1455 of yacc.c  */
8139 < #line 3656 "ircd_parser.y"
8140 <    {
8141 <  ConfigFileEntry.dot_in_ip6_addr = yylval.number;
8142 < }
8143 <    break;
8144 <
8145 <  case 659:
8146 <
8147 < /* Line 1455 of yacc.c  */
8148 < #line 3664 "ircd_parser.y"
8149 <    {
8150 <  if (conf_parser_ctx.pass == 2)
8151 <  {
8152 <    yy_conf = make_conf_item(GDENY_TYPE);
8153 <    yy_aconf = map_to_conf(yy_conf);
8154 <  }
8155 < }
8156 <    break;
8157 <
8158 <  case 660:
8159 <
8160 < /* Line 1455 of yacc.c  */
8161 < #line 3671 "ircd_parser.y"
8162 <    {
8163 <  if (conf_parser_ctx.pass == 2)
8164 <  {
8165 <    /*
8166 <     * since we re-allocate yy_conf/yy_aconf after the end of action=, at the
8167 <     * end we will have one extra, so we should free it.
8168 <     */
8169 <    if (yy_conf->name == NULL || yy_aconf->user == NULL)
8170 <    {
8171 <      delete_conf_item(yy_conf);
8172 <      yy_conf = NULL;
8173 <      yy_aconf = NULL;
8174 <    }
8175 <  }
8176 < }
8177 <    break;
8178 <
8179 <  case 670:
8180 <
8181 < /* Line 1455 of yacc.c  */
8182 < #line 3697 "ircd_parser.y"
8183 <    {
8184 <  if (conf_parser_ctx.pass == 2)
8185 <    ConfigFileEntry.glines = yylval.number;
8186 < }
8187 <    break;
8188 <
8189 <  case 671:
8190 <
8191 < /* Line 1455 of yacc.c  */
8192 < #line 3703 "ircd_parser.y"
8193 <    {
8194 <  if (conf_parser_ctx.pass == 2)
8195 <    ConfigFileEntry.gline_time = (yyvsp[(3) - (4)].number);
8196 < }
8197 <    break;
8198 <
8199 <  case 672:
8200 <
8201 < /* Line 1455 of yacc.c  */
8202 < #line 3709 "ircd_parser.y"
8203 <    {
8204 <  if (conf_parser_ctx.pass == 2)
8205 <    ConfigFileEntry.gline_logging = 0;
8206 < }
8207 <    break;
8208 <
8209 <  case 676:
8210 <
8211 < /* Line 1455 of yacc.c  */
8212 < #line 3715 "ircd_parser.y"
8213 <    {
8214 <  if (conf_parser_ctx.pass == 2)
8215 <    ConfigFileEntry.gline_logging |= GDENY_REJECT;
8216 < }
8217 <    break;
8218 <
8219 <  case 677:
8220 <
8221 < /* Line 1455 of yacc.c  */
8222 < #line 3719 "ircd_parser.y"
8223 <    {
8224 <  if (conf_parser_ctx.pass == 2)
8225 <    ConfigFileEntry.gline_logging |= GDENY_BLOCK;
8226 < }
8227 <    break;
8228 <
8229 <  case 678:
8230 <
8231 < /* Line 1455 of yacc.c  */
8232 < #line 3725 "ircd_parser.y"
8233 <    {
8234 <  if (conf_parser_ctx.pass == 2)
8235 <  {
8236 <    struct split_nuh_item nuh;
8237 <
8238 <    nuh.nuhmask  = yylval.string;
8239 <    nuh.nickptr  = NULL;
8240 <    nuh.userptr  = userbuf;
8241 <    nuh.hostptr  = hostbuf;
8242 <
8243 <    nuh.nicksize = 0;
8244 <    nuh.usersize = sizeof(userbuf);
8245 <    nuh.hostsize = sizeof(hostbuf);
8246 <
8247 <    split_nuh(&nuh);
8248 <
8249 <    if (yy_aconf->user == NULL)
8250 <    {
8251 <      DupString(yy_aconf->user, userbuf);
8252 <      DupString(yy_aconf->host, hostbuf);
8253 <    }
8254 <    else
8255 <    {
8256 <      struct CollectItem *yy_tmp = MyMalloc(sizeof(struct CollectItem));
8257 <
8258 <      DupString(yy_tmp->user, userbuf);
8259 <      DupString(yy_tmp->host, hostbuf);
8260 <
8261 <      dlinkAdd(yy_tmp, &yy_tmp->node, &col_conf_list);
8262 <    }
8263 <  }
8264 < }
8265 <    break;
8266 <
8267 <  case 679:
8268 <
8269 < /* Line 1455 of yacc.c  */
8270 < #line 3759 "ircd_parser.y"
6400 >  case 613:
6401 > #line 2935 "conf_parser.y" /* yacc.c:1646  */
6402      {
6403 <  if (conf_parser_ctx.pass == 2)  
8273 <  {
8274 <    MyFree(yy_conf->name);
8275 <    DupString(yy_conf->name, yylval.string);
8276 <  }
6403 >  ConfigFileEntry.oper_only_umodes |= UMODE_REGONLY;
6404   }
6405 + #line 6406 "conf_parser.c" /* yacc.c:1646  */
6406      break;
6407  
6408 <  case 680:
6409 <
8282 < /* Line 1455 of yacc.c  */
8283 < #line 3768 "ircd_parser.y"
6408 >  case 614:
6409 > #line 2938 "conf_parser.y" /* yacc.c:1646  */
6410      {
6411 <  if (conf_parser_ctx.pass == 2)
8286 <    yy_aconf->flags = 0;
6411 >  ConfigFileEntry.oper_only_umodes |= UMODE_FARCONNECT;
6412   }
6413 + #line 6414 "conf_parser.c" /* yacc.c:1646  */
6414      break;
6415  
6416 <  case 681:
6417 <
8292 < /* Line 1455 of yacc.c  */
8293 < #line 3772 "ircd_parser.y"
8294 <    {
8295 <  if (conf_parser_ctx.pass == 2)
8296 <  {
8297 <    struct CollectItem *yy_tmp = NULL;
8298 <    dlink_node *ptr, *next_ptr;
8299 <
8300 <    DLINK_FOREACH_SAFE(ptr, next_ptr, col_conf_list.head)
6416 >  case 615:
6417 > #line 2943 "conf_parser.y" /* yacc.c:1646  */
6418      {
6419 <      struct AccessItem *new_aconf;
8303 <      struct ConfItem *new_conf;
8304 <
8305 <      yy_tmp = ptr->data;
8306 <      new_conf = make_conf_item(GDENY_TYPE);
8307 <      new_aconf = map_to_conf(new_conf);
8308 <
8309 <      new_aconf->flags = yy_aconf->flags;
8310 <
8311 <      if (yy_conf->name != NULL)
8312 <        DupString(new_conf->name, yy_conf->name);
8313 <      else
8314 <        DupString(new_conf->name, "*");
8315 <      if (yy_aconf->user != NULL)
8316 <         DupString(new_aconf->user, yy_tmp->user);
8317 <      else  
8318 <        DupString(new_aconf->user, "*");
8319 <      if (yy_aconf->host != NULL)
8320 <        DupString(new_aconf->host, yy_tmp->host);
8321 <      else
8322 <        DupString(new_aconf->host, "*");
8323 <
8324 <      dlinkDelete(&yy_tmp->node, &col_conf_list);
8325 <    }
8326 <
8327 <    /*
8328 <     * In case someone has fed us with more than one action= after user/name
8329 <     * which would leak memory  -Michael
8330 <     */
8331 <    if (yy_conf->name == NULL || yy_aconf->user == NULL)
8332 <      delete_conf_item(yy_conf);
8333 <
8334 <    yy_conf = make_conf_item(GDENY_TYPE);
8335 <    yy_aconf = map_to_conf(yy_conf);
8336 <  }
6419 >  ConfigFileEntry.min_nonwildcard = (yyvsp[-1].number);
6420   }
6421 + #line 6422 "conf_parser.c" /* yacc.c:1646  */
6422      break;
6423  
6424 <  case 684:
6425 <
8342 < /* Line 1455 of yacc.c  */
8343 < #line 3819 "ircd_parser.y"
6424 >  case 616:
6425 > #line 2948 "conf_parser.y" /* yacc.c:1646  */
6426      {
6427 <  if (conf_parser_ctx.pass == 2)
8346 <    yy_aconf->flags |= GDENY_REJECT;
6427 >  ConfigFileEntry.min_nonwildcard_simple = (yyvsp[-1].number);
6428   }
6429 + #line 6430 "conf_parser.c" /* yacc.c:1646  */
6430      break;
6431  
6432 <  case 685:
6433 <
8352 < /* Line 1455 of yacc.c  */
8353 < #line 3823 "ircd_parser.y"
6432 >  case 617:
6433 > #line 2953 "conf_parser.y" /* yacc.c:1646  */
6434      {
6435 <  if (conf_parser_ctx.pass == 2)
8356 <    yy_aconf->flags |= GDENY_BLOCK;
6435 >  ConfigFileEntry.default_floodcount = (yyvsp[-1].number);
6436   }
6437 + #line 6438 "conf_parser.c" /* yacc.c:1646  */
6438      break;
6439  
6440 <  case 708:
6441 <
8362 < /* Line 1455 of yacc.c  */
8363 < #line 3847 "ircd_parser.y"
6440 >  case 636:
6441 > #line 2982 "conf_parser.y" /* yacc.c:1646  */
6442      {
6443    ConfigChannel.disable_fake_channels = yylval.number;
6444   }
6445 + #line 6446 "conf_parser.c" /* yacc.c:1646  */
6446      break;
6447  
6448 <  case 709:
6449 <
8371 < /* Line 1455 of yacc.c  */
8372 < #line 3852 "ircd_parser.y"
8373 <    {
8374 <  ConfigChannel.restrict_channels = yylval.number;
8375 < }
8376 <    break;
8377 <
8378 <  case 710:
8379 <
8380 < /* Line 1455 of yacc.c  */
8381 < #line 3857 "ircd_parser.y"
8382 <    {
8383 <  ConfigChannel.disable_local_channels = yylval.number;
8384 < }
8385 <    break;
8386 <
8387 <  case 711:
8388 <
8389 < /* Line 1455 of yacc.c  */
8390 < #line 3862 "ircd_parser.y"
8391 <    {
8392 <  ConfigChannel.use_except = yylval.number;
8393 < }
8394 <    break;
8395 <
8396 <  case 712:
8397 <
8398 < /* Line 1455 of yacc.c  */
8399 < #line 3867 "ircd_parser.y"
6448 >  case 637:
6449 > #line 2987 "conf_parser.y" /* yacc.c:1646  */
6450      {
6451 <  ConfigChannel.use_invex = yylval.number;
6451 >  ConfigChannel.invite_client_count = (yyvsp[-1].number);
6452   }
6453 + #line 6454 "conf_parser.c" /* yacc.c:1646  */
6454      break;
6455  
6456 <  case 713:
6457 <
8407 < /* Line 1455 of yacc.c  */
8408 < #line 3872 "ircd_parser.y"
6456 >  case 638:
6457 > #line 2992 "conf_parser.y" /* yacc.c:1646  */
6458      {
6459 <  ConfigChannel.use_knock = yylval.number;
6459 >  ConfigChannel.invite_client_time = (yyvsp[-1].number);
6460   }
6461 + #line 6462 "conf_parser.c" /* yacc.c:1646  */
6462      break;
6463  
6464 <  case 714:
6465 <
8416 < /* Line 1455 of yacc.c  */
8417 < #line 3877 "ircd_parser.y"
6464 >  case 639:
6465 > #line 2997 "conf_parser.y" /* yacc.c:1646  */
6466      {
6467 <  ConfigChannel.knock_delay = (yyvsp[(3) - (4)].number);
6467 >  ConfigChannel.knock_client_count = (yyvsp[-1].number);
6468   }
6469 + #line 6470 "conf_parser.c" /* yacc.c:1646  */
6470      break;
6471  
6472 <  case 715:
6473 <
8425 < /* Line 1455 of yacc.c  */
8426 < #line 3882 "ircd_parser.y"
6472 >  case 640:
6473 > #line 3002 "conf_parser.y" /* yacc.c:1646  */
6474      {
6475 <  ConfigChannel.knock_delay_channel = (yyvsp[(3) - (4)].number);
6475 >  ConfigChannel.knock_client_time = (yyvsp[-1].number);
6476   }
6477 + #line 6478 "conf_parser.c" /* yacc.c:1646  */
6478      break;
6479  
6480 <  case 716:
6481 <
8434 < /* Line 1455 of yacc.c  */
8435 < #line 3887 "ircd_parser.y"
6480 >  case 641:
6481 > #line 3007 "conf_parser.y" /* yacc.c:1646  */
6482      {
6483 <  ConfigChannel.max_chans_per_user = (yyvsp[(3) - (4)].number);
6483 >  ConfigChannel.knock_delay_channel = (yyvsp[-1].number);
6484   }
6485 + #line 6486 "conf_parser.c" /* yacc.c:1646  */
6486      break;
6487  
6488 <  case 717:
6489 <
8443 < /* Line 1455 of yacc.c  */
8444 < #line 3892 "ircd_parser.y"
6488 >  case 642:
6489 > #line 3012 "conf_parser.y" /* yacc.c:1646  */
6490      {
6491 <  ConfigChannel.quiet_on_ban = yylval.number;
6491 >  ConfigChannel.max_channels = (yyvsp[-1].number);
6492   }
6493 + #line 6494 "conf_parser.c" /* yacc.c:1646  */
6494      break;
6495  
6496 <  case 718:
6497 <
8452 < /* Line 1455 of yacc.c  */
8453 < #line 3897 "ircd_parser.y"
6496 >  case 643:
6497 > #line 3017 "conf_parser.y" /* yacc.c:1646  */
6498      {
6499 <  ConfigChannel.max_bans = (yyvsp[(3) - (4)].number);
6499 >  ConfigChannel.max_bans = (yyvsp[-1].number);
6500   }
6501 + #line 6502 "conf_parser.c" /* yacc.c:1646  */
6502      break;
6503  
6504 <  case 719:
6505 <
8461 < /* Line 1455 of yacc.c  */
8462 < #line 3902 "ircd_parser.y"
6504 >  case 644:
6505 > #line 3022 "conf_parser.y" /* yacc.c:1646  */
6506      {
6507 <  ConfigChannel.default_split_user_count = (yyvsp[(3) - (4)].number);
6507 >  ConfigChannel.default_split_user_count = (yyvsp[-1].number);
6508   }
6509 + #line 6510 "conf_parser.c" /* yacc.c:1646  */
6510      break;
6511  
6512 <  case 720:
6513 <
8470 < /* Line 1455 of yacc.c  */
8471 < #line 3907 "ircd_parser.y"
6512 >  case 645:
6513 > #line 3027 "conf_parser.y" /* yacc.c:1646  */
6514      {
6515 <  ConfigChannel.default_split_server_count = (yyvsp[(3) - (4)].number);
6515 >  ConfigChannel.default_split_server_count = (yyvsp[-1].number);
6516   }
6517 + #line 6518 "conf_parser.c" /* yacc.c:1646  */
6518      break;
6519  
6520 <  case 721:
6521 <
8479 < /* Line 1455 of yacc.c  */
8480 < #line 3912 "ircd_parser.y"
6520 >  case 646:
6521 > #line 3032 "conf_parser.y" /* yacc.c:1646  */
6522      {
6523    ConfigChannel.no_create_on_split = yylval.number;
6524   }
6525 + #line 6526 "conf_parser.c" /* yacc.c:1646  */
6526      break;
6527  
6528 <  case 722:
6529 <
8488 < /* Line 1455 of yacc.c  */
8489 < #line 3917 "ircd_parser.y"
6528 >  case 647:
6529 > #line 3037 "conf_parser.y" /* yacc.c:1646  */
6530      {
6531    ConfigChannel.no_join_on_split = yylval.number;
6532   }
6533 + #line 6534 "conf_parser.c" /* yacc.c:1646  */
6534      break;
6535  
6536 <  case 723:
6537 <
8497 < /* Line 1455 of yacc.c  */
8498 < #line 3922 "ircd_parser.y"
6536 >  case 648:
6537 > #line 3042 "conf_parser.y" /* yacc.c:1646  */
6538      {
6539 <  ConfigChannel.burst_topicwho = yylval.number;
6539 >  GlobalSetOptions.joinfloodcount = yylval.number;
6540   }
6541 + #line 6542 "conf_parser.c" /* yacc.c:1646  */
6542      break;
6543  
6544 <  case 724:
6545 <
8506 < /* Line 1455 of yacc.c  */
8507 < #line 3927 "ircd_parser.y"
6544 >  case 649:
6545 > #line 3047 "conf_parser.y" /* yacc.c:1646  */
6546      {
6547 <  GlobalSetOptions.joinfloodcount = yylval.number;
6547 >  GlobalSetOptions.joinfloodtime = (yyvsp[-1].number);
6548   }
6549 + #line 6550 "conf_parser.c" /* yacc.c:1646  */
6550      break;
6551  
6552 <  case 725:
6553 <
8515 < /* Line 1455 of yacc.c  */
8516 < #line 3932 "ircd_parser.y"
6552 >  case 662:
6553 > #line 3069 "conf_parser.y" /* yacc.c:1646  */
6554      {
6555 <  GlobalSetOptions.joinfloodtime = yylval.number;
6555 >  if (conf_parser_ctx.pass == 2)
6556 >    ConfigServerHide.flatten_links = yylval.number;
6557   }
6558 + #line 6559 "conf_parser.c" /* yacc.c:1646  */
6559      break;
6560  
6561 <  case 737:
6562 <
8524 < /* Line 1455 of yacc.c  */
8525 < #line 3951 "ircd_parser.y"
6561 >  case 663:
6562 > #line 3075 "conf_parser.y" /* yacc.c:1646  */
6563      {
6564    if (conf_parser_ctx.pass == 2)
6565 <    ConfigServerHide.flatten_links = yylval.number;
6565 >    ConfigServerHide.disable_remote_commands = yylval.number;
6566   }
6567 + #line 6568 "conf_parser.c" /* yacc.c:1646  */
6568      break;
6569  
6570 <  case 738:
6571 <
8534 < /* Line 1455 of yacc.c  */
8535 < #line 3957 "ircd_parser.y"
6570 >  case 664:
6571 > #line 3081 "conf_parser.y" /* yacc.c:1646  */
6572      {
6573    if (conf_parser_ctx.pass == 2)
6574      ConfigServerHide.hide_servers = yylval.number;
6575   }
6576 + #line 6577 "conf_parser.c" /* yacc.c:1646  */
6577      break;
6578  
6579 <  case 739:
6579 >  case 665:
6580 > #line 3087 "conf_parser.y" /* yacc.c:1646  */
6581 >    {
6582 >  if (conf_parser_ctx.pass == 2)
6583 >    ConfigServerHide.hide_services = yylval.number;
6584 > }
6585 > #line 6586 "conf_parser.c" /* yacc.c:1646  */
6586 >    break;
6587  
6588 < /* Line 1455 of yacc.c  */
6589 < #line 3963 "ircd_parser.y"
6588 >  case 666:
6589 > #line 3093 "conf_parser.y" /* yacc.c:1646  */
6590      {
6591    if (conf_parser_ctx.pass == 2)
6592    {
6593      MyFree(ConfigServerHide.hidden_name);
6594 <    DupString(ConfigServerHide.hidden_name, yylval.string);
6594 >    ConfigServerHide.hidden_name = xstrdup(yylval.string);
6595    }
6596   }
6597 + #line 6598 "conf_parser.c" /* yacc.c:1646  */
6598      break;
6599  
6600 <  case 740:
6601 <
8557 < /* Line 1455 of yacc.c  */
8558 < #line 3972 "ircd_parser.y"
6600 >  case 667:
6601 > #line 3102 "conf_parser.y" /* yacc.c:1646  */
6602      {
6603    if (conf_parser_ctx.pass == 2)
6604    {
6605 <    if (((yyvsp[(3) - (4)].number) > 0) && ConfigServerHide.links_disabled == 1)
6605 >    if (((yyvsp[-1].number) > 0) && ConfigServerHide.links_disabled == 1)
6606      {
6607 <      eventAddIsh("write_links_file", write_links_file, NULL, (yyvsp[(3) - (4)].number));
6607 >      event_write_links_file.when = (yyvsp[-1].number);
6608 >      event_addish(&event_write_links_file, NULL);
6609        ConfigServerHide.links_disabled = 0;
6610      }
6611  
6612 <    ConfigServerHide.links_delay = (yyvsp[(3) - (4)].number);
6612 >    ConfigServerHide.links_delay = (yyvsp[-1].number);
6613    }
6614   }
6615 + #line 6616 "conf_parser.c" /* yacc.c:1646  */
6616      break;
6617  
6618 <  case 741:
6619 <
8575 < /* Line 1455 of yacc.c  */
8576 < #line 3986 "ircd_parser.y"
6618 >  case 668:
6619 > #line 3117 "conf_parser.y" /* yacc.c:1646  */
6620      {
6621    if (conf_parser_ctx.pass == 2)
6622      ConfigServerHide.hidden = yylval.number;
6623   }
6624 + #line 6625 "conf_parser.c" /* yacc.c:1646  */
6625      break;
6626  
6627 <  case 742:
6628 <
8585 < /* Line 1455 of yacc.c  */
8586 < #line 3992 "ircd_parser.y"
8587 <    {
8588 <  if (conf_parser_ctx.pass == 2)
8589 <    ConfigServerHide.disable_hidden = yylval.number;
8590 < }
8591 <    break;
8592 <
8593 <  case 743:
8594 <
8595 < /* Line 1455 of yacc.c  */
8596 < #line 3998 "ircd_parser.y"
6627 >  case 669:
6628 > #line 3123 "conf_parser.y" /* yacc.c:1646  */
6629      {
6630    if (conf_parser_ctx.pass == 2)
6631      ConfigServerHide.hide_server_ips = yylval.number;
6632   }
6633 + #line 6634 "conf_parser.c" /* yacc.c:1646  */
6634      break;
6635  
6636  
6637 <
8605 < /* Line 1455 of yacc.c  */
8606 < #line 8607 "ircd_parser.c"
6637 > #line 6638 "conf_parser.c" /* yacc.c:1646  */
6638        default: break;
6639      }
6640 +  /* User semantic actions sometimes alter yychar, and that requires
6641 +     that yytoken be updated with the new translation.  We take the
6642 +     approach of translating immediately before every use of yytoken.
6643 +     One alternative is translating here after every semantic action,
6644 +     but that translation would be missed if the semantic action invokes
6645 +     YYABORT, YYACCEPT, or YYERROR immediately after altering yychar or
6646 +     if it invokes YYBACKUP.  In the case of YYABORT or YYACCEPT, an
6647 +     incorrect destructor might then be invoked immediately.  In the
6648 +     case of YYERROR or YYBACKUP, subsequent parser actions might lead
6649 +     to an incorrect destructor call or verbose syntax error message
6650 +     before the lookahead is translated.  */
6651    YY_SYMBOL_PRINT ("-> $$ =", yyr1[yyn], &yyval, &yyloc);
6652  
6653    YYPOPSTACK (yylen);
# Line 8614 | Line 6656 | yyreduce:
6656  
6657    *++yyvsp = yyval;
6658  
6659 <  /* Now `shift' the result of the reduction.  Determine what state
6659 >  /* Now 'shift' the result of the reduction.  Determine what state
6660       that goes to, based on the state we popped back to and the rule
6661       number reduced by.  */
6662  
# Line 8629 | Line 6671 | yyreduce:
6671    goto yynewstate;
6672  
6673  
6674 < /*------------------------------------.
6675 < | yyerrlab -- here on detecting error |
6676 < `------------------------------------*/
6674 > /*--------------------------------------.
6675 > | yyerrlab -- here on detecting error.  |
6676 > `--------------------------------------*/
6677   yyerrlab:
6678 +  /* Make sure we have latest lookahead translation.  See comments at
6679 +     user semantic actions for why this is necessary.  */
6680 +  yytoken = yychar == YYEMPTY ? YYEMPTY : YYTRANSLATE (yychar);
6681 +
6682    /* If not already recovering from an error, report this error.  */
6683    if (!yyerrstatus)
6684      {
# Line 8640 | Line 6686 | yyerrlab:
6686   #if ! YYERROR_VERBOSE
6687        yyerror (YY_("syntax error"));
6688   #else
6689 + # define YYSYNTAX_ERROR yysyntax_error (&yymsg_alloc, &yymsg, \
6690 +                                        yyssp, yytoken)
6691        {
6692 <        YYSIZE_T yysize = yysyntax_error (0, yystate, yychar);
6693 <        if (yymsg_alloc < yysize && yymsg_alloc < YYSTACK_ALLOC_MAXIMUM)
6694 <          {
6695 <            YYSIZE_T yyalloc = 2 * yysize;
6696 <            if (! (yysize <= yyalloc && yyalloc <= YYSTACK_ALLOC_MAXIMUM))
6697 <              yyalloc = YYSTACK_ALLOC_MAXIMUM;
6698 <            if (yymsg != yymsgbuf)
6699 <              YYSTACK_FREE (yymsg);
6700 <            yymsg = (char *) YYSTACK_ALLOC (yyalloc);
6701 <            if (yymsg)
6702 <              yymsg_alloc = yyalloc;
6703 <            else
6704 <              {
6705 <                yymsg = yymsgbuf;
6706 <                yymsg_alloc = sizeof yymsgbuf;
6707 <              }
6708 <          }
6709 <
6710 <        if (0 < yysize && yysize <= yymsg_alloc)
6711 <          {
6712 <            (void) yysyntax_error (yymsg, yystate, yychar);
6713 <            yyerror (yymsg);
6714 <          }
6715 <        else
6716 <          {
8669 <            yyerror (YY_("syntax error"));
8670 <            if (yysize != 0)
8671 <              goto yyexhaustedlab;
8672 <          }
6692 >        char const *yymsgp = YY_("syntax error");
6693 >        int yysyntax_error_status;
6694 >        yysyntax_error_status = YYSYNTAX_ERROR;
6695 >        if (yysyntax_error_status == 0)
6696 >          yymsgp = yymsg;
6697 >        else if (yysyntax_error_status == 1)
6698 >          {
6699 >            if (yymsg != yymsgbuf)
6700 >              YYSTACK_FREE (yymsg);
6701 >            yymsg = (char *) YYSTACK_ALLOC (yymsg_alloc);
6702 >            if (!yymsg)
6703 >              {
6704 >                yymsg = yymsgbuf;
6705 >                yymsg_alloc = sizeof yymsgbuf;
6706 >                yysyntax_error_status = 2;
6707 >              }
6708 >            else
6709 >              {
6710 >                yysyntax_error_status = YYSYNTAX_ERROR;
6711 >                yymsgp = yymsg;
6712 >              }
6713 >          }
6714 >        yyerror (yymsgp);
6715 >        if (yysyntax_error_status == 2)
6716 >          goto yyexhaustedlab;
6717        }
6718 + # undef YYSYNTAX_ERROR
6719   #endif
6720      }
6721  
# Line 8679 | Line 6724 | yyerrlab:
6724    if (yyerrstatus == 3)
6725      {
6726        /* If just tried and failed to reuse lookahead token after an
6727 <         error, discard it.  */
6727 >         error, discard it.  */
6728  
6729        if (yychar <= YYEOF)
6730 <        {
6731 <          /* Return failure if at end of input.  */
6732 <          if (yychar == YYEOF)
6733 <            YYABORT;
6734 <        }
6730 >        {
6731 >          /* Return failure if at end of input.  */
6732 >          if (yychar == YYEOF)
6733 >            YYABORT;
6734 >        }
6735        else
6736 <        {
6737 <          yydestruct ("Error: discarding",
6738 <                      yytoken, &yylval);
6739 <          yychar = YYEMPTY;
6740 <        }
6736 >        {
6737 >          yydestruct ("Error: discarding",
6738 >                      yytoken, &yylval);
6739 >          yychar = YYEMPTY;
6740 >        }
6741      }
6742  
6743    /* Else will try to reuse lookahead token after shifting the error
# Line 8711 | Line 6756 | yyerrorlab:
6756    if (/*CONSTCOND*/ 0)
6757       goto yyerrorlab;
6758  
6759 <  /* Do not reclaim the symbols of the rule which action triggered
6759 >  /* Do not reclaim the symbols of the rule whose action triggered
6760       this YYERROR.  */
6761    YYPOPSTACK (yylen);
6762    yylen = 0;
# Line 8724 | Line 6769 | yyerrorlab:
6769   | yyerrlab1 -- common code for both syntax error and YYERROR.  |
6770   `-------------------------------------------------------------*/
6771   yyerrlab1:
6772 <  yyerrstatus = 3;      /* Each real token shifted decrements this.  */
6772 >  yyerrstatus = 3;      /* Each real token shifted decrements this.  */
6773  
6774    for (;;)
6775      {
6776        yyn = yypact[yystate];
6777 <      if (yyn != YYPACT_NINF)
6778 <        {
6779 <          yyn += YYTERROR;
6780 <          if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYTERROR)
6781 <            {
6782 <              yyn = yytable[yyn];
6783 <              if (0 < yyn)
6784 <                break;
6785 <            }
6786 <        }
6777 >      if (!yypact_value_is_default (yyn))
6778 >        {
6779 >          yyn += YYTERROR;
6780 >          if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYTERROR)
6781 >            {
6782 >              yyn = yytable[yyn];
6783 >              if (0 < yyn)
6784 >                break;
6785 >            }
6786 >        }
6787  
6788        /* Pop the current state because it cannot handle the error token.  */
6789        if (yyssp == yyss)
6790 <        YYABORT;
6790 >        YYABORT;
6791  
6792  
6793        yydestruct ("Error: popping",
6794 <                  yystos[yystate], yyvsp);
6794 >                  yystos[yystate], yyvsp);
6795        YYPOPSTACK (1);
6796        yystate = *yyssp;
6797        YY_STACK_PRINT (yyss, yyssp);
6798      }
6799  
6800 +  YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
6801    *++yyvsp = yylval;
6802 +  YY_IGNORE_MAYBE_UNINITIALIZED_END
6803  
6804  
6805    /* Shift the error token.  */
# Line 8776 | Line 6823 | yyabortlab:
6823    yyresult = 1;
6824    goto yyreturn;
6825  
6826 < #if !defined(yyoverflow) || YYERROR_VERBOSE
6826 > #if !defined yyoverflow || YYERROR_VERBOSE
6827   /*-------------------------------------------------.
6828   | yyexhaustedlab -- memory exhaustion comes here.  |
6829   `-------------------------------------------------*/
# Line 8788 | Line 6835 | yyexhaustedlab:
6835  
6836   yyreturn:
6837    if (yychar != YYEMPTY)
6838 <     yydestruct ("Cleanup: discarding lookahead",
6839 <                 yytoken, &yylval);
6840 <  /* Do not reclaim the symbols of the rule which action triggered
6838 >    {
6839 >      /* Make sure we have latest lookahead translation.  See comments at
6840 >         user semantic actions for why this is necessary.  */
6841 >      yytoken = YYTRANSLATE (yychar);
6842 >      yydestruct ("Cleanup: discarding lookahead",
6843 >                  yytoken, &yylval);
6844 >    }
6845 >  /* Do not reclaim the symbols of the rule whose action triggered
6846       this YYABORT or YYACCEPT.  */
6847    YYPOPSTACK (yylen);
6848    YY_STACK_PRINT (yyss, yyssp);
6849    while (yyssp != yyss)
6850      {
6851        yydestruct ("Cleanup: popping",
6852 <                  yystos[*yyssp], yyvsp);
6852 >                  yystos[*yyssp], yyvsp);
6853        YYPOPSTACK (1);
6854      }
6855   #ifndef yyoverflow
# Line 8808 | Line 6860 | yyreturn:
6860    if (yymsg != yymsgbuf)
6861      YYSTACK_FREE (yymsg);
6862   #endif
6863 <  /* Make sure YYID is used.  */
8812 <  return YYID (yyresult);
6863 >  return yyresult;
6864   }
8814
8815
8816

Comparing:
ircd-hybrid-7.2/src/ircd_parser.c (property svn:keywords), Revision 1009 by michael, Sun Sep 13 15:02:30 2009 UTC vs.
ircd-hybrid/trunk/src/conf_parser.c (property svn:keywords), Revision 4114 by michael, Tue Jul 1 16:47:15 2014 UTC

# Line 0 | Line 1
1 + Id Revision

Diff Legend

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