Package: release.debian.org Severity: normal Tags: jessie Usertags: pu I would like to make an upload to stable in order to fix bug #796989 (umask bug) in the monit package. The full patch between this new package version and the version 1:5.9-1 currently in Jessie is attached (mostly it's come from upstream, tokens.h and y.tab.c are automatically updated with yacc).
diff -Nru monit-5.9/debian/changelog monit-5.9/debian/changelog --- monit-5.9/debian/changelog 2014-09-30 14:24:21.000000000 +0400 +++ monit-5.9/debian/changelog 2015-09-12 11:35:51.000000000 +0300 @@ -1,3 +1,9 @@ +monit (1:5.9-1+jessie1) unstable; urgency=medium + + * Fix umask-related regression between 5.8.1 and 5.9 (Closes: #796989) + + -- Sergey B Kirpichev <skirpichev@gmail.com> Sat, 12 Sep 2015 11:34:20 +0300 + monit (1:5.9-1) unstable; urgency=medium * Imported Upstream version 5.9 diff -Nru monit-5.9/debian/patches/13_umask_fix.patch monit-5.9/debian/patches/13_umask_fix.patch --- monit-5.9/debian/patches/13_umask_fix.patch 1970-01-01 03:00:00.000000000 +0300 +++ monit-5.9/debian/patches/13_umask_fix.patch 2015-09-12 11:35:51.000000000 +0300 @@ -0,0 +1,7179 @@ +Description: Restore the umask when executing start/stop/restart programs + and check program. +Bug-Debian: http://bugs.debian.org/796989 +Origin: https://bitbucket.org/tildeslash/monit/commits/4e68a4 +Forwarded: not-needed + +--- + libmonit/src/system/Command.c | 24 + libmonit/src/system/Command.h | 16 + libmonit/src/system/Process.h | 12 + libmonit/test/CommandTest.c | 5 + src/control.c | 1 + src/p.y | 1 + src/tokens.h | 480 ++-- + src/y.tab.c | 4109 ++++++++++++++++++++++++------------------ + 8 files changed, 2689 insertions(+), 1959 deletions(-) + +--- a/libmonit/src/system/Command.c ++++ b/libmonit/src/system/Command.c +@@ -63,6 +63,7 @@ + struct T { + uid_t uid; + gid_t gid; ++ mode_t umask; + List_T env; + List_T args; + char **_env; +@@ -75,6 +76,7 @@ + pid_t pid; + uid_t uid; + gid_t gid; ++ mode_t umask; + int status; + int stdin_pipe[2]; + int stdout_pipe[2]; +@@ -252,6 +254,12 @@ + } + + ++mode_t Process_getUmask(Process_T P) { ++ assert(P); ++ return P->umask; ++} ++ ++ + const char *Process_getDir(Process_T P) { + assert(P); + if (! P->working_directory) { +@@ -411,6 +419,18 @@ + } + + ++void Command_setUmask(T C, mode_t umask) { ++ assert(C); ++ C->umask = umask; ++} ++ ++ ++mode_t Command_getUmask(T C) { ++ assert(C); ++ return C->umask; ++} ++ ++ + void Command_setDir(T C, const char *dir) { + assert(C); + if (dir) { // Allow to set a NULL directory, meaning the calling process's current directory +@@ -510,6 +530,10 @@ + P->uid = (setuid(C->uid) != 0) ? ERROR("Command: Cannot change process uid to '%d' -- %s\n", C->uid, System_getLastError()), getuid() : C->uid; + else + P->uid = getuid(); ++ if (C->umask) { ++ P->umask = C->umask; ++ umask(P->umask); ++ } + setsid(); // Loose controlling terminal + setupChildPipes(P); + // Close all descriptors except stdio +--- a/libmonit/src/system/Command.h ++++ b/libmonit/src/system/Command.h +@@ -136,6 +136,22 @@ + + + /** ++ * Set the file creation mode mask the sub-process should switch to on exec. ++ * @param C A Command object ++ * @param umask The file creation mode mask the sub-process should switch to when executed ++ */ ++void Command_setUmask(T C, mode_t umask); ++ ++ ++/** ++ * Returns the file creation mode mask the Command should switch to on exec. ++ * @param C A Command object ++ * @return The umask the sub-process should switch to when executed ++ */ ++mode_t Command_getUmask(T C); ++ ++ ++/** + * Returns the Process timeout. Default is no timeout. The timeout + * is set with Command_setOnTimeout(). + * @param C A Command object +--- a/libmonit/src/system/Process.h ++++ b/libmonit/src/system/Process.h +@@ -77,7 +77,7 @@ + /** + * Returns the user id of the sub-process + * @param P A Process object +- * @return The user id the sub-process ++ * @return The user id of the sub-process + */ + uid_t Process_getUid(T P); + +@@ -85,12 +85,20 @@ + /** + * Returns the group id of the sub-process + * @param P A Process object +- * @return The group id the sub-process ++ * @return The group id of the sub-process + */ + gid_t Process_getGid(T P); + + + /** ++ * Returns the file creation mode mask of the sub-process ++ * @param P A Process object ++ * @return The umask of the sub-process ++ */ ++mode_t Process_getUmask(T P); ++ ++ ++/** + * Returns the Process timeout. + * @param P A Process object + * @return The number of seconds this Process has until exit before +--- a/libmonit/test/CommandTest.c ++++ b/libmonit/test/CommandTest.c +@@ -104,18 +104,21 @@ + } + printf("=> Test1: OK\n\n"); + +- printf("=> Test2: set and get uid/gid\n"); ++ printf("=> Test2: set and get uid/gid/umask\n"); + { + Command_T c = Command_new("/bin/sh", "-c", "ps -aef|grep monit", NULL); + assert(c); + // Check that default is 0 + assert(Command_getUid(c) == 0); + assert(Command_getGid(c) == 0); ++ assert(Command_getUmask(c) == 0); + // set and test uid and gid + Command_setUid(c,42); + assert(Command_getUid(c) == 42); + Command_setGid(c,148); + assert(Command_getGid(c) == 148); ++ Command_setUmask(c,0222); ++ assert(Command_getUmask(c) == 0222); + Command_free(&c); + assert(!c); + } +--- a/src/control.c ++++ b/src/control.c +@@ -109,6 +109,7 @@ + Command_setUid(C, c->uid); + if (c->has_gid) + Command_setGid(C, c->gid); ++ Command_setUmask(C, Run.umask); + Command_setEnv(C, "MONIT_DATE", Time_string(Time_now(), (char[26]){})); + Command_setEnv(C, "MONIT_SERVICE", S->name); + Command_setEnv(C, "MONIT_HOST", Run.system->name); +--- a/src/p.y ++++ b/src/p.y +@@ -2145,6 +2145,7 @@ + if (s->program->args->has_gid) { + Command_setGid(s->program->C, s->program->args->gid); + } ++ Command_setUmask(s->program->C, Run.umask); + } + } + +--- a/src/tokens.h ++++ b/src/tokens.h +@@ -1,19 +1,19 @@ +-/* A Bison parser, made by GNU Bison 3.0.2. */ ++/* A Bison parser, made by GNU Bison 2.5. */ + + /* Bison interface for Yacc-like parsers in C +- +- Copyright (C) 1984, 1989-1990, 2000-2013 Free Software Foundation, Inc. +- ++ ++ Copyright (C) 1984, 1989-1990, 2000-2011 Free Software Foundation, Inc. ++ + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. +- ++ + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. +- ++ + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. */ + +@@ -26,235 +26,227 @@ + special exception, which will cause the skeleton and the resulting + Bison output files to be licensed under the GNU General Public + License without this special exception. +- ++ + This special exception was added by the Free Software Foundation in + version 2.2 of Bison. */ + +-#ifndef YY_YY_SRC_Y_TAB_H_INCLUDED +-# define YY_YY_SRC_Y_TAB_H_INCLUDED +-/* Debug traces. */ +-#ifndef YYDEBUG +-# define YYDEBUG 1 +-#endif +-#if YYDEBUG +-extern int yydebug; +-#endif + +-/* Token type. */ ++/* Tokens. */ + #ifndef YYTOKENTYPE + # define YYTOKENTYPE +- enum yytokentype +- { +- IF = 258, +- ELSE = 259, +- THEN = 260, +- OR = 261, +- FAILED = 262, +- SET = 263, +- LOGFILE = 264, +- FACILITY = 265, +- DAEMON = 266, +- SYSLOG = 267, +- MAILSERVER = 268, +- HTTPD = 269, +- ALLOW = 270, +- ADDRESS = 271, +- INIT = 272, +- READONLY = 273, +- CLEARTEXT = 274, +- MD5HASH = 275, +- SHA1HASH = 276, +- CRYPT = 277, +- DELAY = 278, +- PEMFILE = 279, +- ENABLE = 280, +- DISABLE = 281, +- HTTPDSSL = 282, +- CLIENTPEMFILE = 283, +- ALLOWSELFCERTIFICATION = 284, +- IDFILE = 285, +- STATEFILE = 286, +- SEND = 287, +- EXPECT = 288, +- EXPECTBUFFER = 289, +- CYCLE = 290, +- COUNT = 291, +- REMINDER = 292, +- PIDFILE = 293, +- START = 294, +- STOP = 295, +- PATHTOK = 296, +- HOST = 297, +- HOSTNAME = 298, +- PORT = 299, +- TYPE = 300, +- UDP = 301, +- TCP = 302, +- TCPSSL = 303, +- PROTOCOL = 304, +- CONNECTION = 305, +- ALERT = 306, +- NOALERT = 307, +- MAILFORMAT = 308, +- UNIXSOCKET = 309, +- SIGNATURE = 310, +- TIMEOUT = 311, +- RETRY = 312, +- RESTART = 313, +- CHECKSUM = 314, +- EVERY = 315, +- NOTEVERY = 316, +- DEFAULT = 317, +- HTTP = 318, +- HTTPS = 319, +- APACHESTATUS = 320, +- FTP = 321, +- SMTP = 322, +- SMTPS = 323, +- POP = 324, +- IMAP = 325, +- CLAMAV = 326, +- NNTP = 327, +- NTP3 = 328, +- MYSQL = 329, +- DNS = 330, +- WEBSOCKET = 331, +- SSH = 332, +- DWP = 333, +- LDAP2 = 334, +- LDAP3 = 335, +- RDATE = 336, +- RSYNC = 337, +- TNS = 338, +- PGSQL = 339, +- POSTFIXPOLICY = 340, +- SIP = 341, +- LMTP = 342, +- GPS = 343, +- RADIUS = 344, +- MEMCACHE = 345, +- STRING = 346, +- PATH = 347, +- MAILADDR = 348, +- MAILFROM = 349, +- MAILREPLYTO = 350, +- MAILSUBJECT = 351, +- MAILBODY = 352, +- SERVICENAME = 353, +- STRINGNAME = 354, +- NUMBER = 355, +- PERCENT = 356, +- LOGLIMIT = 357, +- CLOSELIMIT = 358, +- DNSLIMIT = 359, +- KEEPALIVELIMIT = 360, +- REPLYLIMIT = 361, +- REQUESTLIMIT = 362, +- STARTLIMIT = 363, +- WAITLIMIT = 364, +- GRACEFULLIMIT = 365, +- CLEANUPLIMIT = 366, +- REAL = 367, +- CHECKPROC = 368, +- CHECKFILESYS = 369, +- CHECKFILE = 370, +- CHECKDIR = 371, +- CHECKHOST = 372, +- CHECKSYSTEM = 373, +- CHECKFIFO = 374, +- CHECKPROGRAM = 375, +- CHILDREN = 376, +- SYSTEM = 377, +- STATUS = 378, +- ORIGIN = 379, +- VERSIONOPT = 380, +- RESOURCE = 381, +- MEMORY = 382, +- TOTALMEMORY = 383, +- LOADAVG1 = 384, +- LOADAVG5 = 385, +- LOADAVG15 = 386, +- SWAP = 387, +- MODE = 388, +- ACTIVE = 389, +- PASSIVE = 390, +- MANUAL = 391, +- CPU = 392, +- TOTALCPU = 393, +- CPUUSER = 394, +- CPUSYSTEM = 395, +- CPUWAIT = 396, +- GROUP = 397, +- REQUEST = 398, +- DEPENDS = 399, +- BASEDIR = 400, +- SLOT = 401, +- EVENTQUEUE = 402, +- SECRET = 403, +- HOSTHEADER = 404, +- UID = 405, +- EUID = 406, +- GID = 407, +- MMONIT = 408, +- INSTANCE = 409, +- USERNAME = 410, +- PASSWORD = 411, +- TIMESTAMP = 412, +- CHANGED = 413, +- SECOND = 414, +- MINUTE = 415, +- HOUR = 416, +- DAY = 417, +- SSLAUTO = 418, +- SSLV2 = 419, +- SSLV3 = 420, +- TLSV1 = 421, +- TLSV11 = 422, +- TLSV12 = 423, +- CERTMD5 = 424, +- BYTE = 425, +- KILOBYTE = 426, +- MEGABYTE = 427, +- GIGABYTE = 428, +- INODE = 429, +- SPACE = 430, +- PERMISSION = 431, +- SIZE = 432, +- MATCH = 433, +- NOT = 434, +- IGNORE = 435, +- ACTION = 436, +- UPTIME = 437, +- EXEC = 438, +- UNMONITOR = 439, +- PING = 440, +- ICMP = 441, +- ICMPECHO = 442, +- NONEXIST = 443, +- EXIST = 444, +- INVALID = 445, +- DATA = 446, +- RECOVERED = 447, +- PASSED = 448, +- SUCCEEDED = 449, +- URL = 450, +- CONTENT = 451, +- PID = 452, +- PPID = 453, +- FSFLAG = 454, +- REGISTER = 455, +- CREDENTIALS = 456, +- URLOBJECT = 457, +- TARGET = 458, +- TIMESPEC = 459, +- HTTPHEADER = 460, +- MAXFORWARD = 461, +- FIPS = 462, +- GREATER = 463, +- LESS = 464, +- EQUAL = 465, +- NOTEQUAL = 466 +- }; ++ /* Put the tokens into the symbol table, so that GDB and other debuggers ++ know about them. */ ++ enum yytokentype { ++ IF = 258, ++ ELSE = 259, ++ THEN = 260, ++ OR = 261, ++ FAILED = 262, ++ SET = 263, ++ LOGFILE = 264, ++ FACILITY = 265, ++ DAEMON = 266, ++ SYSLOG = 267, ++ MAILSERVER = 268, ++ HTTPD = 269, ++ ALLOW = 270, ++ ADDRESS = 271, ++ INIT = 272, ++ READONLY = 273, ++ CLEARTEXT = 274, ++ MD5HASH = 275, ++ SHA1HASH = 276, ++ CRYPT = 277, ++ DELAY = 278, ++ PEMFILE = 279, ++ ENABLE = 280, ++ DISABLE = 281, ++ HTTPDSSL = 282, ++ CLIENTPEMFILE = 283, ++ ALLOWSELFCERTIFICATION = 284, ++ IDFILE = 285, ++ STATEFILE = 286, ++ SEND = 287, ++ EXPECT = 288, ++ EXPECTBUFFER = 289, ++ CYCLE = 290, ++ COUNT = 291, ++ REMINDER = 292, ++ PIDFILE = 293, ++ START = 294, ++ STOP = 295, ++ PATHTOK = 296, ++ HOST = 297, ++ HOSTNAME = 298, ++ PORT = 299, ++ TYPE = 300, ++ UDP = 301, ++ TCP = 302, ++ TCPSSL = 303, ++ PROTOCOL = 304, ++ CONNECTION = 305, ++ ALERT = 306, ++ NOALERT = 307, ++ MAILFORMAT = 308, ++ UNIXSOCKET = 309, ++ SIGNATURE = 310, ++ TIMEOUT = 311, ++ RETRY = 312, ++ RESTART = 313, ++ CHECKSUM = 314, ++ EVERY = 315, ++ NOTEVERY = 316, ++ DEFAULT = 317, ++ HTTP = 318, ++ HTTPS = 319, ++ APACHESTATUS = 320, ++ FTP = 321, ++ SMTP = 322, ++ SMTPS = 323, ++ POP = 324, ++ IMAP = 325, ++ CLAMAV = 326, ++ NNTP = 327, ++ NTP3 = 328, ++ MYSQL = 329, ++ DNS = 330, ++ WEBSOCKET = 331, ++ SSH = 332, ++ DWP = 333, ++ LDAP2 = 334, ++ LDAP3 = 335, ++ RDATE = 336, ++ RSYNC = 337, ++ TNS = 338, ++ PGSQL = 339, ++ POSTFIXPOLICY = 340, ++ SIP = 341, ++ LMTP = 342, ++ GPS = 343, ++ RADIUS = 344, ++ MEMCACHE = 345, ++ STRING = 346, ++ PATH = 347, ++ MAILADDR = 348, ++ MAILFROM = 349, ++ MAILREPLYTO = 350, ++ MAILSUBJECT = 351, ++ MAILBODY = 352, ++ SERVICENAME = 353, ++ STRINGNAME = 354, ++ NUMBER = 355, ++ PERCENT = 356, ++ LOGLIMIT = 357, ++ CLOSELIMIT = 358, ++ DNSLIMIT = 359, ++ KEEPALIVELIMIT = 360, ++ REPLYLIMIT = 361, ++ REQUESTLIMIT = 362, ++ STARTLIMIT = 363, ++ WAITLIMIT = 364, ++ GRACEFULLIMIT = 365, ++ CLEANUPLIMIT = 366, ++ REAL = 367, ++ CHECKPROC = 368, ++ CHECKFILESYS = 369, ++ CHECKFILE = 370, ++ CHECKDIR = 371, ++ CHECKHOST = 372, ++ CHECKSYSTEM = 373, ++ CHECKFIFO = 374, ++ CHECKPROGRAM = 375, ++ CHILDREN = 376, ++ SYSTEM = 377, ++ STATUS = 378, ++ ORIGIN = 379, ++ VERSIONOPT = 380, ++ RESOURCE = 381, ++ MEMORY = 382, ++ TOTALMEMORY = 383, ++ LOADAVG1 = 384, ++ LOADAVG5 = 385, ++ LOADAVG15 = 386, ++ SWAP = 387, ++ MODE = 388, ++ ACTIVE = 389, ++ PASSIVE = 390, ++ MANUAL = 391, ++ CPU = 392, ++ TOTALCPU = 393, ++ CPUUSER = 394, ++ CPUSYSTEM = 395, ++ CPUWAIT = 396, ++ GROUP = 397, ++ REQUEST = 398, ++ DEPENDS = 399, ++ BASEDIR = 400, ++ SLOT = 401, ++ EVENTQUEUE = 402, ++ SECRET = 403, ++ HOSTHEADER = 404, ++ UID = 405, ++ EUID = 406, ++ GID = 407, ++ MMONIT = 408, ++ INSTANCE = 409, ++ USERNAME = 410, ++ PASSWORD = 411, ++ TIMESTAMP = 412, ++ CHANGED = 413, ++ SECOND = 414, ++ MINUTE = 415, ++ HOUR = 416, ++ DAY = 417, ++ SSLAUTO = 418, ++ SSLV2 = 419, ++ SSLV3 = 420, ++ TLSV1 = 421, ++ TLSV11 = 422, ++ TLSV12 = 423, ++ CERTMD5 = 424, ++ BYTE = 425, ++ KILOBYTE = 426, ++ MEGABYTE = 427, ++ GIGABYTE = 428, ++ INODE = 429, ++ SPACE = 430, ++ PERMISSION = 431, ++ SIZE = 432, ++ MATCH = 433, ++ NOT = 434, ++ IGNORE = 435, ++ ACTION = 436, ++ UPTIME = 437, ++ EXEC = 438, ++ UNMONITOR = 439, ++ PING = 440, ++ ICMP = 441, ++ ICMPECHO = 442, ++ NONEXIST = 443, ++ EXIST = 444, ++ INVALID = 445, ++ DATA = 446, ++ RECOVERED = 447, ++ PASSED = 448, ++ SUCCEEDED = 449, ++ URL = 450, ++ CONTENT = 451, ++ PID = 452, ++ PPID = 453, ++ FSFLAG = 454, ++ REGISTER = 455, ++ CREDENTIALS = 456, ++ URLOBJECT = 457, ++ TARGET = 458, ++ TIMESPEC = 459, ++ HTTPHEADER = 460, ++ MAXFORWARD = 461, ++ FIPS = 462, ++ NOTEQUAL = 463, ++ EQUAL = 464, ++ LESS = 465, ++ GREATER = 466 ++ }; + #endif + /* Tokens. */ + #define IF 258 +@@ -462,32 +454,36 @@ + #define HTTPHEADER 460 + #define MAXFORWARD 461 + #define FIPS 462 +-#define GREATER 463 +-#define LESS 464 +-#define EQUAL 465 +-#define NOTEQUAL 466 ++#define NOTEQUAL 463 ++#define EQUAL 464 ++#define LESS 465 ++#define GREATER 466 ++ ++ ++ + +-/* Value type. */ + #if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED +-typedef union YYSTYPE YYSTYPE; +-union YYSTYPE ++typedef union YYSTYPE + { +-#line 260 "src/p.y" /* yacc.c:1909 */ ++ ++/* Line 2068 of yacc.c */ ++#line 260 "src/p.y" + + URL_T url; + float real; + int number; + char *string; + +-#line 483 "src/y.tab.h" /* yacc.c:1909 */ +-}; ++ ++ ++/* Line 2068 of yacc.c */ ++#line 481 "src/y.tab.h" ++} YYSTYPE; + # define YYSTYPE_IS_TRIVIAL 1 ++# define yystype YYSTYPE /* obsolescent; will be withdrawn */ + # define YYSTYPE_IS_DECLARED 1 + #endif + +- + extern YYSTYPE yylval; + +-int yyparse (void); + +-#endif /* !YY_YY_SRC_Y_TAB_H_INCLUDED */ +--- a/src/y.tab.c ++++ b/src/y.tab.c +@@ -1,20 +1,20 @@ + #include <config.h> +-/* A Bison parser, made by GNU Bison 3.0.2. */ ++/* A Bison parser, made by GNU Bison 2.5. */ + + /* Bison implementation for Yacc-like parsers in C +- +- Copyright (C) 1984, 1989-1990, 2000-2013 Free Software Foundation, Inc. +- ++ ++ Copyright (C) 1984, 1989-1990, 2000-2011 Free Software Foundation, Inc. ++ + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. +- ++ + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. +- ++ + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. */ + +@@ -27,7 +27,7 @@ + special exception, which will cause the skeleton and the resulting + Bison output files to be licensed under the GNU General Public + License without this special exception. +- ++ + This special exception was added by the Free Software Foundation in + version 2.2 of Bison. */ + +@@ -45,7 +45,7 @@ + #define YYBISON 1 + + /* Bison version. */ +-#define YYBISON_VERSION "3.0.2" ++#define YYBISON_VERSION "2.5" + + /* Skeleton name. */ + #define YYSKELETON_NAME "yacc.c" +@@ -59,11 +59,15 @@ + /* Pull parsers. */ + #define YYPULL 1 + ++/* Using locations. */ ++#define YYLSP_NEEDED 0 + + + + /* Copy the first part of user declarations. */ +-#line 26 "src/p.y" /* yacc.c:339 */ ++ ++/* Line 268 of yacc.c */ ++#line 26 "src/p.y" + + + /* +@@ -297,15 +301,14 @@ + static int verifyMaxForward(int); + + +-#line 300 "src/y.tab.c" /* yacc.c:339 */ + +-# ifndef YY_NULLPTR +-# if defined __cplusplus && 201103L <= __cplusplus +-# define YY_NULLPTR nullptr +-# else +-# define YY_NULLPTR 0 +-# endif +-# endif ++/* Line 268 of yacc.c */ ++#line 306 "src/y.tab.c" ++ ++/* Enabling traces. */ ++#ifndef YYDEBUG ++# define YYDEBUG 1 ++#endif + + /* Enabling verbose error messages. */ + #ifdef YYERROR_VERBOSE +@@ -315,233 +318,228 @@ + # define YYERROR_VERBOSE 0 + #endif + +-/* In a future release of Bison, this section will be replaced +- by #include "y.tab.h". */ +-#ifndef YY_YY_SRC_Y_TAB_H_INCLUDED +-# define YY_YY_SRC_Y_TAB_H_INCLUDED +-/* Debug traces. */ +-#ifndef YYDEBUG +-# define YYDEBUG 1 +-#endif +-#if YYDEBUG +-extern int yydebug; ++/* Enabling the token table. */ ++#ifndef YYTOKEN_TABLE ++# define YYTOKEN_TABLE 0 + #endif + +-/* Token type. */ ++ ++/* Tokens. */ + #ifndef YYTOKENTYPE + # define YYTOKENTYPE +- enum yytokentype +- { +- IF = 258, +- ELSE = 259, +- THEN = 260, +- OR = 261, +- FAILED = 262, +- SET = 263, +- LOGFILE = 264, +- FACILITY = 265, +- DAEMON = 266, +- SYSLOG = 267, +- MAILSERVER = 268, +- HTTPD = 269, +- ALLOW = 270, +- ADDRESS = 271, +- INIT = 272, +- READONLY = 273, +- CLEARTEXT = 274, +- MD5HASH = 275, +- SHA1HASH = 276, +- CRYPT = 277, +- DELAY = 278, +- PEMFILE = 279, +- ENABLE = 280, +- DISABLE = 281, +- HTTPDSSL = 282, +- CLIENTPEMFILE = 283, +- ALLOWSELFCERTIFICATION = 284, +- IDFILE = 285, +- STATEFILE = 286, +- SEND = 287, +- EXPECT = 288, +- EXPECTBUFFER = 289, +- CYCLE = 290, +- COUNT = 291, +- REMINDER = 292, +- PIDFILE = 293, +- START = 294, +- STOP = 295, +- PATHTOK = 296, +- HOST = 297, +- HOSTNAME = 298, +- PORT = 299, +- TYPE = 300, +- UDP = 301, +- TCP = 302, +- TCPSSL = 303, +- PROTOCOL = 304, +- CONNECTION = 305, +- ALERT = 306, +- NOALERT = 307, +- MAILFORMAT = 308, +- UNIXSOCKET = 309, +- SIGNATURE = 310, +- TIMEOUT = 311, +- RETRY = 312, +- RESTART = 313, +- CHECKSUM = 314, +- EVERY = 315, +- NOTEVERY = 316, +- DEFAULT = 317, +- HTTP = 318, +- HTTPS = 319, +- APACHESTATUS = 320, +- FTP = 321, +- SMTP = 322, +- SMTPS = 323, +- POP = 324, +- IMAP = 325, +- CLAMAV = 326, +- NNTP = 327, +- NTP3 = 328, +- MYSQL = 329, +- DNS = 330, +- WEBSOCKET = 331, +- SSH = 332, +- DWP = 333, +- LDAP2 = 334, +- LDAP3 = 335, +- RDATE = 336, +- RSYNC = 337, +- TNS = 338, +- PGSQL = 339, +- POSTFIXPOLICY = 340, +- SIP = 341, +- LMTP = 342, +- GPS = 343, +- RADIUS = 344, +- MEMCACHE = 345, +- STRING = 346, +- PATH = 347, +- MAILADDR = 348, +- MAILFROM = 349, +- MAILREPLYTO = 350, +- MAILSUBJECT = 351, +- MAILBODY = 352, +- SERVICENAME = 353, +- STRINGNAME = 354, +- NUMBER = 355, +- PERCENT = 356, +- LOGLIMIT = 357, +- CLOSELIMIT = 358, +- DNSLIMIT = 359, +- KEEPALIVELIMIT = 360, +- REPLYLIMIT = 361, +- REQUESTLIMIT = 362, +- STARTLIMIT = 363, +- WAITLIMIT = 364, +- GRACEFULLIMIT = 365, +- CLEANUPLIMIT = 366, +- REAL = 367, +- CHECKPROC = 368, +- CHECKFILESYS = 369, +- CHECKFILE = 370, +- CHECKDIR = 371, +- CHECKHOST = 372, +- CHECKSYSTEM = 373, +- CHECKFIFO = 374, +- CHECKPROGRAM = 375, +- CHILDREN = 376, +- SYSTEM = 377, +- STATUS = 378, +- ORIGIN = 379, +- VERSIONOPT = 380, +- RESOURCE = 381, +- MEMORY = 382, +- TOTALMEMORY = 383, +- LOADAVG1 = 384, +- LOADAVG5 = 385, +- LOADAVG15 = 386, +- SWAP = 387, +- MODE = 388, +- ACTIVE = 389, +- PASSIVE = 390, +- MANUAL = 391, +- CPU = 392, +- TOTALCPU = 393, +- CPUUSER = 394, +- CPUSYSTEM = 395, +- CPUWAIT = 396, +- GROUP = 397, +- REQUEST = 398, +- DEPENDS = 399, +- BASEDIR = 400, +- SLOT = 401, +- EVENTQUEUE = 402, +- SECRET = 403, +- HOSTHEADER = 404, +- UID = 405, +- EUID = 406, +- GID = 407, +- MMONIT = 408, +- INSTANCE = 409, +- USERNAME = 410, +- PASSWORD = 411, +- TIMESTAMP = 412, +- CHANGED = 413, +- SECOND = 414, +- MINUTE = 415, +- HOUR = 416, +- DAY = 417, +- SSLAUTO = 418, +- SSLV2 = 419, +- SSLV3 = 420, +- TLSV1 = 421, +- TLSV11 = 422, +- TLSV12 = 423, +- CERTMD5 = 424, +- BYTE = 425, +- KILOBYTE = 426, +- MEGABYTE = 427, +- GIGABYTE = 428, +- INODE = 429, +- SPACE = 430, +- PERMISSION = 431, +- SIZE = 432, +- MATCH = 433, +- NOT = 434, +- IGNORE = 435, +- ACTION = 436, +- UPTIME = 437, +- EXEC = 438, +- UNMONITOR = 439, +- PING = 440, +- ICMP = 441, +- ICMPECHO = 442, +- NONEXIST = 443, +- EXIST = 444, +- INVALID = 445, +- DATA = 446, +- RECOVERED = 447, +- PASSED = 448, +- SUCCEEDED = 449, +- URL = 450, +- CONTENT = 451, +- PID = 452, +- PPID = 453, +- FSFLAG = 454, +- REGISTER = 455, +- CREDENTIALS = 456, +- URLOBJECT = 457, +- TARGET = 458, +- TIMESPEC = 459, +- HTTPHEADER = 460, +- MAXFORWARD = 461, +- FIPS = 462, +- GREATER = 463, +- LESS = 464, +- EQUAL = 465, +- NOTEQUAL = 466 +- }; ++ /* Put the tokens into the symbol table, so that GDB and other debuggers ++ know about them. */ ++ enum yytokentype { ++ IF = 258, ++ ELSE = 259, ++ THEN = 260, ++ OR = 261, ++ FAILED = 262, ++ SET = 263, ++ LOGFILE = 264, ++ FACILITY = 265, ++ DAEMON = 266, ++ SYSLOG = 267, ++ MAILSERVER = 268, ++ HTTPD = 269, ++ ALLOW = 270, ++ ADDRESS = 271, ++ INIT = 272, ++ READONLY = 273, ++ CLEARTEXT = 274, ++ MD5HASH = 275, ++ SHA1HASH = 276, ++ CRYPT = 277, ++ DELAY = 278, ++ PEMFILE = 279, ++ ENABLE = 280, ++ DISABLE = 281, ++ HTTPDSSL = 282, ++ CLIENTPEMFILE = 283, ++ ALLOWSELFCERTIFICATION = 284, ++ IDFILE = 285, ++ STATEFILE = 286, ++ SEND = 287, ++ EXPECT = 288, ++ EXPECTBUFFER = 289, ++ CYCLE = 290, ++ COUNT = 291, ++ REMINDER = 292, ++ PIDFILE = 293, ++ START = 294, ++ STOP = 295, ++ PATHTOK = 296, ++ HOST = 297, ++ HOSTNAME = 298, ++ PORT = 299, ++ TYPE = 300, ++ UDP = 301, ++ TCP = 302, ++ TCPSSL = 303, ++ PROTOCOL = 304, ++ CONNECTION = 305, ++ ALERT = 306, ++ NOALERT = 307, ++ MAILFORMAT = 308, ++ UNIXSOCKET = 309, ++ SIGNATURE = 310, ++ TIMEOUT = 311, ++ RETRY = 312, ++ RESTART = 313, ++ CHECKSUM = 314, ++ EVERY = 315, ++ NOTEVERY = 316, ++ DEFAULT = 317, ++ HTTP = 318, ++ HTTPS = 319, ++ APACHESTATUS = 320, ++ FTP = 321, ++ SMTP = 322, ++ SMTPS = 323, ++ POP = 324, ++ IMAP = 325, ++ CLAMAV = 326, ++ NNTP = 327, ++ NTP3 = 328, ++ MYSQL = 329, ++ DNS = 330, ++ WEBSOCKET = 331, ++ SSH = 332, ++ DWP = 333, ++ LDAP2 = 334, ++ LDAP3 = 335, ++ RDATE = 336, ++ RSYNC = 337, ++ TNS = 338, ++ PGSQL = 339, ++ POSTFIXPOLICY = 340, ++ SIP = 341, ++ LMTP = 342, ++ GPS = 343, ++ RADIUS = 344, ++ MEMCACHE = 345, ++ STRING = 346, ++ PATH = 347, ++ MAILADDR = 348, ++ MAILFROM = 349, ++ MAILREPLYTO = 350, ++ MAILSUBJECT = 351, ++ MAILBODY = 352, ++ SERVICENAME = 353, ++ STRINGNAME = 354, ++ NUMBER = 355, ++ PERCENT = 356, ++ LOGLIMIT = 357, ++ CLOSELIMIT = 358, ++ DNSLIMIT = 359, ++ KEEPALIVELIMIT = 360, ++ REPLYLIMIT = 361, ++ REQUESTLIMIT = 362, ++ STARTLIMIT = 363, ++ WAITLIMIT = 364, ++ GRACEFULLIMIT = 365, ++ CLEANUPLIMIT = 366, ++ REAL = 367, ++ CHECKPROC = 368, ++ CHECKFILESYS = 369, ++ CHECKFILE = 370, ++ CHECKDIR = 371, ++ CHECKHOST = 372, ++ CHECKSYSTEM = 373, ++ CHECKFIFO = 374, ++ CHECKPROGRAM = 375, ++ CHILDREN = 376, ++ SYSTEM = 377, ++ STATUS = 378, ++ ORIGIN = 379, ++ VERSIONOPT = 380, ++ RESOURCE = 381, ++ MEMORY = 382, ++ TOTALMEMORY = 383, ++ LOADAVG1 = 384, ++ LOADAVG5 = 385, ++ LOADAVG15 = 386, ++ SWAP = 387, ++ MODE = 388, ++ ACTIVE = 389, ++ PASSIVE = 390, ++ MANUAL = 391, ++ CPU = 392, ++ TOTALCPU = 393, ++ CPUUSER = 394, ++ CPUSYSTEM = 395, ++ CPUWAIT = 396, ++ GROUP = 397, ++ REQUEST = 398, ++ DEPENDS = 399, ++ BASEDIR = 400, ++ SLOT = 401, ++ EVENTQUEUE = 402, ++ SECRET = 403, ++ HOSTHEADER = 404, ++ UID = 405, ++ EUID = 406, ++ GID = 407, ++ MMONIT = 408, ++ INSTANCE = 409, ++ USERNAME = 410, ++ PASSWORD = 411, ++ TIMESTAMP = 412, ++ CHANGED = 413, ++ SECOND = 414, ++ MINUTE = 415, ++ HOUR = 416, ++ DAY = 417, ++ SSLAUTO = 418, ++ SSLV2 = 419, ++ SSLV3 = 420, ++ TLSV1 = 421, ++ TLSV11 = 422, ++ TLSV12 = 423, ++ CERTMD5 = 424, ++ BYTE = 425, ++ KILOBYTE = 426, ++ MEGABYTE = 427, ++ GIGABYTE = 428, ++ INODE = 429, ++ SPACE = 430, ++ PERMISSION = 431, ++ SIZE = 432, ++ MATCH = 433, ++ NOT = 434, ++ IGNORE = 435, ++ ACTION = 436, ++ UPTIME = 437, ++ EXEC = 438, ++ UNMONITOR = 439, ++ PING = 440, ++ ICMP = 441, ++ ICMPECHO = 442, ++ NONEXIST = 443, ++ EXIST = 444, ++ INVALID = 445, ++ DATA = 446, ++ RECOVERED = 447, ++ PASSED = 448, ++ SUCCEEDED = 449, ++ URL = 450, ++ CONTENT = 451, ++ PID = 452, ++ PPID = 453, ++ FSFLAG = 454, ++ REGISTER = 455, ++ CREDENTIALS = 456, ++ URLOBJECT = 457, ++ TARGET = 458, ++ TIMESPEC = 459, ++ HTTPHEADER = 460, ++ MAXFORWARD = 461, ++ FIPS = 462, ++ NOTEQUAL = 463, ++ EQUAL = 464, ++ LESS = 465, ++ GREATER = 466 ++ }; + #endif + /* Tokens. */ + #define IF 258 +@@ -749,39 +747,42 @@ + #define HTTPHEADER 460 + #define MAXFORWARD 461 + #define FIPS 462 +-#define GREATER 463 +-#define LESS 464 +-#define EQUAL 465 +-#define NOTEQUAL 466 ++#define NOTEQUAL 463 ++#define EQUAL 464 ++#define LESS 465 ++#define GREATER 466 ++ ++ ++ + +-/* Value type. */ + #if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED +-typedef union YYSTYPE YYSTYPE; +-union YYSTYPE ++typedef union YYSTYPE + { +-#line 260 "src/p.y" /* yacc.c:355 */ ++ ++/* Line 293 of yacc.c */ ++#line 260 "src/p.y" + + URL_T url; + float real; + int number; + char *string; + +-#line 769 "src/y.tab.c" /* yacc.c:355 */ +-}; ++ ++ ++/* Line 293 of yacc.c */ ++#line 773 "src/y.tab.c" ++} YYSTYPE; + # define YYSTYPE_IS_TRIVIAL 1 ++# define yystype YYSTYPE /* obsolescent; will be withdrawn */ + # define YYSTYPE_IS_DECLARED 1 + #endif + + +-extern YYSTYPE yylval; +- +-int yyparse (void); +- +-#endif /* !YY_YY_SRC_Y_TAB_H_INCLUDED */ +- + /* Copy the second part of user declarations. */ + +-#line 784 "src/y.tab.c" /* yacc.c:358 */ ++ ++/* Line 343 of yacc.c */ ++#line 785 "src/y.tab.c" + + #ifdef short + # undef short +@@ -795,8 +796,11 @@ + + #ifdef YYTYPE_INT8 + typedef YYTYPE_INT8 yytype_int8; +-#else ++#elif (defined __STDC__ || defined __C99__FUNC__ \ ++ || defined __cplusplus || defined _MSC_VER) + typedef signed char yytype_int8; ++#else ++typedef short int yytype_int8; + #endif + + #ifdef YYTYPE_UINT16 +@@ -816,7 +820,8 @@ + # define YYSIZE_T __SIZE_TYPE__ + # elif defined size_t + # define YYSIZE_T size_t +-# elif ! defined YYSIZE_T ++# elif ! defined YYSIZE_T && (defined __STDC__ || defined __C99__FUNC__ \ ++ || defined __cplusplus || defined _MSC_VER) + # include <stddef.h> /* INFRINGES ON USER NAME SPACE */ + # define YYSIZE_T size_t + # else +@@ -830,68 +835,39 @@ + # if defined YYENABLE_NLS && YYENABLE_NLS + # if ENABLE_NLS + # include <libintl.h> /* INFRINGES ON USER NAME SPACE */ +-# define YY_(Msgid) dgettext ("bison-runtime", Msgid) ++# define YY_(msgid) dgettext ("bison-runtime", msgid) + # endif + # endif + # ifndef YY_ +-# define YY_(Msgid) Msgid +-# endif +-#endif +- +-#ifndef YY_ATTRIBUTE +-# if (defined __GNUC__ \ +- && (2 < __GNUC__ || (__GNUC__ == 2 && 96 <= __GNUC_MINOR__))) \ +- || defined __SUNPRO_C && 0x5110 <= __SUNPRO_C +-# define YY_ATTRIBUTE(Spec) __attribute__(Spec) +-# else +-# define YY_ATTRIBUTE(Spec) /* empty */ +-# endif +-#endif +- +-#ifndef YY_ATTRIBUTE_PURE +-# define YY_ATTRIBUTE_PURE YY_ATTRIBUTE ((__pure__)) +-#endif +- +-#ifndef YY_ATTRIBUTE_UNUSED +-# define YY_ATTRIBUTE_UNUSED YY_ATTRIBUTE ((__unused__)) +-#endif +- +-#if !defined _Noreturn \ +- && (!defined __STDC_VERSION__ || __STDC_VERSION__ < 201112) +-# if defined _MSC_VER && 1200 <= _MSC_VER +-# define _Noreturn __declspec (noreturn) +-# else +-# define _Noreturn YY_ATTRIBUTE ((__noreturn__)) ++# define YY_(msgid) msgid + # endif + #endif + + /* Suppress unused-variable warnings by "using" E. */ + #if ! defined lint || defined __GNUC__ +-# define YYUSE(E) ((void) (E)) ++# define YYUSE(e) ((void) (e)) + #else +-# define YYUSE(E) /* empty */ ++# define YYUSE(e) /* empty */ + #endif + +-#if defined __GNUC__ && 407 <= __GNUC__ * 100 + __GNUC_MINOR__ +-/* Suppress an incorrect diagnostic about yylval being uninitialized. */ +-# define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN \ +- _Pragma ("GCC diagnostic push") \ +- _Pragma ("GCC diagnostic ignored \"-Wuninitialized\"")\ +- _Pragma ("GCC diagnostic ignored \"-Wmaybe-uninitialized\"") +-# define YY_IGNORE_MAYBE_UNINITIALIZED_END \ +- _Pragma ("GCC diagnostic pop") ++/* Identity function, used to suppress warnings about constant conditions. */ ++#ifndef lint ++# define YYID(n) (n) + #else +-# define YY_INITIAL_VALUE(Value) Value +-#endif +-#ifndef YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN +-# define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN +-# define YY_IGNORE_MAYBE_UNINITIALIZED_END ++#if (defined __STDC__ || defined __C99__FUNC__ \ ++ || defined __cplusplus || defined _MSC_VER) ++static int ++YYID (int yyi) ++#else ++static int ++YYID (yyi) ++ int yyi; + #endif +-#ifndef YY_INITIAL_VALUE +-# define YY_INITIAL_VALUE(Value) /* Nothing. */ ++{ ++ return yyi; ++} + #endif + +- + #if ! defined yyoverflow || YYERROR_VERBOSE + + /* The parser invokes alloca or malloc; define the necessary symbols. */ +@@ -909,9 +885,9 @@ + # define alloca _alloca + # else + # define YYSTACK_ALLOC alloca +-# if ! defined _ALLOCA_H && ! defined EXIT_SUCCESS ++# if ! defined _ALLOCA_H && ! defined EXIT_SUCCESS && (defined __STDC__ || defined __C99__FUNC__ \ ++ || defined __cplusplus || defined _MSC_VER) + # include <stdlib.h> /* INFRINGES ON USER NAME SPACE */ +- /* Use EXIT_SUCCESS as a witness for stdlib.h. */ + # ifndef EXIT_SUCCESS + # define EXIT_SUCCESS 0 + # endif +@@ -921,8 +897,8 @@ + # endif + + # ifdef YYSTACK_ALLOC +- /* Pacify GCC's 'empty if-body' warning. */ +-# define YYSTACK_FREE(Ptr) do { /* empty */; } while (0) ++ /* Pacify GCC's `empty if-body' warning. */ ++# define YYSTACK_FREE(Ptr) do { /* empty */; } while (YYID (0)) + # ifndef YYSTACK_ALLOC_MAXIMUM + /* The OS might guarantee only one guard page at the bottom of the stack, + and a page size can be as small as 4096 bytes. So we cannot safely +@@ -938,7 +914,7 @@ + # endif + # if (defined __cplusplus && ! defined EXIT_SUCCESS \ + && ! ((defined YYMALLOC || defined malloc) \ +- && (defined YYFREE || defined free))) ++ && (defined YYFREE || defined free))) + # include <stdlib.h> /* INFRINGES ON USER NAME SPACE */ + # ifndef EXIT_SUCCESS + # define EXIT_SUCCESS 0 +@@ -946,13 +922,15 @@ + # endif + # ifndef YYMALLOC + # define YYMALLOC malloc +-# if ! defined malloc && ! defined EXIT_SUCCESS ++# if ! defined malloc && ! defined EXIT_SUCCESS && (defined __STDC__ || defined __C99__FUNC__ \ ++ || defined __cplusplus || defined _MSC_VER) + void *malloc (YYSIZE_T); /* INFRINGES ON USER NAME SPACE */ + # endif + # endif + # ifndef YYFREE + # define YYFREE free +-# if ! defined free && ! defined EXIT_SUCCESS ++# if ! defined free && ! defined EXIT_SUCCESS && (defined __STDC__ || defined __C99__FUNC__ \ ++ || defined __cplusplus || defined _MSC_VER) + void free (void *); /* INFRINGES ON USER NAME SPACE */ + # endif + # endif +@@ -962,7 +940,7 @@ + + #if (! defined yyoverflow \ + && (! defined __cplusplus \ +- || (defined YYSTYPE_IS_TRIVIAL && YYSTYPE_IS_TRIVIAL))) ++ || (defined YYSTYPE_IS_TRIVIAL && YYSTYPE_IS_TRIVIAL))) + + /* A type that is properly aligned for any stack member. */ + union yyalloc +@@ -987,35 +965,35 @@ + elements in the stack, and YYPTR gives the new location of the + stack. Advance YYPTR to a properly aligned location for the next + stack. */ +-# define YYSTACK_RELOCATE(Stack_alloc, Stack) \ +- do \ +- { \ +- YYSIZE_T yynewbytes; \ +- YYCOPY (&yyptr->Stack_alloc, Stack, yysize); \ +- Stack = &yyptr->Stack_alloc; \ +- yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAXIMUM; \ +- yyptr += yynewbytes / sizeof (*yyptr); \ +- } \ +- while (0) ++# define YYSTACK_RELOCATE(Stack_alloc, Stack) \ ++ do \ ++ { \ ++ YYSIZE_T yynewbytes; \ ++ YYCOPY (&yyptr->Stack_alloc, Stack, yysize); \ ++ Stack = &yyptr->Stack_alloc; \ ++ yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAXIMUM; \ ++ yyptr += yynewbytes / sizeof (*yyptr); \ ++ } \ ++ while (YYID (0)) + + #endif + + #if defined YYCOPY_NEEDED && YYCOPY_NEEDED +-/* Copy COUNT objects from SRC to DST. The source and destination do ++/* Copy COUNT objects from FROM to TO. The source and destination do + not overlap. */ + # ifndef YYCOPY + # if defined __GNUC__ && 1 < __GNUC__ +-# define YYCOPY(Dst, Src, Count) \ +- __builtin_memcpy (Dst, Src, (Count) * sizeof (*(Src))) ++# define YYCOPY(To, From, Count) \ ++ __builtin_memcpy (To, From, (Count) * sizeof (*(From))) + # else +-# define YYCOPY(Dst, Src, Count) \ +- do \ +- { \ +- YYSIZE_T yyi; \ +- for (yyi = 0; yyi < (Count); yyi++) \ +- (Dst)[yyi] = (Src)[yyi]; \ +- } \ +- while (0) ++# define YYCOPY(To, From, Count) \ ++ do \ ++ { \ ++ YYSIZE_T yyi; \ ++ for (yyi = 0; yyi < (Count); yyi++) \ ++ (To)[yyi] = (From)[yyi]; \ ++ } \ ++ while (YYID (0)) + # endif + # endif + #endif /* !YYCOPY_NEEDED */ +@@ -1031,19 +1009,17 @@ + #define YYNNTS 172 + /* YYNRULES -- Number of rules. */ + #define YYNRULES 533 +-/* YYNSTATES -- Number of states. */ ++/* YYNRULES -- Number of states. */ + #define YYNSTATES 946 + +-/* YYTRANSLATE[YYX] -- Symbol number corresponding to YYX as returned +- by yylex, with out-of-bounds checking. */ ++/* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX. */ + #define YYUNDEFTOK 2 + #define YYMAXUTOK 466 + +-#define YYTRANSLATE(YYX) \ ++#define YYTRANSLATE(YYX) \ + ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK) + +-/* YYTRANSLATE[TOKEN-NUM] -- Symbol number corresponding to TOKEN-NUM +- as returned by yylex, without out-of-bounds checking. */ ++/* YYTRANSLATE[YYLEX] -- Bison symbol number corresponding to YYLEX. */ + static const yytype_uint8 yytranslate[] = + { + 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, +@@ -1096,7 +1072,241 @@ + }; + + #if YYDEBUG +- /* YYRLINE[YYN] -- Source line where rule number YYN was defined. */ ++/* YYPRHS[YYN] -- Index of the first RHS symbol of rule number YYN in ++ YYRHS. */ ++static const yytype_uint16 yyprhs[] = ++{ ++ 0, 0, 3, 4, 6, 8, 11, 13, 15, 17, ++ 19, 21, 23, 25, 27, 29, 31, 33, 35, 37, ++ 39, 42, 45, 48, 51, 54, 57, 60, 63, 64, ++ 67, 69, 71, 73, 75, 77, 79, 81, 83, 85, ++ 87, 89, 91, 93, 95, 97, 99, 101, 103, 105, ++ 106, 109, 111, 113, 115, 117, 119, 121, 123, 125, ++ 127, 129, 131, 133, 135, 137, 139, 141, 143, 144, ++ 147, 149, 151, 153, 155, 157, 159, 161, 163, 165, ++ 167, 169, 171, 173, 175, 177, 179, 180, 183, 185, ++ 187, 189, 191, 193, 195, 197, 199, 201, 203, 205, ++ 207, 209, 211, 213, 216, 218, 220, 222, 224, 226, ++ 228, 230, 232, 234, 236, 238, 240, 241, 244, 246, ++ 248, 250, 252, 254, 256, 258, 260, 262, 263, 266, ++ 268, 270, 272, 274, 276, 278, 280, 282, 284, 286, ++ 288, 290, 292, 294, 295, 298, 300, 302, 304, 306, ++ 308, 310, 312, 314, 316, 318, 323, 331, 340, 345, ++ 346, 350, 355, 358, 361, 365, 369, 375, 380, 387, ++ 392, 396, 400, 404, 408, 411, 415, 420, 421, 424, ++ 430, 436, 442, 444, 447, 453, 461, 462, 465, 467, ++ 469, 471, 473, 476, 479, 480, 483, 485, 487, 489, ++ 492, 495, 498, 501, 503, 505, 508, 511, 514, 517, ++ 520, 523, 526, 528, 534, 539, 542, 546, 550, 554, ++ 555, 560, 561, 567, 568, 574, 575, 581, 584, 586, ++ 589, 591, 592, 594, 599, 604, 609, 614, 619, 624, ++ 629, 634, 639, 642, 647, 653, 660, 664, 669, 673, ++ 678, 682, 687, 689, 692, 694, 697, 699, 701, 704, ++ 707, 710, 713, 714, 717, 720, 721, 724, 725, 728, ++ 742, 754, 766, 777, 787, 788, 791, 794, 797, 798, ++ 801, 806, 809, 810, 813, 814, 816, 818, 820, 822, ++ 824, 826, 827, 831, 834, 837, 840, 843, 847, 851, ++ 854, 857, 860, 863, 866, 871, 874, 877, 880, 883, ++ 886, 889, 892, 895, 898, 901, 904, 907, 910, 914, ++ 917, 921, 923, 925, 928, 931, 934, 936, 939, 942, ++ 945, 948, 951, 952, 955, 958, 959, 962, 963, 966, ++ 968, 970, 972, 974, 978, 982, 985, 988, 991, 992, ++ 995, 998, 1000, 1004, 1009, 1014, 1019, 1024, 1029, 1034, ++ 1039, 1044, 1049, 1054, 1062, 1069, 1076, 1086, 1087, 1090, ++ 1091, 1095, 1096, 1100, 1101, 1105, 1106, 1109, 1117, 1125, ++ 1126, 1130, 1132, 1134, 1138, 1145, 1153, 1155, 1158, 1161, ++ 1163, 1166, 1168, 1170, 1172, 1174, 1176, 1178, 1180, 1182, ++ 1184, 1186, 1188, 1190, 1192, 1194, 1196, 1198, 1200, 1202, ++ 1204, 1206, 1208, 1210, 1211, 1216, 1218, 1221, 1223, 1225, ++ 1227, 1229, 1233, 1236, 1239, 1242, 1245, 1248, 1251, 1254, ++ 1256, 1259, 1261, 1270, 1277, 1284, 1286, 1289, 1291, 1293, ++ 1295, 1297, 1304, 1306, 1309, 1311, 1313, 1315, 1317, 1322, ++ 1327, 1332, 1334, 1336, 1338, 1343, 1348, 1353, 1358, 1363, ++ 1368, 1372, 1376, 1378, 1380, 1382, 1384, 1386, 1396, 1403, ++ 1404, 1406, 1408, 1410, 1412, 1414, 1415, 1417, 1419, 1421, ++ 1423, 1425, 1428, 1432, 1434, 1436, 1438, 1440, 1442, 1444, ++ 1445, 1448, 1452, 1453, 1456, 1460, 1461, 1468, 1475, 1482, ++ 1491, 1502, 1510, 1511, 1513, 1515, 1524, 1534, 1544, 1554, ++ 1561, 1562, 1564, 1566, 1568, 1570, 1579, 1587, 1595, 1600, ++ 1605, 1606, 1608, 1618, 1625, 1634, 1643, 1652, 1661, 1670, ++ 1679, 1682, 1683, 1686 ++}; ++ ++/* YYRHS -- A `-1'-separated list of the rules' RHS. */ ++static const yytype_int16 yyrhs[] = ++{ ++ 219, 0, -1, -1, 220, -1, 221, -1, 220, 221, ++ -1, 238, -1, 239, -1, 244, -1, 245, -1, 249, ++ -1, 253, -1, 254, -1, 255, -1, 248, -1, 246, ++ -1, 247, -1, 241, -1, 242, -1, 243, -1, 280, ++ 222, -1, 281, 224, -1, 282, 226, -1, 283, 228, ++ -1, 284, 230, -1, 285, 232, -1, 286, 234, -1, ++ 287, 236, -1, -1, 222, 223, -1, 288, -1, 289, ++ -1, 290, -1, 324, -1, 325, -1, 326, -1, 385, ++ -1, 386, -1, 387, -1, 327, -1, 298, -1, 299, ++ -1, 333, -1, 336, -1, 344, -1, 345, -1, 346, ++ -1, 347, -1, 351, -1, -1, 224, 225, -1, 288, ++ -1, 289, -1, 290, -1, 324, -1, 366, -1, 333, ++ -1, 344, -1, 336, -1, 381, -1, 385, -1, 387, ++ -1, 375, -1, 384, -1, 382, -1, 345, -1, 346, ++ -1, 347, -1, -1, 226, 227, -1, 288, -1, 289, ++ -1, 290, -1, 324, -1, 333, -1, 344, -1, 336, ++ -1, 381, -1, 385, -1, 387, -1, 345, -1, 346, ++ -1, 347, -1, 377, -1, 378, -1, 379, -1, -1, ++ 228, 229, -1, 288, -1, 289, -1, 290, -1, 324, ++ -1, 366, -1, 333, -1, 344, -1, 336, -1, 381, ++ -1, 385, -1, 387, -1, 345, -1, 346, -1, 347, ++ -1, 231, -1, 230, 231, -1, 288, -1, 289, -1, ++ 290, -1, 324, -1, 298, -1, 300, -1, 333, -1, ++ 336, -1, 344, -1, 345, -1, 346, -1, 347, -1, ++ -1, 232, 233, -1, 288, -1, 289, -1, 290, -1, ++ 333, -1, 336, -1, 344, -1, 346, -1, 347, -1, ++ 354, -1, -1, 234, 235, -1, 288, -1, 289, -1, ++ 290, -1, 324, -1, 366, -1, 333, -1, 344, -1, ++ 336, -1, 381, -1, 385, -1, 387, -1, 345, -1, ++ 346, -1, 347, -1, -1, 236, 237, -1, 288, -1, ++ 289, -1, 290, -1, 333, -1, 324, -1, 336, -1, ++ 344, -1, 346, -1, 347, -1, 350, -1, 8, 337, ++ 341, 389, -1, 8, 337, 212, 339, 213, 341, 389, ++ -1, 8, 337, 179, 212, 339, 213, 341, 389, -1, ++ 8, 11, 100, 240, -1, -1, 39, 23, 100, -1, ++ 8, 34, 100, 380, -1, 8, 17, -1, 8, 207, ++ -1, 8, 9, 92, -1, 8, 9, 12, -1, 8, ++ 9, 12, 10, 91, -1, 8, 147, 145, 92, -1, ++ 8, 147, 145, 92, 146, 100, -1, 8, 147, 146, ++ 100, -1, 8, 30, 92, -1, 8, 31, 92, -1, ++ 8, 38, 92, -1, 8, 153, 250, -1, 251, 252, ++ -1, 250, 251, 252, -1, 202, 331, 306, 305, -1, ++ -1, 200, 201, -1, 8, 13, 256, 331, 297, -1, ++ 8, 53, 212, 342, 213, -1, 8, 14, 44, 100, ++ 258, -1, 257, -1, 256, 257, -1, 91, 295, 296, ++ 306, 305, -1, 91, 44, 100, 295, 296, 306, 305, ++ -1, -1, 258, 259, -1, 260, -1, 265, -1, 268, ++ -1, 272, -1, 264, 261, -1, 263, 261, -1, -1, ++ 261, 262, -1, 269, -1, 270, -1, 271, -1, 27, ++ 25, -1, 25, 27, -1, 27, 26, -1, 26, 27, ++ -1, 266, -1, 267, -1, 55, 25, -1, 25, 55, ++ -1, 55, 26, -1, 26, 55, -1, 16, 91, -1, ++ 24, 92, -1, 28, 92, -1, 29, -1, 15, 91, ++ 214, 91, 279, -1, 15, 215, 91, 279, -1, 15, ++ 92, -1, 15, 19, 92, -1, 15, 20, 92, -1, ++ 15, 22, 92, -1, -1, 15, 92, 273, 277, -1, ++ -1, 15, 19, 92, 274, 277, -1, -1, 15, 20, ++ 92, 275, 277, -1, -1, 15, 22, 92, 276, 277, ++ -1, 15, 91, -1, 278, -1, 277, 278, -1, 91, ++ -1, -1, 18, -1, 113, 98, 38, 92, -1, 113, ++ 98, 41, 92, -1, 113, 98, 178, 91, -1, 113, ++ 98, 178, 92, -1, 115, 98, 41, 92, -1, 114, ++ 98, 41, 92, -1, 114, 98, 41, 91, -1, 116, ++ 98, 41, 92, -1, 117, 98, 16, 91, -1, 118, ++ 98, -1, 119, 98, 41, 92, -1, 120, 98, 41, ++ 291, 330, -1, 120, 98, 41, 291, 292, 330, -1, ++ 39, 291, 329, -1, 39, 291, 292, 329, -1, 40, ++ 291, 329, -1, 40, 291, 292, 329, -1, 58, 291, ++ 329, -1, 58, 291, 292, 329, -1, 293, -1, 291, ++ 293, -1, 294, -1, 292, 294, -1, 91, -1, 92, ++ -1, 150, 91, -1, 152, 91, -1, 150, 100, -1, ++ 152, 100, -1, -1, 155, 93, -1, 155, 91, -1, ++ -1, 156, 91, -1, -1, 43, 91, -1, 3, 7, ++ 301, 302, 304, 307, 334, 331, 332, 372, 5, 370, ++ 374, -1, 3, 7, 195, 202, 334, 331, 332, 372, ++ 5, 370, 374, -1, 3, 7, 303, 304, 307, 331, ++ 332, 372, 5, 370, 374, -1, 3, 7, 186, 388, ++ 328, 331, 372, 5, 370, 374, -1, 3, 7, 185, ++ 328, 331, 372, 5, 370, 374, -1, -1, 42, 91, ++ -1, 44, 100, -1, 54, 92, -1, -1, 45, 47, ++ -1, 45, 48, 306, 305, -1, 45, 46, -1, -1, ++ 169, 91, -1, -1, 164, -1, 165, -1, 166, -1, ++ 167, -1, 168, -1, 163, -1, -1, 49, 65, 322, ++ -1, 49, 62, -1, 49, 75, -1, 49, 78, -1, ++ 49, 66, -1, 49, 63, 314, -1, 49, 64, 314, ++ -1, 49, 70, -1, 49, 71, -1, 49, 79, -1, ++ 49, 80, -1, 49, 74, -1, 49, 86, 312, 313, ++ -1, 49, 72, -1, 49, 73, -1, 49, 85, -1, ++ 49, 69, -1, 49, 67, -1, 49, 68, -1, 49, ++ 77, -1, 49, 81, -1, 49, 82, -1, 49, 83, ++ -1, 49, 84, -1, 49, 87, -1, 49, 88, -1, ++ 49, 89, 321, -1, 49, 90, -1, 49, 76, 310, ++ -1, 308, -1, 309, -1, 308, 309, -1, 32, 91, ++ -1, 33, 91, -1, 311, -1, 310, 311, -1, 124, ++ 91, -1, 143, 92, -1, 42, 91, -1, 125, 100, ++ -1, -1, 203, 93, -1, 203, 91, -1, -1, 206, ++ 100, -1, -1, 314, 315, -1, 317, -1, 318, -1, ++ 316, -1, 319, -1, 216, 320, 217, -1, 123, 367, ++ 100, -1, 143, 92, -1, 59, 91, -1, 149, 91, ++ -1, -1, 320, 205, -1, 148, 91, -1, 323, -1, ++ 322, 6, 323, -1, 102, 367, 100, 101, -1, 103, ++ 367, 100, 101, -1, 104, 367, 100, 101, -1, 105, ++ 367, 100, 101, -1, 106, 367, 100, 101, -1, 107, ++ 367, 100, 101, -1, 108, 367, 100, 101, -1, 109, ++ 367, 100, 101, -1, 110, 367, 100, 101, -1, 111, ++ 367, 100, 101, -1, 3, 179, 189, 372, 5, 370, ++ 374, -1, 3, 158, 197, 372, 5, 370, -1, 3, ++ 158, 198, 372, 5, 370, -1, 3, 182, 367, 100, ++ 368, 372, 5, 370, 374, -1, -1, 36, 100, -1, ++ -1, 56, 100, 159, -1, -1, 56, 100, 159, -1, ++ -1, 56, 100, 159, -1, -1, 57, 100, -1, 3, ++ 100, 58, 100, 35, 5, 370, -1, 3, 100, 58, ++ 100, 35, 5, 56, -1, -1, 196, 335, 91, -1, ++ 209, -1, 208, -1, 337, 341, 389, -1, 337, 212, ++ 339, 213, 341, 389, -1, 337, 179, 212, 339, 213, ++ 341, 389, -1, 338, -1, 51, 93, -1, 52, 93, ++ -1, 340, -1, 339, 340, -1, 181, -1, 59, -1, ++ 50, -1, 196, -1, 191, -1, 183, -1, 199, -1, ++ 152, -1, 186, -1, 154, -1, 190, -1, 188, -1, ++ 176, -1, 197, -1, 198, -1, 126, -1, 177, -1, ++ 123, -1, 56, -1, 157, -1, 150, -1, 182, -1, ++ -1, 53, 212, 342, 213, -1, 343, -1, 342, 343, ++ -1, 94, -1, 95, -1, 96, -1, 97, -1, 60, ++ 100, 35, -1, 60, 204, -1, 61, 204, -1, 133, ++ 134, -1, 133, 135, -1, 133, 136, -1, 142, 99, ++ -1, 144, 348, -1, 349, -1, 348, 349, -1, 98, ++ -1, 3, 123, 367, 100, 372, 5, 370, 374, -1, ++ 3, 158, 123, 372, 5, 370, -1, 3, 352, 372, ++ 5, 370, 374, -1, 353, -1, 352, 353, -1, 357, ++ -1, 360, -1, 362, -1, 363, -1, 3, 355, 372, ++ 5, 370, 374, -1, 356, -1, 355, 356, -1, 363, ++ -1, 360, -1, 361, -1, 358, -1, 137, 367, 100, ++ 101, -1, 138, 367, 100, 101, -1, 359, 367, 100, ++ 101, -1, 139, -1, 140, -1, 141, -1, 127, 367, ++ 365, 380, -1, 127, 367, 100, 101, -1, 128, 367, ++ 365, 380, -1, 128, 367, 100, 101, -1, 132, 367, ++ 365, 380, -1, 132, 367, 100, 101, -1, 121, 367, ++ 100, -1, 364, 367, 365, -1, 129, -1, 130, -1, ++ 131, -1, 112, -1, 100, -1, 3, 157, 367, 100, ++ 368, 372, 5, 370, 374, -1, 3, 158, 157, 372, ++ 5, 370, -1, -1, 211, -1, 210, -1, 209, -1, ++ 208, -1, 158, -1, -1, 159, -1, 160, -1, 161, ++ -1, 162, -1, 51, -1, 183, 291, -1, 183, 291, ++ 292, -1, 58, -1, 39, -1, 40, -1, 184, -1, ++ 369, -1, 369, -1, -1, 100, 35, -1, 100, 100, ++ 35, -1, -1, 100, 35, -1, 100, 100, 35, -1, ++ -1, 4, 3, 192, 373, 5, 371, -1, 4, 3, ++ 193, 373, 5, 371, -1, 4, 3, 194, 373, 5, ++ 371, -1, 3, 7, 376, 59, 372, 5, 370, 374, ++ -1, 3, 7, 376, 59, 33, 91, 372, 5, 370, ++ 374, -1, 3, 158, 376, 59, 372, 5, 370, -1, ++ -1, 20, -1, 21, -1, 3, 174, 367, 100, 372, ++ 5, 370, 374, -1, 3, 174, 367, 100, 101, 372, ++ 5, 370, 374, -1, 3, 175, 367, 365, 380, 372, ++ 5, 370, 374, -1, 3, 175, 367, 100, 101, 372, ++ 5, 370, 374, -1, 3, 158, 199, 372, 5, 370, ++ -1, -1, 170, -1, 171, -1, 172, -1, 173, -1, ++ 3, 7, 176, 100, 372, 5, 370, 374, -1, 3, ++ 383, 178, 92, 372, 5, 370, -1, 3, 383, 178, ++ 91, 372, 5, 370, -1, 180, 383, 178, 92, -1, ++ 180, 383, 178, 91, -1, -1, 179, -1, 3, 177, ++ 367, 100, 380, 372, 5, 370, 374, -1, 3, 158, ++ 177, 372, 5, 370, -1, 3, 7, 150, 91, 372, ++ 5, 370, 374, -1, 3, 7, 150, 100, 372, 5, ++ 370, 374, -1, 3, 7, 151, 91, 372, 5, 370, ++ 374, -1, 3, 7, 151, 100, 372, 5, 370, 374, ++ -1, 3, 7, 152, 91, 372, 5, 370, 374, -1, ++ 3, 7, 152, 100, 372, 5, 370, 374, -1, 45, ++ 187, -1, -1, 37, 100, -1, 37, 100, 35, -1 ++}; ++ ++/* YYRLINE[YYN] -- source line where rule number YYN was defined. */ + static const yytype_uint16 yyrline[] = + { + 0, 306, 306, 307, 310, 311, 314, 315, 316, 317, +@@ -1156,7 +1366,7 @@ + }; + #endif + +-#if YYDEBUG || YYERROR_VERBOSE || 0 ++#if YYDEBUG || YYERROR_VERBOSE || YYTOKEN_TABLE + /* YYTNAME[SYMBOL-NUM] -- String name of the symbol SYMBOL-NUM. + First, the terminals, then, starting at YYNTOKENS, nonterminals. */ + static const char *const yytname[] = +@@ -1193,8 +1403,8 @@ + "UNMONITOR", "PING", "ICMP", "ICMPECHO", "NONEXIST", "EXIST", "INVALID", + "DATA", "RECOVERED", "PASSED", "SUCCEEDED", "URL", "CONTENT", "PID", + "PPID", "FSFLAG", "REGISTER", "CREDENTIALS", "URLOBJECT", "TARGET", +- "TIMESPEC", "HTTPHEADER", "MAXFORWARD", "FIPS", "GREATER", "LESS", +- "EQUAL", "NOTEQUAL", "'{'", "'}'", "':'", "'@'", "'['", "']'", "$accept", ++ "TIMESPEC", "HTTPHEADER", "MAXFORWARD", "FIPS", "NOTEQUAL", "EQUAL", ++ "LESS", "GREATER", "'{'", "'}'", "':'", "'@'", "'['", "']'", "$accept", + "cfgfile", "statement_list", "statement", "optproclist", "optproc", + "optfilelist", "optfile", "optfilesyslist", "optfilesys", "optdirlist", + "optdir", "opthostlist", "opthost", "optsystemlist", "optsystem", +@@ -1227,13 +1437,13 @@ + "resourceloadavg", "value", "timestamp", "operator", "time", "action", + "action1", "action2", "rate1", "rate2", "recovery", "checksum", + "hashtype", "inode", "space", "fsflag", "unit", "permission", "match", +- "matchflagnot", "size", "uid", "euid", "gid", "icmptype", "reminder", YY_NULLPTR ++ "matchflagnot", "size", "uid", "euid", "gid", "icmptype", "reminder", 0 + }; + #endif + + # ifdef YYPRINT +-/* YYTOKNUM[NUM] -- (External) token number corresponding to the +- (internal) symbol number NUM (which must be that of a token). */ ++/* YYTOKNUM[YYLEX-NUM] -- Internal token number corresponding to ++ token YYLEX-NUM. */ + static const yytype_uint16 yytoknum[] = + { + 0, 256, 257, 258, 259, 260, 261, 262, 263, 264, +@@ -1261,120 +1471,127 @@ + }; + # endif + +-#define YYPACT_NINF -679 +- +-#define yypact_value_is_default(Yystate) \ +- (!!((Yystate) == (-679))) +- +-#define YYTABLE_NINF -226 +- +-#define yytable_value_is_error(Yytable_value) \ +- 0 ++/* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */ ++static const yytype_uint16 yyr1[] = ++{ ++ 0, 218, 219, 219, 220, 220, 221, 221, 221, 221, ++ 221, 221, 221, 221, 221, 221, 221, 221, 221, 221, ++ 221, 221, 221, 221, 221, 221, 221, 221, 222, 222, ++ 223, 223, 223, 223, 223, 223, 223, 223, 223, 223, ++ 223, 223, 223, 223, 223, 223, 223, 223, 223, 224, ++ 224, 225, 225, 225, 225, 225, 225, 225, 225, 225, ++ 225, 225, 225, 225, 225, 225, 225, 225, 226, 226, ++ 227, 227, 227, 227, 227, 227, 227, 227, 227, 227, ++ 227, 227, 227, 227, 227, 227, 228, 228, 229, 229, ++ 229, 229, 229, 229, 229, 229, 229, 229, 229, 229, ++ 229, 229, 230, 230, 231, 231, 231, 231, 231, 231, ++ 231, 231, 231, 231, 231, 231, 232, 232, 233, 233, ++ 233, 233, 233, 233, 233, 233, 233, 234, 234, 235, ++ 235, 235, 235, 235, 235, 235, 235, 235, 235, 235, ++ 235, 235, 235, 236, 236, 237, 237, 237, 237, 237, ++ 237, 237, 237, 237, 237, 238, 238, 238, 239, 240, ++ 240, 241, 242, 243, 244, 244, 244, 245, 245, 245, ++ 246, 247, 248, 249, 250, 250, 251, 252, 252, 253, ++ 254, 255, 256, 256, 257, 257, 258, 258, 259, 259, ++ 259, 259, 260, 260, 261, 261, 262, 262, 262, 263, ++ 263, 264, 264, 265, 265, 266, 266, 267, 267, 268, ++ 269, 270, 271, 272, 272, 272, 272, 272, 272, 273, ++ 272, 274, 272, 275, 272, 276, 272, 272, 277, 277, ++ 278, 279, 279, 280, 280, 280, 280, 281, 282, 282, ++ 283, 284, 285, 286, 287, 287, 288, 288, 289, 289, ++ 290, 290, 291, 291, 292, 292, 293, 293, 294, 294, ++ 294, 294, 295, 295, 295, 296, 296, 297, 297, 298, ++ 298, 299, 300, 300, 301, 301, 302, 303, 304, 304, ++ 304, 304, 305, 305, 306, 306, 306, 306, 306, 306, ++ 306, 307, 307, 307, 307, 307, 307, 307, 307, 307, ++ 307, 307, 307, 307, 307, 307, 307, 307, 307, 307, ++ 307, 307, 307, 307, 307, 307, 307, 307, 307, 307, ++ 307, 307, 308, 308, 309, 309, 310, 310, 311, 311, ++ 311, 311, 312, 312, 312, 313, 313, 314, 314, 315, ++ 315, 315, 315, 315, 316, 317, 318, 319, 320, 320, ++ 321, 322, 322, 323, 323, 323, 323, 323, 323, 323, ++ 323, 323, 323, 324, 325, 326, 327, 328, 328, 329, ++ 329, 330, 330, 331, 331, 332, 332, 333, 333, 334, ++ 334, 335, 335, 336, 336, 336, 336, 337, 338, 339, ++ 339, 340, 340, 340, 340, 340, 340, 340, 340, 340, ++ 340, 340, 340, 340, 340, 340, 340, 340, 340, 340, ++ 340, 340, 340, 341, 341, 342, 342, 343, 343, 343, ++ 343, 344, 344, 344, 345, 345, 345, 346, 347, 348, ++ 348, 349, 350, 350, 351, 352, 352, 353, 353, 353, ++ 353, 354, 355, 355, 356, 356, 356, 356, 357, 357, ++ 358, 359, 359, 359, 360, 360, 360, 360, 361, 361, ++ 362, 363, 364, 364, 364, 365, 365, 366, 366, 367, ++ 367, 367, 367, 367, 367, 368, 368, 368, 368, 368, ++ 369, 369, 369, 369, 369, 369, 369, 370, 371, 372, ++ 372, 372, 373, 373, 373, 374, 374, 374, 374, 375, ++ 375, 375, 376, 376, 376, 377, 377, 378, 378, 379, ++ 380, 380, 380, 380, 380, 381, 382, 382, 382, 382, ++ 383, 383, 384, 384, 385, 385, 386, 386, 387, 387, ++ 388, 389, 389, 389 ++}; + +- /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing +- STATE-NUM. */ +-static const yytype_int16 yypact[] = ++/* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN. */ ++static const yytype_uint8 yyr2[] = + { +- 514, 250, -51, -35, -27, -11, 3, 42, 52, 65, +- 145, 514, -679, -679, -679, -679, -679, -679, -679, -679, +- -679, -679, -679, -679, -679, -679, -679, -679, -679, -679, +- -679, 284, -679, -679, -679, 16, 74, 107, 221, -679, +- 176, 198, 226, 279, 292, 180, 137, 196, -679, -21, +- -3, 372, 377, 393, 411, -679, 397, 415, -679, -679, +- 451, 96, 700, 716, 7, 286, 286, 343, 286, -52, +- 273, 289, 381, 391, 284, -679, -679, -679, -679, -679, +- -679, -679, -679, -679, 37, -679, -679, -679, -679, -679, +- 436, 716, 585, 482, -679, 456, -18, 0, -679, 405, +- -679, -679, 260, -679, -679, 424, 425, 407, 475, 196, +- 349, 331, 339, 612, 530, 485, 491, 367, 379, 517, +- 519, 523, 524, 286, 237, -679, -679, -679, -679, -679, +- -679, -679, -679, -679, -679, -679, -679, -679, -679, -679, +- -679, -679, -679, -679, -679, 15, 443, -679, -679, -679, +- -679, -679, -679, -679, -679, -679, -679, -679, -679, -679, +- -679, -679, -679, -679, -679, 27, -679, -679, -679, -679, +- -679, -679, -679, -679, -679, -679, -679, -679, -679, -679, +- -679, -679, -679, 26, -679, -679, -679, -679, -679, -679, +- -679, -679, -679, -679, -679, -679, -679, -679, -679, 47, +- 559, 452, -679, -679, 230, -679, 230, -679, 230, 609, +- -679, -679, -679, -679, -679, -679, -679, 391, -679, -679, +- 435, 612, 530, 685, -679, -679, -679, -679, -679, -679, +- -679, -679, -679, -679, -679, -679, -679, -679, -679, -679, +- -679, -679, -679, -679, -679, -679, -679, -679, -679, 256, +- -679, -679, -679, -679, -679, -679, -679, -679, -679, -679, +- -679, 558, 625, -679, 551, -14, 497, 555, -679, 613, +- -679, -679, -679, -679, -679, -679, -679, -679, -679, -679, +- -43, -679, 513, -679, 277, 349, 459, -679, 424, 612, +- -679, -679, -679, -679, -679, -679, -679, -679, -679, -679, +- -679, -679, -679, -679, -679, -679, -679, -679, -679, -679, +- -679, -679, 356, -679, 567, -679, -679, -679, -679, -679, +- -679, -679, -679, -679, -679, -679, 236, 201, 191, 191, +- 191, -679, -679, -679, 191, 191, 326, 191, 734, -679, +- -679, -679, -679, -679, 191, 101, 191, 62, 191, 452, +- 492, -679, 494, 231, 470, 191, 191, 516, 583, 639, +- 633, 477, 636, 584, 600, 601, -36, 150, -6, -679, +- -679, -679, -6, -679, -6, -679, -679, -679, 612, 422, +- -679, 191, -679, -679, -679, 691, -679, -679, 191, -679, +- -679, -679, 191, 579, -679, 604, 550, -679, -679, 615, +- 277, 548, 617, -679, 395, -679, -679, 610, -679, -679, +- -679, -679, -679, -679, 540, -679, -679, 23, 500, 661, +- -679, 680, 620, 73, -679, 630, 225, 240, 259, 679, +- -679, -679, -679, -679, -679, 628, 41, 59, 637, 645, +- 600, 600, 646, -4, -679, 725, 87, -679, -679, 647, +- 677, 649, 600, 600, 694, 650, 449, 466, 600, 654, +- 166, -679, 657, 475, 572, 639, 569, 663, 679, 735, +- 770, 619, -679, -679, -679, -679, -679, -679, -679, -679, +- 535, 661, 179, -679, 774, 682, 683, 600, -679, 497, +- -679, 540, -679, -679, 20, 689, 33, 51, 545, 556, +- -679, -679, -679, -679, -679, -679, -679, -679, -679, -679, +- 690, -679, -679, 661, 530, -679, 627, -679, -679, 600, +- 600, 600, 600, 600, 600, 488, 35, -679, 686, -679, +- 260, 695, 260, 696, 698, 779, 787, 401, -679, 755, +- 91, -679, -679, 600, 28, 401, 796, 799, 600, 260, +- 600, 600, -679, -679, 800, 486, 705, 260, -679, 600, +- -679, 475, 386, 475, -679, 35, 802, 91, -679, 661, +- 530, 726, 260, 91, 727, 600, 824, 277, -679, 743, +- 748, 749, 629, 763, 765, -679, -679, -679, -679, -679, +- -679, -679, -679, -679, 380, 380, -679, 530, -679, -679, +- 852, 854, 864, 865, 868, 869, -679, -679, 277, 788, +- 810, 858, 475, 557, -679, -679, -679, -679, -679, -679, +- -679, 91, 91, -679, -679, -679, -679, 600, -679, -679, +- -679, -679, -679, 286, -679, -679, 874, 897, 812, 899, +- 600, 91, 91, 900, 600, 901, 902, 91, 600, 903, +- 600, 600, 904, 600, -679, -679, 819, 855, 569, 290, +- 874, 530, -679, -679, -679, 874, -679, 906, 91, 540, +- 825, 859, 860, 861, 862, 931, 863, 866, -679, -679, +- -679, -679, -679, -679, 91, 91, 91, 91, 91, 91, +- 540, -679, -679, -679, -679, -679, 789, -679, -679, -679, +- -679, -679, -679, -679, -679, -679, -679, 214, -679, -679, +- -679, -679, -679, -679, -679, -679, -679, 751, -679, -679, +- 808, -679, 855, -679, -679, -679, 952, 220, 956, -679, +- 91, 600, 91, 955, -679, -679, 91, 957, 91, 91, +- -679, 958, 91, 959, 960, 91, 961, -679, 867, 600, +- 475, -679, -679, -679, -679, -679, 91, -679, -679, 862, +- 862, 862, 931, -679, 862, -679, -679, -679, -679, -679, +- 874, 874, 874, 874, 874, 874, -679, 103, 103, 191, +- 191, 191, 191, 191, 191, 191, 191, 191, 191, 962, +- -679, 870, 878, 871, 880, 214, -679, 167, 764, 882, +- -679, 600, 91, 239, 255, 874, 969, 874, 91, -679, +- 91, -679, -679, 91, 874, 91, 91, 874, 91, -679, +- 970, 855, 874, 862, 862, 862, -679, -679, -679, -679, +- -679, -679, -679, -679, 885, 191, 886, 888, -679, -679, +- -679, -679, -679, -679, 877, 881, 883, 884, 887, 889, +- 890, 891, 892, 893, 789, -679, -679, -679, -679, -679, +- -679, -679, 894, -679, -679, 975, 874, 895, 895, 895, +- -679, 91, -679, 874, 874, 874, -679, 874, 874, -679, +- 874, 91, 600, -679, -679, 896, -679, -679, 92, 898, +- 905, 907, 908, 909, 910, 911, 912, 913, 914, -679, +- -679, 91, -679, 10, 977, 980, 981, 874, -679, -679, +- -679, -679, -679, -679, 874, 983, -679, -679, -679, -679, +- -679, -679, -679, -679, -679, -679, -679, -679, -679, 874, +- -679, 963, 91, 91, 91, -679, -679, 91, -679, -679, +- -679, -679, -679, -679, 874, -679 ++ 0, 2, 0, 1, 1, 2, 1, 1, 1, 1, ++ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, ++ 2, 2, 2, 2, 2, 2, 2, 2, 0, 2, ++ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, ++ 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, ++ 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, ++ 1, 1, 1, 1, 1, 1, 1, 1, 0, 2, ++ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, ++ 1, 1, 1, 1, 1, 1, 0, 2, 1, 1, ++ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, ++ 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, ++ 1, 1, 1, 1, 1, 1, 0, 2, 1, 1, ++ 1, 1, 1, 1, 1, 1, 1, 0, 2, 1, ++ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, ++ 1, 1, 1, 0, 2, 1, 1, 1, 1, 1, ++ 1, 1, 1, 1, 1, 4, 7, 8, 4, 0, ++ 3, 4, 2, 2, 3, 3, 5, 4, 6, 4, ++ 3, 3, 3, 3, 2, 3, 4, 0, 2, 5, ++ 5, 5, 1, 2, 5, 7, 0, 2, 1, 1, ++ 1, 1, 2, 2, 0, 2, 1, 1, 1, 2, ++ 2, 2, 2, 1, 1, 2, 2, 2, 2, 2, ++ 2, 2, 1, 5, 4, 2, 3, 3, 3, 0, ++ 4, 0, 5, 0, 5, 0, 5, 2, 1, 2, ++ 1, 0, 1, 4, 4, 4, 4, 4, 4, 4, ++ 4, 4, 2, 4, 5, 6, 3, 4, 3, 4, ++ 3, 4, 1, 2, 1, 2, 1, 1, 2, 2, ++ 2, 2, 0, 2, 2, 0, 2, 0, 2, 13, ++ 11, 11, 10, 9, 0, 2, 2, 2, 0, 2, ++ 4, 2, 0, 2, 0, 1, 1, 1, 1, 1, ++ 1, 0, 3, 2, 2, 2, 2, 3, 3, 2, ++ 2, 2, 2, 2, 4, 2, 2, 2, 2, 2, ++ 2, 2, 2, 2, 2, 2, 2, 2, 3, 2, ++ 3, 1, 1, 2, 2, 2, 1, 2, 2, 2, ++ 2, 2, 0, 2, 2, 0, 2, 0, 2, 1, ++ 1, 1, 1, 3, 3, 2, 2, 2, 0, 2, ++ 2, 1, 3, 4, 4, 4, 4, 4, 4, 4, ++ 4, 4, 4, 7, 6, 6, 9, 0, 2, 0, ++ 3, 0, 3, 0, 3, 0, 2, 7, 7, 0, ++ 3, 1, 1, 3, 6, 7, 1, 2, 2, 1, ++ 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, ++ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, ++ 1, 1, 1, 0, 4, 1, 2, 1, 1, 1, ++ 1, 3, 2, 2, 2, 2, 2, 2, 2, 1, ++ 2, 1, 8, 6, 6, 1, 2, 1, 1, 1, ++ 1, 6, 1, 2, 1, 1, 1, 1, 4, 4, ++ 4, 1, 1, 1, 4, 4, 4, 4, 4, 4, ++ 3, 3, 1, 1, 1, 1, 1, 9, 6, 0, ++ 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, ++ 1, 2, 3, 1, 1, 1, 1, 1, 1, 0, ++ 2, 3, 0, 2, 3, 0, 6, 6, 6, 8, ++ 10, 7, 0, 1, 1, 8, 9, 9, 9, 6, ++ 0, 1, 1, 1, 1, 8, 7, 7, 4, 4, ++ 0, 1, 9, 6, 8, 8, 8, 8, 8, 8, ++ 2, 0, 2, 3 + }; + +- /* YYDEFACT[STATE-NUM] -- Default reduction number in state STATE-NUM. +- Performed when YYTABLE does not specify something else to do. Zero +- means the default is an error. */ ++/* YYDEFACT[STATE-NAME] -- Default reduction number in state STATE-NUM. ++ Performed when YYTABLE doesn't specify something else to do. Zero ++ means the default is an error. */ + static const yytype_uint16 yydefact[] = + { + 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, +@@ -1420,7 +1637,7 @@ + 284, 0, 0, 179, 181, 180, 416, 0, 290, 285, + 286, 287, 288, 289, 282, 175, 178, 0, 0, 413, + 390, 532, 0, 371, 244, 0, 0, 0, 0, 278, +- 474, 470, 471, 472, 473, 0, 0, 0, 0, 0, ++ 474, 473, 472, 471, 470, 0, 0, 0, 0, 0, + 489, 489, 0, 0, 436, 0, 0, 503, 504, 0, + 0, 0, 489, 489, 0, 0, 0, 0, 489, 0, + 0, 275, 0, 373, 0, 367, 379, 0, 278, 0, +@@ -1442,7 +1659,7 @@ + 449, 0, 0, 476, 477, 478, 479, 489, 491, 484, + 485, 480, 483, 0, 486, 487, 495, 0, 0, 0, + 489, 0, 0, 0, 489, 0, 0, 0, 489, 0, +- 489, 489, 0, 489, 381, 382, 0, 375, 379, 0, ++ 489, 489, 0, 489, 382, 381, 0, 375, 379, 0, + 495, 531, 384, 459, 458, 495, 450, 0, 0, 282, + 216, 217, 218, 0, 0, 231, 0, 0, 212, 195, + 196, 197, 198, 157, 0, 0, 0, 0, 0, 0, +@@ -1474,30 +1691,7 @@ + 488, 496, 497, 498, 495, 269 + }; + +- /* YYPGOTO[NTERM-NUM]. */ +-static const yytype_int16 yypgoto[] = +-{ +- -679, -679, -679, 986, -679, -679, -679, -679, -679, -679, +- -679, -679, -679, 926, -679, -679, -679, -679, -679, -679, +- -679, -679, -679, -679, -679, -679, -679, -679, -679, -679, +- -679, -679, -679, 915, 717, -679, -679, -679, -679, 919, +- -679, -679, -679, 498, -679, -679, -679, -679, -679, -679, +- -679, -679, -679, -679, -679, -679, -679, -679, -679, -195, +- -491, 241, -679, -679, -679, -679, -679, -679, -679, -679, +- 438, 603, 681, -65, -201, -202, -351, 608, 518, -679, +- 945, -679, -679, -679, -679, -679, 549, -472, -387, 453, +- -679, 406, -679, 227, -679, -679, 325, -679, -679, -679, +- -679, -679, -679, -679, -679, 169, 423, -679, -679, -679, +- 560, -165, 598, -108, -678, 776, 368, -679, 785, 1026, +- -679, -151, -263, -76, 740, -256, 790, 32, 823, 827, +- -679, 813, -679, -679, -679, 693, -679, -679, 644, -679, +- -679, -679, -203, -679, -679, -177, -679, -380, 18, -319, +- 487, -294, -508, -332, -355, -262, -560, -679, 687, -679, +- -679, -679, 43, 299, -679, 916, -679, 13, -679, 208, +- -679, -210 +-}; +- +- /* YYDEFGOTO[NTERM-NUM]. */ ++/* YYDEFGOTO[NTERM-NUM]. */ + static const yytype_int16 yydefgoto[] = + { + -1, 10, 11, 12, 60, 125, 61, 147, 62, 166, +@@ -1520,9 +1714,135 @@ + 465, 315 + }; + +- /* YYTABLE[YYPACT[STATE-NUM]] -- What to do in state STATE-NUM. If +- positive, shift that token. If negative, reduce the rule whose +- number is the opposite. If YYTABLE_NINF, syntax error. */ ++/* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing ++ STATE-NUM. */ ++#define YYPACT_NINF -679 ++static const yytype_int16 yypact[] = ++{ ++ 514, 250, -51, -35, -27, -11, 3, 42, 52, 65, ++ 145, 514, -679, -679, -679, -679, -679, -679, -679, -679, ++ -679, -679, -679, -679, -679, -679, -679, -679, -679, -679, ++ -679, 284, -679, -679, -679, 16, 74, 107, 221, -679, ++ 176, 198, 226, 279, 292, 180, 137, 196, -679, -21, ++ -3, 372, 377, 386, 418, -679, 397, 415, -679, -679, ++ 451, 96, 700, 716, 7, 286, 286, 343, 286, -52, ++ 273, 289, 390, 382, 284, -679, -679, -679, -679, -679, ++ -679, -679, -679, -679, 37, -679, -679, -679, -679, -679, ++ 436, 716, 585, 482, -679, 456, -18, 0, -679, 405, ++ -679, -679, 260, -679, -679, 424, 425, 407, 475, 196, ++ 349, 331, 339, 612, 530, 485, 491, 367, 379, 517, ++ 519, 523, 524, 286, 237, -679, -679, -679, -679, -679, ++ -679, -679, -679, -679, -679, -679, -679, -679, -679, -679, ++ -679, -679, -679, -679, -679, 15, 443, -679, -679, -679, ++ -679, -679, -679, -679, -679, -679, -679, -679, -679, -679, ++ -679, -679, -679, -679, -679, 27, -679, -679, -679, -679, ++ -679, -679, -679, -679, -679, -679, -679, -679, -679, -679, ++ -679, -679, -679, 26, -679, -679, -679, -679, -679, -679, ++ -679, -679, -679, -679, -679, -679, -679, -679, -679, 47, ++ 559, 452, -679, -679, 230, -679, 230, -679, 230, 609, ++ -679, -679, -679, -679, -679, -679, -679, 382, -679, -679, ++ 435, 612, 530, 685, -679, -679, -679, -679, -679, -679, ++ -679, -679, -679, -679, -679, -679, -679, -679, -679, -679, ++ -679, -679, -679, -679, -679, -679, -679, -679, -679, 256, ++ -679, -679, -679, -679, -679, -679, -679, -679, -679, -679, ++ -679, 557, 626, -679, 551, -14, 497, 555, -679, 613, ++ -679, -679, -679, -679, -679, -679, -679, -679, -679, -679, ++ -43, -679, 513, -679, 277, 349, 459, -679, 424, 612, ++ -679, -679, -679, -679, -679, -679, -679, -679, -679, -679, ++ -679, -679, -679, -679, -679, -679, -679, -679, -679, -679, ++ -679, -679, 356, -679, 567, -679, -679, -679, -679, -679, ++ -679, -679, -679, -679, -679, -679, 236, 201, 191, 191, ++ 191, -679, -679, -679, 191, 191, 326, 191, 734, -679, ++ -679, -679, -679, -679, 191, 101, 191, 62, 191, 452, ++ 492, -679, 494, 231, 470, 191, 191, 516, 583, 639, ++ 633, 477, 636, 584, 600, 601, -36, 150, -6, -679, ++ -679, -679, -6, -679, -6, -679, -679, -679, 612, 422, ++ -679, 191, -679, -679, -679, 691, -679, -679, 191, -679, ++ -679, -679, 191, 579, -679, 604, 550, -679, -679, 615, ++ 277, 548, 617, -679, 395, -679, -679, 610, -679, -679, ++ -679, -679, -679, -679, 540, -679, -679, 23, 500, 661, ++ -679, 680, 620, 73, -679, 630, 225, 240, 259, 679, ++ -679, -679, -679, -679, -679, 628, 41, 59, 637, 645, ++ 600, 600, 646, -4, -679, 725, 87, -679, -679, 647, ++ 677, 649, 600, 600, 694, 650, 449, 466, 600, 654, ++ 166, -679, 657, 475, 572, 639, 569, 663, 679, 735, ++ 770, 619, -679, -679, -679, -679, -679, -679, -679, -679, ++ 535, 661, 179, -679, 774, 682, 683, 600, -679, 497, ++ -679, 540, -679, -679, 20, 689, 33, 51, 545, 556, ++ -679, -679, -679, -679, -679, -679, -679, -679, -679, -679, ++ 690, -679, -679, 661, 530, -679, 625, -679, -679, 600, ++ 600, 600, 600, 600, 600, 488, 35, -679, 686, -679, ++ 260, 695, 260, 696, 698, 781, 787, 401, -679, 755, ++ 91, -679, -679, 600, 28, 401, 796, 799, 600, 260, ++ 600, 600, -679, -679, 800, 486, 705, 260, -679, 600, ++ -679, 475, 381, 475, -679, 35, 802, 91, -679, 661, ++ 530, 726, 260, 91, 727, 600, 824, 277, -679, 743, ++ 748, 749, 629, 763, 765, -679, -679, -679, -679, -679, ++ -679, -679, -679, -679, 380, 380, -679, 530, -679, -679, ++ 852, 854, 864, 865, 868, 869, -679, -679, 277, 788, ++ 810, 858, 475, 564, -679, -679, -679, -679, -679, -679, ++ -679, 91, 91, -679, -679, -679, -679, 600, -679, -679, ++ -679, -679, -679, 286, -679, -679, 874, 897, 812, 899, ++ 600, 91, 91, 900, 600, 901, 902, 91, 600, 903, ++ 600, 600, 904, 600, -679, -679, 819, 855, 569, 290, ++ 874, 530, -679, -679, -679, 874, -679, 906, 91, 540, ++ 825, 859, 860, 861, 862, 931, 863, 866, -679, -679, ++ -679, -679, -679, -679, 91, 91, 91, 91, 91, 91, ++ 540, -679, -679, -679, -679, -679, 789, -679, -679, -679, ++ -679, -679, -679, -679, -679, -679, -679, 214, -679, -679, ++ -679, -679, -679, -679, -679, -679, -679, 751, -679, -679, ++ 808, -679, 855, -679, -679, -679, 952, 220, 956, -679, ++ 91, 600, 91, 955, -679, -679, 91, 957, 91, 91, ++ -679, 958, 91, 959, 960, 91, 961, -679, 867, 600, ++ 475, -679, -679, -679, -679, -679, 91, -679, -679, 862, ++ 862, 862, 931, -679, 862, -679, -679, -679, -679, -679, ++ 874, 874, 874, 874, 874, 874, -679, 103, 103, 191, ++ 191, 191, 191, 191, 191, 191, 191, 191, 191, 962, ++ -679, 870, 878, 871, 880, 214, -679, 167, 764, 882, ++ -679, 600, 91, 239, 255, 874, 969, 874, 91, -679, ++ 91, -679, -679, 91, 874, 91, 91, 874, 91, -679, ++ 970, 855, 874, 862, 862, 862, -679, -679, -679, -679, ++ -679, -679, -679, -679, 885, 191, 886, 888, -679, -679, ++ -679, -679, -679, -679, 877, 881, 883, 884, 887, 889, ++ 890, 891, 892, 893, 789, -679, -679, -679, -679, -679, ++ -679, -679, 894, -679, -679, 975, 874, 895, 895, 895, ++ -679, 91, -679, 874, 874, 874, -679, 874, 874, -679, ++ 874, 91, 600, -679, -679, 896, -679, -679, 92, 898, ++ 905, 907, 908, 909, 910, 911, 912, 913, 914, -679, ++ -679, 91, -679, 10, 977, 980, 981, 874, -679, -679, ++ -679, -679, -679, -679, 874, 983, -679, -679, -679, -679, ++ -679, -679, -679, -679, -679, -679, -679, -679, -679, 874, ++ -679, 963, 91, 91, 91, -679, -679, 91, -679, -679, ++ -679, -679, -679, -679, 874, -679 ++}; ++ ++/* YYPGOTO[NTERM-NUM]. */ ++static const yytype_int16 yypgoto[] = ++{ ++ -679, -679, -679, 986, -679, -679, -679, -679, -679, -679, ++ -679, -679, -679, 926, -679, -679, -679, -679, -679, -679, ++ -679, -679, -679, -679, -679, -679, -679, -679, -679, -679, ++ -679, -679, -679, 915, 717, -679, -679, -679, -679, 919, ++ -679, -679, -679, 498, -679, -679, -679, -679, -679, -679, ++ -679, -679, -679, -679, -679, -679, -679, -679, -679, -195, ++ -491, 241, -679, -679, -679, -679, -679, -679, -679, -679, ++ 438, 603, 681, -65, -201, -202, -351, 608, 518, -679, ++ 945, -679, -679, -679, -679, -679, 549, -472, -387, 453, ++ -679, 406, -679, 227, -679, -679, 325, -679, -679, -679, ++ -679, -679, -679, -679, -679, 169, 423, -679, -679, -679, ++ 560, -165, 598, -108, -678, 776, 368, -679, 785, 1026, ++ -679, -151, -263, -76, 740, -256, 790, 32, 823, 827, ++ -679, 813, -679, -679, -679, 693, -679, -679, 644, -679, ++ -679, -679, -203, -679, -679, -177, -679, -380, 18, -319, ++ 487, -294, -508, -332, -355, -262, -560, -679, 687, -679, ++ -679, -679, 43, 299, -679, 916, -679, 13, -679, 208, ++ -679, -210 ++}; ++ ++/* YYTABLE[YYPACT[STATE-NUM]]. What to do in state STATE-NUM. If ++ positive, shift that token. If negative, reduce the rule which ++ number is the opposite. If YYTABLE_NINF, syntax error. */ ++#define YYTABLE_NINF -226 + static const yytype_int16 yytable[] = + { + 284, 206, 369, 208, 369, 372, 369, 374, 222, 470, +@@ -1567,13 +1887,13 @@ + 246, 367, 105, 929, 820, 336, 361, 46, 108, 431, + 432, 433, 434, 47, 676, 570, 290, 449, 677, 678, + 494, 495, 291, 118, 393, 292, 201, 71, 119, 337, +- 496, 497, 498, 212, 213, 214, 72, 121, 73, 944, +- 271, 272, 273, 274, 120, 201, 207, 597, 122, 223, ++ 496, 497, 498, 212, 213, 214, 72, 120, 73, 944, ++ 271, 272, 273, 274, 121, 201, 207, 597, 122, 223, + 408, 409, 410, 411, 412, 413, 865, 867, 868, 869, + 499, 754, 476, 653, 124, 657, 123, 48, 318, 319, + 844, 845, 846, 847, 848, 849, 850, 851, 852, 853, + 320, 321, 290, 633, 634, 65, 66, 211, 291, 293, +- 215, 292, 294, 131, 151, 170, 188, 44, 67, 216, ++ 216, 292, 294, 131, 151, 170, 188, 44, 67, 215, + 65, 66, 261, 661, 68, 262, 69, 70, 126, 148, + 167, 185, 44, 67, 722, 270, 295, 283, 296, 68, + 297, 69, 70, 298, 238, 254, 885, 282, 276, 277, +@@ -1583,13 +1903,13 @@ + 290, 289, 308, 309, 310, 311, 291, 552, 553, 292, + 623, 624, 625, 626, 823, 824, 825, 314, 727, 419, + 590, 591, 295, 616, 296, 618, 297, 316, 72, 298, +- 73, 592, 593, 317, 71, 290, 443, 648, 249, 609, +- 610, 291, 644, 72, 292, 73, 654, 655, 299, 300, ++ 73, 592, 593, 317, 71, 290, 443, 648, 249, 654, ++ 655, 291, 644, 72, 292, 73, 609, 610, 299, 300, + 651, 942, 943, 301, 302, 303, 905, 906, 304, 322, + 305, 323, 306, 307, 324, 664, 325, 363, 308, 309, + 310, 311, 351, 293, 65, 66, 294, 2, 3, 4, + 5, 6, 7, 8, 9, 481, 44, 67, 940, 940, +- 940, 364, 821, 68, 376, 69, 70, 378, 395, 394, ++ 940, 364, 821, 68, 376, 69, 70, 378, 394, 395, + 295, 396, 296, 399, 297, 401, 402, 298, 293, 407, + 416, 294, 290, 127, 149, 168, 186, 421, 291, 458, + 456, 292, 457, 452, 461, 462, 299, 300, 464, 466, +@@ -1603,7 +1923,7 @@ + 549, 44, 67, 548, 555, 65, 66, 558, 68, 560, + 69, 70, 295, 564, 296, 562, 297, 44, 67, 298, + 566, 227, 237, 253, 68, 567, 69, 70, 568, 573, +- 585, 596, 574, 575, 621, 200, 599, 615, 299, 300, ++ 585, 596, 574, 575, 599, 200, 621, 615, 299, 300, + 628, 443, 622, 301, 302, 303, 617, 619, 304, 620, + 305, 641, 306, 307, 642, 647, 650, 659, 308, 309, + 310, 311, 329, 330, 331, 332, 333, 381, 329, 330, +@@ -1634,6 +1954,12 @@ + 0, 0, 352 + }; + ++#define yypact_value_is_default(yystate) \ ++ ((yystate) == (-679)) ++ ++#define yytable_value_is_error(yytable_value) \ ++ YYID (0) ++ + static const yytype_int16 yycheck[] = + { + 108, 66, 204, 68, 206, 206, 208, 208, 84, 364, +@@ -1678,13 +2004,13 @@ + 91, 152, 212, 901, 749, 158, 195, 147, 202, 208, + 209, 210, 211, 153, 24, 481, 50, 176, 28, 29, + 15, 16, 56, 41, 158, 59, 179, 133, 41, 182, +- 25, 26, 27, 134, 135, 136, 142, 16, 144, 937, +- 170, 171, 172, 173, 41, 179, 93, 513, 41, 3, ++ 25, 26, 27, 134, 135, 136, 142, 41, 144, 937, ++ 170, 171, 172, 173, 16, 179, 93, 513, 41, 3, + 163, 164, 165, 166, 167, 168, 801, 192, 193, 194, + 55, 661, 803, 561, 3, 563, 41, 207, 91, 92, + 779, 780, 781, 782, 783, 784, 785, 786, 787, 788, + 91, 92, 50, 183, 184, 39, 40, 204, 56, 123, +- 99, 59, 126, 60, 61, 62, 63, 51, 52, 98, ++ 98, 59, 126, 60, 61, 62, 63, 51, 52, 99, + 39, 40, 10, 569, 58, 39, 60, 61, 60, 61, + 62, 63, 51, 52, 612, 100, 150, 100, 152, 58, + 154, 60, 61, 157, 91, 92, 835, 92, 94, 95, +@@ -1694,13 +2020,13 @@ + 50, 212, 196, 197, 198, 199, 56, 91, 92, 59, + 159, 160, 161, 162, 759, 760, 761, 37, 633, 213, + 25, 26, 150, 530, 152, 532, 154, 92, 142, 157, +- 144, 25, 26, 92, 133, 50, 100, 101, 3, 32, +- 33, 56, 549, 142, 59, 144, 210, 211, 176, 177, ++ 144, 25, 26, 92, 133, 50, 100, 101, 3, 208, ++ 209, 56, 549, 142, 59, 144, 32, 33, 176, 177, + 557, 933, 934, 181, 182, 183, 868, 869, 186, 92, + 188, 92, 190, 191, 91, 572, 92, 58, 196, 197, + 198, 199, 179, 123, 39, 40, 126, 113, 114, 115, + 116, 117, 118, 119, 120, 213, 51, 52, 932, 933, +- 934, 189, 750, 58, 35, 60, 61, 212, 23, 91, ++ 934, 189, 750, 58, 35, 60, 61, 212, 91, 23, + 150, 100, 152, 156, 154, 100, 43, 157, 123, 146, + 201, 126, 50, 60, 61, 62, 63, 100, 56, 199, + 178, 59, 178, 157, 91, 36, 176, 177, 45, 202, +@@ -1714,7 +2040,7 @@ + 100, 51, 52, 59, 100, 39, 40, 100, 58, 187, + 60, 61, 150, 100, 152, 196, 154, 51, 52, 157, + 35, 90, 91, 92, 58, 5, 60, 61, 159, 5, +- 91, 91, 100, 100, 5, 100, 159, 101, 176, 177, ++ 91, 91, 100, 100, 159, 100, 5, 101, 176, 177, + 35, 100, 5, 181, 182, 183, 101, 101, 186, 101, + 188, 5, 190, 191, 5, 5, 101, 5, 196, 197, + 198, 199, 127, 128, 129, 130, 131, 132, 127, 128, +@@ -1745,8 +2071,8 @@ + -1, -1, 146 + }; + +- /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing +- symbol of state STATE-NUM. */ ++/* YYSTOS[STATE-NUM] -- The (internal number of the) accessing ++ symbol of state STATE-NUM. */ + static const yytype_uint16 yystos[] = + { + 0, 8, 113, 114, 115, 116, 117, 118, 119, 120, +@@ -1814,7 +2140,7 @@ + 101, 5, 5, 159, 160, 161, 162, 368, 35, 39, + 40, 51, 58, 183, 184, 369, 370, 372, 33, 372, + 368, 5, 5, 372, 380, 372, 372, 5, 101, 372, +- 101, 380, 372, 331, 210, 211, 335, 331, 307, 5, ++ 101, 380, 372, 331, 208, 209, 335, 331, 307, 5, + 370, 341, 389, 101, 380, 370, 101, 372, 5, 306, + 92, 92, 92, 214, 273, 91, 24, 28, 29, 262, + 269, 270, 271, 389, 5, 5, 5, 5, 5, 5, +@@ -1846,159 +2172,94 @@ + 369, 371, 371, 371, 370, 374 + }; + +- /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */ +-static const yytype_uint16 yyr1[] = +-{ +- 0, 218, 219, 219, 220, 220, 221, 221, 221, 221, +- 221, 221, 221, 221, 221, 221, 221, 221, 221, 221, +- 221, 221, 221, 221, 221, 221, 221, 221, 222, 222, +- 223, 223, 223, 223, 223, 223, 223, 223, 223, 223, +- 223, 223, 223, 223, 223, 223, 223, 223, 223, 224, +- 224, 225, 225, 225, 225, 225, 225, 225, 225, 225, +- 225, 225, 225, 225, 225, 225, 225, 225, 226, 226, +- 227, 227, 227, 227, 227, 227, 227, 227, 227, 227, +- 227, 227, 227, 227, 227, 227, 228, 228, 229, 229, +- 229, 229, 229, 229, 229, 229, 229, 229, 229, 229, +- 229, 229, 230, 230, 231, 231, 231, 231, 231, 231, +- 231, 231, 231, 231, 231, 231, 232, 232, 233, 233, +- 233, 233, 233, 233, 233, 233, 233, 234, 234, 235, +- 235, 235, 235, 235, 235, 235, 235, 235, 235, 235, +- 235, 235, 235, 236, 236, 237, 237, 237, 237, 237, +- 237, 237, 237, 237, 237, 238, 238, 238, 239, 240, +- 240, 241, 242, 243, 244, 244, 244, 245, 245, 245, +- 246, 247, 248, 249, 250, 250, 251, 252, 252, 253, +- 254, 255, 256, 256, 257, 257, 258, 258, 259, 259, +- 259, 259, 260, 260, 261, 261, 262, 262, 262, 263, +- 263, 264, 264, 265, 265, 266, 266, 267, 267, 268, +- 269, 270, 271, 272, 272, 272, 272, 272, 272, 273, +- 272, 274, 272, 275, 272, 276, 272, 272, 277, 277, +- 278, 279, 279, 280, 280, 280, 280, 281, 282, 282, +- 283, 284, 285, 286, 287, 287, 288, 288, 289, 289, +- 290, 290, 291, 291, 292, 292, 293, 293, 294, 294, +- 294, 294, 295, 295, 295, 296, 296, 297, 297, 298, +- 298, 299, 300, 300, 301, 301, 302, 303, 304, 304, +- 304, 304, 305, 305, 306, 306, 306, 306, 306, 306, +- 306, 307, 307, 307, 307, 307, 307, 307, 307, 307, +- 307, 307, 307, 307, 307, 307, 307, 307, 307, 307, +- 307, 307, 307, 307, 307, 307, 307, 307, 307, 307, +- 307, 307, 308, 308, 309, 309, 310, 310, 311, 311, +- 311, 311, 312, 312, 312, 313, 313, 314, 314, 315, +- 315, 315, 315, 315, 316, 317, 318, 319, 320, 320, +- 321, 322, 322, 323, 323, 323, 323, 323, 323, 323, +- 323, 323, 323, 324, 325, 326, 327, 328, 328, 329, +- 329, 330, 330, 331, 331, 332, 332, 333, 333, 334, +- 334, 335, 335, 336, 336, 336, 336, 337, 338, 339, +- 339, 340, 340, 340, 340, 340, 340, 340, 340, 340, +- 340, 340, 340, 340, 340, 340, 340, 340, 340, 340, +- 340, 340, 340, 341, 341, 342, 342, 343, 343, 343, +- 343, 344, 344, 344, 345, 345, 345, 346, 347, 348, +- 348, 349, 350, 350, 351, 352, 352, 353, 353, 353, +- 353, 354, 355, 355, 356, 356, 356, 356, 357, 357, +- 358, 359, 359, 359, 360, 360, 360, 360, 361, 361, +- 362, 363, 364, 364, 364, 365, 365, 366, 366, 367, +- 367, 367, 367, 367, 367, 368, 368, 368, 368, 368, +- 369, 369, 369, 369, 369, 369, 369, 370, 371, 372, +- 372, 372, 373, 373, 373, 374, 374, 374, 374, 375, +- 375, 375, 376, 376, 376, 377, 377, 378, 378, 379, +- 380, 380, 380, 380, 380, 381, 382, 382, 382, 382, +- 383, 383, 384, 384, 385, 385, 386, 386, 387, 387, +- 388, 389, 389, 389 +-}; ++#define yyerrok (yyerrstatus = 0) ++#define yyclearin (yychar = YYEMPTY) ++#define YYEMPTY (-2) ++#define YYEOF 0 ++ ++#define YYACCEPT goto yyacceptlab ++#define YYABORT goto yyabortlab ++#define YYERROR goto yyerrorlab ++ ++ ++/* Like YYERROR except do call yyerror. This remains here temporarily ++ to ease the transition to the new meaning of YYERROR, for GCC. ++ Once GCC version 2 has supplanted version 1, this can go. However, ++ YYFAIL appears to be in use. Nevertheless, it is formally deprecated ++ in Bison 2.4.2's NEWS entry, where a plan to phase it out is ++ discussed. */ ++ ++#define YYFAIL goto yyerrlab ++#if defined YYFAIL ++ /* This is here to suppress warnings from the GCC cpp's ++ -Wunused-macros. Normally we don't worry about that warning, but ++ some users do, and we want to make it easy for users to remove ++ YYFAIL uses, which will produce warnings from Bison 2.5. */ ++#endif + +- /* YYR2[YYN] -- Number of symbols on the right hand side of rule YYN. */ +-static const yytype_uint8 yyr2[] = +-{ +- 0, 2, 0, 1, 1, 2, 1, 1, 1, 1, +- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, +- 2, 2, 2, 2, 2, 2, 2, 2, 0, 2, +- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, +- 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, +- 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, +- 1, 1, 1, 1, 1, 1, 1, 1, 0, 2, +- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, +- 1, 1, 1, 1, 1, 1, 0, 2, 1, 1, +- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, +- 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, +- 1, 1, 1, 1, 1, 1, 0, 2, 1, 1, +- 1, 1, 1, 1, 1, 1, 1, 0, 2, 1, +- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, +- 1, 1, 1, 0, 2, 1, 1, 1, 1, 1, +- 1, 1, 1, 1, 1, 4, 7, 8, 4, 0, +- 3, 4, 2, 2, 3, 3, 5, 4, 6, 4, +- 3, 3, 3, 3, 2, 3, 4, 0, 2, 5, +- 5, 5, 1, 2, 5, 7, 0, 2, 1, 1, +- 1, 1, 2, 2, 0, 2, 1, 1, 1, 2, +- 2, 2, 2, 1, 1, 2, 2, 2, 2, 2, +- 2, 2, 1, 5, 4, 2, 3, 3, 3, 0, +- 4, 0, 5, 0, 5, 0, 5, 2, 1, 2, +- 1, 0, 1, 4, 4, 4, 4, 4, 4, 4, +- 4, 4, 2, 4, 5, 6, 3, 4, 3, 4, +- 3, 4, 1, 2, 1, 2, 1, 1, 2, 2, +- 2, 2, 0, 2, 2, 0, 2, 0, 2, 13, +- 11, 11, 10, 9, 0, 2, 2, 2, 0, 2, +- 4, 2, 0, 2, 0, 1, 1, 1, 1, 1, +- 1, 0, 3, 2, 2, 2, 2, 3, 3, 2, +- 2, 2, 2, 2, 4, 2, 2, 2, 2, 2, +- 2, 2, 2, 2, 2, 2, 2, 2, 3, 2, +- 3, 1, 1, 2, 2, 2, 1, 2, 2, 2, +- 2, 2, 0, 2, 2, 0, 2, 0, 2, 1, +- 1, 1, 1, 3, 3, 2, 2, 2, 0, 2, +- 2, 1, 3, 4, 4, 4, 4, 4, 4, 4, +- 4, 4, 4, 7, 6, 6, 9, 0, 2, 0, +- 3, 0, 3, 0, 3, 0, 2, 7, 7, 0, +- 3, 1, 1, 3, 6, 7, 1, 2, 2, 1, +- 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, +- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, +- 1, 1, 1, 0, 4, 1, 2, 1, 1, 1, +- 1, 3, 2, 2, 2, 2, 2, 2, 2, 1, +- 2, 1, 8, 6, 6, 1, 2, 1, 1, 1, +- 1, 6, 1, 2, 1, 1, 1, 1, 4, 4, +- 4, 1, 1, 1, 4, 4, 4, 4, 4, 4, +- 3, 3, 1, 1, 1, 1, 1, 9, 6, 0, +- 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, +- 1, 2, 3, 1, 1, 1, 1, 1, 1, 0, +- 2, 3, 0, 2, 3, 0, 6, 6, 6, 8, +- 10, 7, 0, 1, 1, 8, 9, 9, 9, 6, +- 0, 1, 1, 1, 1, 8, 7, 7, 4, 4, +- 0, 1, 9, 6, 8, 8, 8, 8, 8, 8, +- 2, 0, 2, 3 +-}; ++#define YYRECOVERING() (!!yyerrstatus) + ++#define YYBACKUP(Token, Value) \ ++do \ ++ if (yychar == YYEMPTY && yylen == 1) \ ++ { \ ++ yychar = (Token); \ ++ yylval = (Value); \ ++ YYPOPSTACK (1); \ ++ goto yybackup; \ ++ } \ ++ else \ ++ { \ ++ yyerror (YY_("syntax error: cannot back up")); \ ++ YYERROR; \ ++ } \ ++while (YYID (0)) ++ ++ ++#define YYTERROR 1 ++#define YYERRCODE 256 ++ ++ ++/* YYLLOC_DEFAULT -- Set CURRENT to span from RHS[1] to RHS[N]. ++ If N is 0, then set CURRENT to the empty location which ends ++ the previous symbol: RHS[0] (always defined). */ ++ ++#define YYRHSLOC(Rhs, K) ((Rhs)[K]) ++#ifndef YYLLOC_DEFAULT ++# define YYLLOC_DEFAULT(Current, Rhs, N) \ ++ do \ ++ if (YYID (N)) \ ++ { \ ++ (Current).first_line = YYRHSLOC (Rhs, 1).first_line; \ ++ (Current).first_column = YYRHSLOC (Rhs, 1).first_column; \ ++ (Current).last_line = YYRHSLOC (Rhs, N).last_line; \ ++ (Current).last_column = YYRHSLOC (Rhs, N).last_column; \ ++ } \ ++ else \ ++ { \ ++ (Current).first_line = (Current).last_line = \ ++ YYRHSLOC (Rhs, 0).last_line; \ ++ (Current).first_column = (Current).last_column = \ ++ YYRHSLOC (Rhs, 0).last_column; \ ++ } \ ++ while (YYID (0)) ++#endif + +-#define yyerrok (yyerrstatus = 0) +-#define yyclearin (yychar = YYEMPTY) +-#define YYEMPTY (-2) +-#define YYEOF 0 +- +-#define YYACCEPT goto yyacceptlab +-#define YYABORT goto yyabortlab +-#define YYERROR goto yyerrorlab + ++/* This macro is provided for backward compatibility. */ + +-#define YYRECOVERING() (!!yyerrstatus) ++#ifndef YY_LOCATION_PRINT ++# define YY_LOCATION_PRINT(File, Loc) ((void) 0) ++#endif + +-#define YYBACKUP(Token, Value) \ +-do \ +- if (yychar == YYEMPTY) \ +- { \ +- yychar = (Token); \ +- yylval = (Value); \ +- YYPOPSTACK (yylen); \ +- yystate = *yyssp; \ +- goto yybackup; \ +- } \ +- else \ +- { \ +- yyerror (YY_("syntax error: cannot back up")); \ +- YYERROR; \ +- } \ +-while (0) +- +-/* Error token number */ +-#define YYTERROR 1 +-#define YYERRCODE 256 + ++/* YYLEX -- calling `yylex' with the right arguments. */ + ++#ifdef YYLEX_PARAM ++# define YYLEX yylex (YYLEX_PARAM) ++#else ++# define YYLEX yylex () ++#endif + + /* Enable debugging if requested. */ + #if YYDEBUG +@@ -2008,46 +2269,54 @@ + # define YYFPRINTF fprintf + # endif + +-# define YYDPRINTF(Args) \ +-do { \ +- if (yydebug) \ +- YYFPRINTF Args; \ +-} while (0) +- +-/* This macro is provided for backward compatibility. */ +-#ifndef YY_LOCATION_PRINT +-# define YY_LOCATION_PRINT(File, Loc) ((void) 0) +-#endif ++# define YYDPRINTF(Args) \ ++do { \ ++ if (yydebug) \ ++ YYFPRINTF Args; \ ++} while (YYID (0)) ++ ++# define YY_SYMBOL_PRINT(Title, Type, Value, Location) \ ++do { \ ++ if (yydebug) \ ++ { \ ++ YYFPRINTF (stderr, "%s ", Title); \ ++ yy_symbol_print (stderr, \ ++ Type, Value); \ ++ YYFPRINTF (stderr, "\n"); \ ++ } \ ++} while (YYID (0)) + + +-# define YY_SYMBOL_PRINT(Title, Type, Value, Location) \ +-do { \ +- if (yydebug) \ +- { \ +- YYFPRINTF (stderr, "%s ", Title); \ +- yy_symbol_print (stderr, \ +- Type, Value); \ +- YYFPRINTF (stderr, "\n"); \ +- } \ +-} while (0) +- +- +-/*----------------------------------------. +-| Print this symbol's value on YYOUTPUT. | +-`----------------------------------------*/ ++/*--------------------------------. ++| Print this symbol on YYOUTPUT. | ++`--------------------------------*/ + ++/*ARGSUSED*/ ++#if (defined __STDC__ || defined __C99__FUNC__ \ ++ || defined __cplusplus || defined _MSC_VER) + static void + yy_symbol_value_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep) ++#else ++static void ++yy_symbol_value_print (yyoutput, yytype, yyvaluep) ++ FILE *yyoutput; ++ int yytype; ++ YYSTYPE const * const yyvaluep; ++#endif + { +- FILE *yyo = yyoutput; +- YYUSE (yyo); + if (!yyvaluep) + return; + # ifdef YYPRINT + if (yytype < YYNTOKENS) + YYPRINT (yyoutput, yytoknum[yytype], *yyvaluep); ++# else ++ YYUSE (yyoutput); + # endif +- YYUSE (yytype); ++ switch (yytype) ++ { ++ default: ++ break; ++ } + } + + +@@ -2055,11 +2324,22 @@ + | Print this symbol on YYOUTPUT. | + `--------------------------------*/ + ++#if (defined __STDC__ || defined __C99__FUNC__ \ ++ || defined __cplusplus || defined _MSC_VER) + static void + yy_symbol_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep) ++#else ++static void ++yy_symbol_print (yyoutput, yytype, yyvaluep) ++ FILE *yyoutput; ++ int yytype; ++ YYSTYPE const * const yyvaluep; ++#endif + { +- YYFPRINTF (yyoutput, "%s %s (", +- yytype < YYNTOKENS ? "token" : "nterm", yytname[yytype]); ++ if (yytype < YYNTOKENS) ++ YYFPRINTF (yyoutput, "token %s (", yytname[yytype]); ++ else ++ YYFPRINTF (yyoutput, "nterm %s (", yytname[yytype]); + + yy_symbol_value_print (yyoutput, yytype, yyvaluep); + YYFPRINTF (yyoutput, ")"); +@@ -2070,8 +2350,16 @@ + | TOP (included). | + `------------------------------------------------------------------*/ + ++#if (defined __STDC__ || defined __C99__FUNC__ \ ++ || defined __cplusplus || defined _MSC_VER) + static void + yy_stack_print (yytype_int16 *yybottom, yytype_int16 *yytop) ++#else ++static void ++yy_stack_print (yybottom, yytop) ++ yytype_int16 *yybottom; ++ yytype_int16 *yytop; ++#endif + { + YYFPRINTF (stderr, "Stack now"); + for (; yybottom <= yytop; yybottom++) +@@ -2082,42 +2370,49 @@ + YYFPRINTF (stderr, "\n"); + } + +-# define YY_STACK_PRINT(Bottom, Top) \ +-do { \ +- if (yydebug) \ +- yy_stack_print ((Bottom), (Top)); \ +-} while (0) ++# define YY_STACK_PRINT(Bottom, Top) \ ++do { \ ++ if (yydebug) \ ++ yy_stack_print ((Bottom), (Top)); \ ++} while (YYID (0)) + + + /*------------------------------------------------. + | Report that the YYRULE is going to be reduced. | + `------------------------------------------------*/ + ++#if (defined __STDC__ || defined __C99__FUNC__ \ ++ || defined __cplusplus || defined _MSC_VER) ++static void ++yy_reduce_print (YYSTYPE *yyvsp, int yyrule) ++#else + static void +-yy_reduce_print (yytype_int16 *yyssp, YYSTYPE *yyvsp, int yyrule) ++yy_reduce_print (yyvsp, yyrule) ++ YYSTYPE *yyvsp; ++ int yyrule; ++#endif + { +- unsigned long int yylno = yyrline[yyrule]; + int yynrhs = yyr2[yyrule]; + int yyi; ++ unsigned long int yylno = yyrline[yyrule]; + YYFPRINTF (stderr, "Reducing stack by rule %d (line %lu):\n", +- yyrule - 1, yylno); ++ yyrule - 1, yylno); + /* The symbols being reduced. */ + for (yyi = 0; yyi < yynrhs; yyi++) + { + YYFPRINTF (stderr, " $%d = ", yyi + 1); +- yy_symbol_print (stderr, +- yystos[yyssp[yyi + 1 - yynrhs]], +- &(yyvsp[(yyi + 1) - (yynrhs)]) +- ); ++ yy_symbol_print (stderr, yyrhs[yyprhs[yyrule] + yyi], ++ &(yyvsp[(yyi + 1) - (yynrhs)]) ++ ); + YYFPRINTF (stderr, "\n"); + } + } + +-# define YY_REDUCE_PRINT(Rule) \ +-do { \ +- if (yydebug) \ +- yy_reduce_print (yyssp, yyvsp, Rule); \ +-} while (0) ++# define YY_REDUCE_PRINT(Rule) \ ++do { \ ++ if (yydebug) \ ++ yy_reduce_print (yyvsp, Rule); \ ++} while (YYID (0)) + + /* Nonzero means print parse trace. It is left uninitialized so that + multiple parsers can coexist. */ +@@ -2131,7 +2426,7 @@ + + + /* YYINITDEPTH -- initial size of the parser's stacks. */ +-#ifndef YYINITDEPTH ++#ifndef YYINITDEPTH + # define YYINITDEPTH 200 + #endif + +@@ -2154,8 +2449,15 @@ + # define yystrlen strlen + # else + /* Return the length of YYSTR. */ ++#if (defined __STDC__ || defined __C99__FUNC__ \ ++ || defined __cplusplus || defined _MSC_VER) + static YYSIZE_T + yystrlen (const char *yystr) ++#else ++static YYSIZE_T ++yystrlen (yystr) ++ const char *yystr; ++#endif + { + YYSIZE_T yylen; + for (yylen = 0; yystr[yylen]; yylen++) +@@ -2171,8 +2473,16 @@ + # else + /* Copy YYSRC to YYDEST, returning the address of the terminating '\0' in + YYDEST. */ ++#if (defined __STDC__ || defined __C99__FUNC__ \ ++ || defined __cplusplus || defined _MSC_VER) + static char * + yystpcpy (char *yydest, const char *yysrc) ++#else ++static char * ++yystpcpy (yydest, yysrc) ++ char *yydest; ++ const char *yysrc; ++#endif + { + char *yyd = yydest; + const char *yys = yysrc; +@@ -2202,27 +2512,27 @@ + char const *yyp = yystr; + + for (;;) +- switch (*++yyp) +- { +- case '\'': +- case ',': +- goto do_not_strip_quotes; +- +- case '\\': +- if (*++yyp != '\\') +- goto do_not_strip_quotes; +- /* Fall through. */ +- default: +- if (yyres) +- yyres[yyn] = *yyp; +- yyn++; +- break; +- +- case '"': +- if (yyres) +- yyres[yyn] = '\0'; +- return yyn; +- } ++ switch (*++yyp) ++ { ++ case '\'': ++ case ',': ++ goto do_not_strip_quotes; ++ ++ case '\\': ++ if (*++yyp != '\\') ++ goto do_not_strip_quotes; ++ /* Fall through. */ ++ default: ++ if (yyres) ++ yyres[yyn] = *yyp; ++ yyn++; ++ break; ++ ++ case '"': ++ if (yyres) ++ yyres[yyn] = '\0'; ++ return yyn; ++ } + do_not_strip_quotes: ; + } + +@@ -2245,11 +2555,12 @@ + yysyntax_error (YYSIZE_T *yymsg_alloc, char **yymsg, + yytype_int16 *yyssp, int yytoken) + { +- YYSIZE_T yysize0 = yytnamerr (YY_NULLPTR, yytname[yytoken]); ++ YYSIZE_T yysize0 = yytnamerr (0, yytname[yytoken]); + YYSIZE_T yysize = yysize0; ++ YYSIZE_T yysize1; + enum { YYERROR_VERBOSE_ARGS_MAXIMUM = 5 }; + /* Internationalized format string. */ +- const char *yyformat = YY_NULLPTR; ++ const char *yyformat = 0; + /* Arguments of yyformat. */ + char const *yyarg[YYERROR_VERBOSE_ARGS_MAXIMUM]; + /* Number of reported tokens (one for the "unexpected", one per +@@ -2257,6 +2568,10 @@ + int yycount = 0; + + /* There are many possibilities here to consider: ++ - Assume YYFAIL is not used. It's too flawed to consider. See ++ <http://lists.gnu.org/archive/html/bison-patches/2009-12/msg00024.html> ++ for details. YYERROR is fine as it does not invoke this ++ function. + - If this state is a consistent state with a default action, then + the only way this function was invoked is if the default action + is an error action. In that case, don't check for expected +@@ -2305,13 +2620,11 @@ + break; + } + yyarg[yycount++] = yytname[yyx]; +- { +- YYSIZE_T yysize1 = yysize + yytnamerr (YY_NULLPTR, yytname[yyx]); +- if (! (yysize <= yysize1 +- && yysize1 <= YYSTACK_ALLOC_MAXIMUM)) +- return 2; +- yysize = yysize1; +- } ++ yysize1 = yysize + yytnamerr (0, yytname[yyx]); ++ if (! (yysize <= yysize1 ++ && yysize1 <= YYSTACK_ALLOC_MAXIMUM)) ++ return 2; ++ yysize = yysize1; + } + } + } +@@ -2331,12 +2644,10 @@ + # undef YYCASE_ + } + +- { +- YYSIZE_T yysize1 = yysize + yystrlen (yyformat); +- if (! (yysize <= yysize1 && yysize1 <= YYSTACK_ALLOC_MAXIMUM)) +- return 2; +- yysize = yysize1; +- } ++ yysize1 = yysize + yystrlen (yyformat); ++ if (! (yysize <= yysize1 && yysize1 <= YYSTACK_ALLOC_MAXIMUM)) ++ return 2; ++ yysize = yysize1; + + if (*yymsg_alloc < yysize) + { +@@ -2373,20 +2684,48 @@ + | Release the memory associated to this symbol. | + `-----------------------------------------------*/ + ++/*ARGSUSED*/ ++#if (defined __STDC__ || defined __C99__FUNC__ \ ++ || defined __cplusplus || defined _MSC_VER) + static void + yydestruct (const char *yymsg, int yytype, YYSTYPE *yyvaluep) ++#else ++static void ++yydestruct (yymsg, yytype, yyvaluep) ++ const char *yymsg; ++ int yytype; ++ YYSTYPE *yyvaluep; ++#endif + { + YYUSE (yyvaluep); ++ + if (!yymsg) + yymsg = "Deleting"; + YY_SYMBOL_PRINT (yymsg, yytype, yyvaluep, yylocationp); + +- YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN +- YYUSE (yytype); +- YY_IGNORE_MAYBE_UNINITIALIZED_END ++ switch (yytype) ++ { ++ ++ default: ++ break; ++ } + } + + ++/* Prevent warnings from -Wmissing-prototypes. */ ++#ifdef YYPARSE_PARAM ++#if defined __STDC__ || defined __cplusplus ++int yyparse (void *YYPARSE_PARAM); ++#else ++int yyparse (); ++#endif ++#else /* ! YYPARSE_PARAM */ ++#if defined __STDC__ || defined __cplusplus ++int yyparse (void); ++#else ++int yyparse (); ++#endif ++#endif /* ! YYPARSE_PARAM */ + + + /* The lookahead symbol. */ +@@ -2394,6 +2733,7 @@ + + /* The semantic value of the lookahead symbol. */ + YYSTYPE yylval; ++ + /* Number of syntax errors so far. */ + int yynerrs; + +@@ -2402,18 +2742,37 @@ + | yyparse. | + `----------*/ + ++#ifdef YYPARSE_PARAM ++#if (defined __STDC__ || defined __C99__FUNC__ \ ++ || defined __cplusplus || defined _MSC_VER) ++int ++yyparse (void *YYPARSE_PARAM) ++#else ++int ++yyparse (YYPARSE_PARAM) ++ void *YYPARSE_PARAM; ++#endif ++#else /* ! YYPARSE_PARAM */ ++#if (defined __STDC__ || defined __C99__FUNC__ \ ++ || defined __cplusplus || defined _MSC_VER) + int + yyparse (void) ++#else ++int ++yyparse () ++ ++#endif ++#endif + { + int yystate; + /* Number of tokens to shift before error messages enabled. */ + int yyerrstatus; + + /* The stacks and their tools: +- 'yyss': related to states. +- 'yyvs': related to semantic values. ++ `yyss': related to states. ++ `yyvs': related to semantic values. + +- Refer to the stacks through separate pointers, to allow yyoverflow ++ Refer to the stacks thru separate pointers, to allow yyoverflow + to reallocate them elsewhere. */ + + /* The state stack. */ +@@ -2431,7 +2790,7 @@ + int yyn; + int yyresult; + /* Lookahead token as an internal (translated) token number. */ +- int yytoken = 0; ++ int yytoken; + /* The variables used to return semantic value and location from the + action routines. */ + YYSTYPE yyval; +@@ -2449,8 +2808,9 @@ + Keep to zero when no symbol should be popped. */ + int yylen = 0; + +- yyssp = yyss = yyssa; +- yyvsp = yyvs = yyvsa; ++ yytoken = 0; ++ yyss = yyssa; ++ yyvs = yyvsa; + yystacksize = YYINITDEPTH; + + YYDPRINTF ((stderr, "Starting parse\n")); +@@ -2459,6 +2819,14 @@ + yyerrstatus = 0; + yynerrs = 0; + yychar = YYEMPTY; /* Cause a token to be read. */ ++ ++ /* Initialize stack pointers. ++ Waste one element of value and location stack ++ so that they stay on the same level as the state stack. ++ The wasted elements are never initialized. */ ++ yyssp = yyss; ++ yyvsp = yyvs; ++ + goto yysetstate; + + /*------------------------------------------------------------. +@@ -2479,23 +2847,23 @@ + + #ifdef yyoverflow + { +- /* Give user a chance to reallocate the stack. Use copies of +- these so that the &'s don't force the real ones into +- memory. */ +- YYSTYPE *yyvs1 = yyvs; +- yytype_int16 *yyss1 = yyss; +- +- /* Each stack pointer address is followed by the size of the +- data in use in that stack, in bytes. This used to be a +- conditional around just the two extra args, but that might +- be undefined if yyoverflow is a macro. */ +- yyoverflow (YY_("memory exhausted"), +- &yyss1, yysize * sizeof (*yyssp), +- &yyvs1, yysize * sizeof (*yyvsp), +- &yystacksize); ++ /* Give user a chance to reallocate the stack. Use copies of ++ these so that the &'s don't force the real ones into ++ memory. */ ++ YYSTYPE *yyvs1 = yyvs; ++ yytype_int16 *yyss1 = yyss; ++ ++ /* Each stack pointer address is followed by the size of the ++ data in use in that stack, in bytes. This used to be a ++ conditional around just the two extra args, but that might ++ be undefined if yyoverflow is a macro. */ ++ yyoverflow (YY_("memory exhausted"), ++ &yyss1, yysize * sizeof (*yyssp), ++ &yyvs1, yysize * sizeof (*yyvsp), ++ &yystacksize); + +- yyss = yyss1; +- yyvs = yyvs1; ++ yyss = yyss1; ++ yyvs = yyvs1; + } + #else /* no yyoverflow */ + # ifndef YYSTACK_RELOCATE +@@ -2503,22 +2871,22 @@ + # else + /* Extend the stack our own way. */ + if (YYMAXDEPTH <= yystacksize) +- goto yyexhaustedlab; ++ goto yyexhaustedlab; + yystacksize *= 2; + if (YYMAXDEPTH < yystacksize) +- yystacksize = YYMAXDEPTH; ++ yystacksize = YYMAXDEPTH; + + { +- yytype_int16 *yyss1 = yyss; +- union yyalloc *yyptr = +- (union yyalloc *) YYSTACK_ALLOC (YYSTACK_BYTES (yystacksize)); +- if (! yyptr) +- goto yyexhaustedlab; +- YYSTACK_RELOCATE (yyss_alloc, yyss); +- YYSTACK_RELOCATE (yyvs_alloc, yyvs); ++ yytype_int16 *yyss1 = yyss; ++ union yyalloc *yyptr = ++ (union yyalloc *) YYSTACK_ALLOC (YYSTACK_BYTES (yystacksize)); ++ if (! yyptr) ++ goto yyexhaustedlab; ++ YYSTACK_RELOCATE (yyss_alloc, yyss); ++ YYSTACK_RELOCATE (yyvs_alloc, yyvs); + # undef YYSTACK_RELOCATE +- if (yyss1 != yyssa) +- YYSTACK_FREE (yyss1); ++ if (yyss1 != yyssa) ++ YYSTACK_FREE (yyss1); + } + # endif + #endif /* no yyoverflow */ +@@ -2527,10 +2895,10 @@ + yyvsp = yyvs + yysize - 1; + + YYDPRINTF ((stderr, "Stack size increased to %lu\n", +- (unsigned long int) yystacksize)); ++ (unsigned long int) yystacksize)); + + if (yyss + yystacksize - 1 <= yyssp) +- YYABORT; ++ YYABORT; + } + + YYDPRINTF ((stderr, "Entering state %d\n", yystate)); +@@ -2559,7 +2927,7 @@ + if (yychar == YYEMPTY) + { + YYDPRINTF ((stderr, "Reading a token: ")); +- yychar = yylex (); ++ yychar = YYLEX; + } + + if (yychar <= YYEOF) +@@ -2599,9 +2967,7 @@ + yychar = YYEMPTY; + + yystate = yyn; +- YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN + *++yyvsp = yylval; +- YY_IGNORE_MAYBE_UNINITIALIZED_END + + goto yynewstate; + +@@ -2624,7 +2990,7 @@ + yylen = yyr2[yyn]; + + /* If YYLEN is nonzero, implement the default value of the action: +- '$$ = $1'. ++ `$$ = $1'. + + Otherwise, the following line sets YYVAL to garbage. + This behavior is undocumented and Bison +@@ -2638,195 +3004,218 @@ + switch (yyn) + { + case 155: +-#line 497 "src/p.y" /* yacc.c:1646 */ ++ ++/* Line 1806 of yacc.c */ ++#line 497 "src/p.y" + { + mailset.events = Event_All; +- addmail((yyvsp[-2].string), &mailset, &Run.maillist); ++ addmail((yyvsp[(2) - (4)].string), &mailset, &Run.maillist); + } +-#line 2646 "src/y.tab.c" /* yacc.c:1646 */ + break; + + case 156: +-#line 501 "src/p.y" /* yacc.c:1646 */ ++ ++/* Line 1806 of yacc.c */ ++#line 501 "src/p.y" + { +- addmail((yyvsp[-5].string), &mailset, &Run.maillist); ++ addmail((yyvsp[(2) - (7)].string), &mailset, &Run.maillist); + } +-#line 2654 "src/y.tab.c" /* yacc.c:1646 */ + break; + + case 157: +-#line 504 "src/p.y" /* yacc.c:1646 */ ++ ++/* Line 1806 of yacc.c */ ++#line 504 "src/p.y" + { + mailset.events = ~mailset.events; +- addmail((yyvsp[-6].string), &mailset, &Run.maillist); ++ addmail((yyvsp[(2) - (8)].string), &mailset, &Run.maillist); + } +-#line 2663 "src/y.tab.c" /* yacc.c:1646 */ + break; + + case 158: +-#line 510 "src/p.y" /* yacc.c:1646 */ ++ ++/* Line 1806 of yacc.c */ ++#line 510 "src/p.y" + { + if (!Run.isdaemon || ihp.daemon) { + ihp.daemon = TRUE; + Run.isdaemon = TRUE; +- Run.polltime = (yyvsp[-1].number); +- Run.startdelay = (yyvsp[0].number); ++ Run.polltime = (yyvsp[(3) - (4)].number); ++ Run.startdelay = (yyvsp[(4) - (4)].number); + } + } +-#line 2676 "src/y.tab.c" /* yacc.c:1646 */ + break; + + case 159: +-#line 520 "src/p.y" /* yacc.c:1646 */ ++ ++/* Line 1806 of yacc.c */ ++#line 520 "src/p.y" + { (yyval.number) = START_DELAY; } +-#line 2682 "src/y.tab.c" /* yacc.c:1646 */ + break; + + case 160: +-#line 521 "src/p.y" /* yacc.c:1646 */ +- { (yyval.number) = (yyvsp[0].number); } +-#line 2688 "src/y.tab.c" /* yacc.c:1646 */ ++ ++/* Line 1806 of yacc.c */ ++#line 521 "src/p.y" ++ { (yyval.number) = (yyvsp[(3) - (3)].number); } + break; + + case 161: +-#line 524 "src/p.y" /* yacc.c:1646 */ ++ ++/* Line 1806 of yacc.c */ ++#line 524 "src/p.y" + { +- Run.expectbuffer = (yyvsp[-1].number) * (yyvsp[0].number); ++ Run.expectbuffer = (yyvsp[(3) - (4)].number) * (yyvsp[(4) - (4)].number); + if (Run.expectbuffer > EXPECT_BUFFER_MAX) + yyerror("Maximum value for expect buffer is 100 KB"); + } +-#line 2698 "src/y.tab.c" /* yacc.c:1646 */ + break; + + case 162: +-#line 531 "src/p.y" /* yacc.c:1646 */ ++ ++/* Line 1806 of yacc.c */ ++#line 531 "src/p.y" + { + Run.init = TRUE; + } +-#line 2706 "src/y.tab.c" /* yacc.c:1646 */ + break; + + case 163: +-#line 536 "src/p.y" /* yacc.c:1646 */ ++ ++/* Line 1806 of yacc.c */ ++#line 536 "src/p.y" + { + #ifdef OPENSSL_FIPS + Run.fipsEnabled = TRUE; + #endif + } +-#line 2716 "src/y.tab.c" /* yacc.c:1646 */ + break; + + case 164: +-#line 543 "src/p.y" /* yacc.c:1646 */ ++ ++/* Line 1806 of yacc.c */ ++#line 543 "src/p.y" + { + if (!Run.logfile || ihp.logfile) { + ihp.logfile = TRUE; +- setlogfile((yyvsp[0].string)); ++ setlogfile((yyvsp[(3) - (3)].string)); + Run.use_syslog = FALSE; + Run.dolog =TRUE; + } + } +-#line 2729 "src/y.tab.c" /* yacc.c:1646 */ + break; + + case 165: +-#line 551 "src/p.y" /* yacc.c:1646 */ ++ ++/* Line 1806 of yacc.c */ ++#line 551 "src/p.y" + { + setsyslog(NULL); + } +-#line 2737 "src/y.tab.c" /* yacc.c:1646 */ + break; + + case 166: +-#line 554 "src/p.y" /* yacc.c:1646 */ ++ ++/* Line 1806 of yacc.c */ ++#line 554 "src/p.y" + { +- setsyslog((yyvsp[0].string)); FREE((yyvsp[0].string)); ++ setsyslog((yyvsp[(5) - (5)].string)); FREE((yyvsp[(5) - (5)].string)); + } +-#line 2745 "src/y.tab.c" /* yacc.c:1646 */ + break; + + case 167: +-#line 559 "src/p.y" /* yacc.c:1646 */ ++ ++/* Line 1806 of yacc.c */ ++#line 559 "src/p.y" + { +- Run.eventlist_dir = (yyvsp[0].string); ++ Run.eventlist_dir = (yyvsp[(4) - (4)].string); + } +-#line 2753 "src/y.tab.c" /* yacc.c:1646 */ + break; + + case 168: +-#line 562 "src/p.y" /* yacc.c:1646 */ ++ ++/* Line 1806 of yacc.c */ ++#line 562 "src/p.y" + { +- Run.eventlist_dir = (yyvsp[-2].string); +- Run.eventlist_slots = (yyvsp[0].number); ++ Run.eventlist_dir = (yyvsp[(4) - (6)].string); ++ Run.eventlist_slots = (yyvsp[(6) - (6)].number); + } +-#line 2762 "src/y.tab.c" /* yacc.c:1646 */ + break; + + case 169: +-#line 566 "src/p.y" /* yacc.c:1646 */ ++ ++/* Line 1806 of yacc.c */ ++#line 566 "src/p.y" + { + Run.eventlist_dir = Str_dup(MYEVENTLISTBASE); +- Run.eventlist_slots = (yyvsp[0].number); ++ Run.eventlist_slots = (yyvsp[(4) - (4)].number); + } +-#line 2771 "src/y.tab.c" /* yacc.c:1646 */ + break; + + case 170: +-#line 572 "src/p.y" /* yacc.c:1646 */ ++ ++/* Line 1806 of yacc.c */ ++#line 572 "src/p.y" + { +- Run.idfile = (yyvsp[0].string); ++ Run.idfile = (yyvsp[(3) - (3)].string); + } +-#line 2779 "src/y.tab.c" /* yacc.c:1646 */ + break; + + case 171: +-#line 577 "src/p.y" /* yacc.c:1646 */ ++ ++/* Line 1806 of yacc.c */ ++#line 577 "src/p.y" + { +- Run.statefile = (yyvsp[0].string); ++ Run.statefile = (yyvsp[(3) - (3)].string); + } +-#line 2787 "src/y.tab.c" /* yacc.c:1646 */ + break; + + case 172: +-#line 582 "src/p.y" /* yacc.c:1646 */ ++ ++/* Line 1806 of yacc.c */ ++#line 582 "src/p.y" + { + if (!Run.pidfile || ihp.pidfile) { + ihp.pidfile = TRUE; +- setpidfile((yyvsp[0].string)); ++ setpidfile((yyvsp[(3) - (3)].string)); + } + } +-#line 2798 "src/y.tab.c" /* yacc.c:1646 */ + break; + + case 176: +-#line 597 "src/p.y" /* yacc.c:1646 */ ++ ++/* Line 1806 of yacc.c */ ++#line 597 "src/p.y" + { +- check_hostname(((yyvsp[-3].url))->hostname); +- addmmonit((yyvsp[-3].url), (yyvsp[-2].number), (yyvsp[-1].number), (yyvsp[0].string)); ++ check_hostname(((yyvsp[(1) - (4)].url))->hostname); ++ addmmonit((yyvsp[(1) - (4)].url), (yyvsp[(2) - (4)].number), (yyvsp[(3) - (4)].number), (yyvsp[(4) - (4)].string)); + } +-#line 2807 "src/y.tab.c" /* yacc.c:1646 */ + break; + + case 178: +-#line 604 "src/p.y" /* yacc.c:1646 */ ++ ++/* Line 1806 of yacc.c */ ++#line 604 "src/p.y" + { + Run.dommonitcredentials = FALSE; + } +-#line 2815 "src/y.tab.c" /* yacc.c:1646 */ + break; + + case 179: +-#line 609 "src/p.y" /* yacc.c:1646 */ ++ ++/* Line 1806 of yacc.c */ ++#line 609 "src/p.y" + { +- if (((yyvsp[-1].number)) > SMTP_TIMEOUT) +- Run.mailserver_timeout = (yyvsp[-1].number); +- Run.mail_hostname = (yyvsp[0].string); ++ if (((yyvsp[(4) - (5)].number)) > SMTP_TIMEOUT) ++ Run.mailserver_timeout = (yyvsp[(4) - (5)].number); ++ Run.mail_hostname = (yyvsp[(5) - (5)].string); + } +-#line 2825 "src/y.tab.c" /* yacc.c:1646 */ + break; + + case 180: +-#line 616 "src/p.y" /* yacc.c:1646 */ ++ ++/* Line 1806 of yacc.c */ ++#line 616 "src/p.y" + { + Run.MailFormat.from = mailset.from ? mailset.from : Str_dup(ALERT_FROM); + Run.MailFormat.replyto = mailset.replyto ? mailset.replyto : NULL; +@@ -2834,73 +3223,78 @@ + Run.MailFormat.message = mailset.message ? mailset.message : Str_dup(ALERT_MESSAGE); + reset_mailset(); + } +-#line 2837 "src/y.tab.c" /* yacc.c:1646 */ + break; + + case 181: +-#line 625 "src/p.y" /* yacc.c:1646 */ ++ ++/* Line 1806 of yacc.c */ ++#line 625 "src/p.y" + { + Run.dohttpd = TRUE; +- Run.httpdport = (yyvsp[-1].number); ++ Run.httpdport = (yyvsp[(4) - (5)].number); + } +-#line 2846 "src/y.tab.c" /* yacc.c:1646 */ + break; + + case 184: +-#line 635 "src/p.y" /* yacc.c:1646 */ ++ ++/* Line 1806 of yacc.c */ ++#line 635 "src/p.y" + { + /* Restore the current text overriden by lookahead */ + FREE(argyytext); +- argyytext = Str_dup((yyvsp[-4].string)); ++ argyytext = Str_dup((yyvsp[(1) - (5)].string)); + +- check_hostname((yyvsp[-4].string)); +- mailserverset.host = (yyvsp[-4].string); +- mailserverset.username = (yyvsp[-3].string); +- mailserverset.password = (yyvsp[-2].string); +- mailserverset.ssl.version = (yyvsp[-1].number); ++ check_hostname((yyvsp[(1) - (5)].string)); ++ mailserverset.host = (yyvsp[(1) - (5)].string); ++ mailserverset.username = (yyvsp[(2) - (5)].string); ++ mailserverset.password = (yyvsp[(3) - (5)].string); ++ mailserverset.ssl.version = (yyvsp[(4) - (5)].number); + if (mailserverset.ssl.version != SSL_VERSION_NONE) { + mailserverset.ssl.use_ssl = TRUE; + if (mailserverset.ssl.version == SSL_VERSION_SSLV2 || mailserverset.ssl.version == SSL_VERSION_SSLV3) + mailserverset.port = PORT_SMTPS; +- mailserverset.ssl.certmd5 = (yyvsp[0].string); ++ mailserverset.ssl.certmd5 = (yyvsp[(5) - (5)].string); + } + addmailserver(&mailserverset); + } +-#line 2869 "src/y.tab.c" /* yacc.c:1646 */ + break; + + case 185: +-#line 653 "src/p.y" /* yacc.c:1646 */ ++ ++/* Line 1806 of yacc.c */ ++#line 653 "src/p.y" + { + /* Restore the current text overriden by lookahead */ + FREE(argyytext); +- argyytext = Str_dup((yyvsp[-6].string)); ++ argyytext = Str_dup((yyvsp[(1) - (7)].string)); + +- check_hostname((yyvsp[-6].string)); +- mailserverset.host = (yyvsp[-6].string); +- mailserverset.port = (yyvsp[-4].number); +- mailserverset.username = (yyvsp[-3].string); +- mailserverset.password = (yyvsp[-2].string); +- mailserverset.ssl.version = (yyvsp[-1].number); ++ check_hostname((yyvsp[(1) - (7)].string)); ++ mailserverset.host = (yyvsp[(1) - (7)].string); ++ mailserverset.port = (yyvsp[(3) - (7)].number); ++ mailserverset.username = (yyvsp[(4) - (7)].string); ++ mailserverset.password = (yyvsp[(5) - (7)].string); ++ mailserverset.ssl.version = (yyvsp[(6) - (7)].number); + if (mailserverset.ssl.version != SSL_VERSION_NONE) { + mailserverset.ssl.use_ssl = TRUE; +- mailserverset.ssl.certmd5 = (yyvsp[0].string); ++ mailserverset.ssl.certmd5 = (yyvsp[(7) - (7)].string); + } + addmailserver(&mailserverset); + } +-#line 2891 "src/y.tab.c" /* yacc.c:1646 */ + break; + + case 192: +-#line 682 "src/p.y" /* yacc.c:1646 */ ++ ++/* Line 1806 of yacc.c */ ++#line 682 "src/p.y" + { + Run.httpdssl = FALSE; + } +-#line 2899 "src/y.tab.c" /* yacc.c:1646 */ + break; + + case 193: +-#line 685 "src/p.y" /* yacc.c:1646 */ ++ ++/* Line 1806 of yacc.c */ ++#line 685 "src/p.y" + { + Run.httpdssl = TRUE; + if (! have_ssl()) +@@ -2910,2303 +3304,2585 @@ + else if (! file_checkStat(Run.httpsslpem, "SSL server PEM file", S_IRWXU)) + yyerror("SSL server PEM file permissions check failed"); + } +-#line 2913 "src/y.tab.c" /* yacc.c:1646 */ + break; + + case 203: +-#line 713 "src/p.y" /* yacc.c:1646 */ ++ ++/* Line 1806 of yacc.c */ ++#line 713 "src/p.y" + { Run.httpdsig = TRUE; } +-#line 2919 "src/y.tab.c" /* yacc.c:1646 */ + break; + + case 204: +-#line 714 "src/p.y" /* yacc.c:1646 */ ++ ++/* Line 1806 of yacc.c */ ++#line 714 "src/p.y" + { Run.httpdsig = FALSE; } +-#line 2925 "src/y.tab.c" /* yacc.c:1646 */ + break; + + case 209: +-#line 725 "src/p.y" /* yacc.c:1646 */ +- { Run.bind_addr = (yyvsp[0].string); } +-#line 2931 "src/y.tab.c" /* yacc.c:1646 */ ++ ++/* Line 1806 of yacc.c */ ++#line 725 "src/p.y" ++ { Run.bind_addr = (yyvsp[(2) - (2)].string); } + break; + + case 210: +-#line 728 "src/p.y" /* yacc.c:1646 */ ++ ++/* Line 1806 of yacc.c */ ++#line 728 "src/p.y" + { +- Run.httpsslpem = (yyvsp[0].string); ++ Run.httpsslpem = (yyvsp[(2) - (2)].string); + } +-#line 2939 "src/y.tab.c" /* yacc.c:1646 */ + break; + + case 211: +-#line 733 "src/p.y" /* yacc.c:1646 */ ++ ++/* Line 1806 of yacc.c */ ++#line 733 "src/p.y" + { +- Run.httpsslclientpem = (yyvsp[0].string); ++ Run.httpsslclientpem = (yyvsp[(2) - (2)].string); + Run.clientssl = TRUE; + if (!file_checkStat(Run.httpsslclientpem, "SSL client PEM file", S_IRWXU | S_IRGRP | S_IROTH)) + yyerror2("SSL client PEM file has too loose permissions"); + } +-#line 2950 "src/y.tab.c" /* yacc.c:1646 */ + break; + + case 212: +-#line 741 "src/p.y" /* yacc.c:1646 */ ++ ++/* Line 1806 of yacc.c */ ++#line 741 "src/p.y" + { + Run.allowselfcert = TRUE; + } +-#line 2958 "src/y.tab.c" /* yacc.c:1646 */ + break; + + case 213: +-#line 746 "src/p.y" /* yacc.c:1646 */ ++ ++/* Line 1806 of yacc.c */ ++#line 746 "src/p.y" + { +- addcredentials((yyvsp[-3].string),(yyvsp[-1].string), DIGEST_CLEARTEXT, (yyvsp[0].number)); ++ addcredentials((yyvsp[(2) - (5)].string),(yyvsp[(4) - (5)].string), DIGEST_CLEARTEXT, (yyvsp[(5) - (5)].number)); + } +-#line 2966 "src/y.tab.c" /* yacc.c:1646 */ + break; + + case 214: +-#line 749 "src/p.y" /* yacc.c:1646 */ ++ ++/* Line 1806 of yacc.c */ ++#line 749 "src/p.y" + { + #ifdef HAVE_LIBPAM +- addpamauth((yyvsp[-1].string), (yyvsp[0].number)); ++ addpamauth((yyvsp[(3) - (4)].string), (yyvsp[(4) - (4)].number)); + #else + yyerror("PAM is not supported"); +- FREE((yyvsp[-1].string)); ++ FREE((yyvsp[(3) - (4)].string)); + #endif + } +-#line 2979 "src/y.tab.c" /* yacc.c:1646 */ + break; + + case 215: +-#line 757 "src/p.y" /* yacc.c:1646 */ ++ ++/* Line 1806 of yacc.c */ ++#line 757 "src/p.y" + { +- addhtpasswdentry((yyvsp[0].string), NULL, DIGEST_CLEARTEXT); +- FREE((yyvsp[0].string)); ++ addhtpasswdentry((yyvsp[(2) - (2)].string), NULL, DIGEST_CLEARTEXT); ++ FREE((yyvsp[(2) - (2)].string)); + } +-#line 2988 "src/y.tab.c" /* yacc.c:1646 */ + break; + + case 216: +-#line 761 "src/p.y" /* yacc.c:1646 */ ++ ++/* Line 1806 of yacc.c */ ++#line 761 "src/p.y" + { +- addhtpasswdentry((yyvsp[0].string), NULL, DIGEST_CLEARTEXT); +- FREE((yyvsp[0].string)); ++ addhtpasswdentry((yyvsp[(3) - (3)].string), NULL, DIGEST_CLEARTEXT); ++ FREE((yyvsp[(3) - (3)].string)); + } +-#line 2997 "src/y.tab.c" /* yacc.c:1646 */ + break; + + case 217: +-#line 765 "src/p.y" /* yacc.c:1646 */ ++ ++/* Line 1806 of yacc.c */ ++#line 765 "src/p.y" + { +- addhtpasswdentry((yyvsp[0].string), NULL, DIGEST_MD5); +- FREE((yyvsp[0].string)); ++ addhtpasswdentry((yyvsp[(3) - (3)].string), NULL, DIGEST_MD5); ++ FREE((yyvsp[(3) - (3)].string)); + } +-#line 3006 "src/y.tab.c" /* yacc.c:1646 */ + break; + + case 218: +-#line 769 "src/p.y" /* yacc.c:1646 */ ++ ++/* Line 1806 of yacc.c */ ++#line 769 "src/p.y" + { +- addhtpasswdentry((yyvsp[0].string), NULL, DIGEST_CRYPT); +- FREE((yyvsp[0].string)); ++ addhtpasswdentry((yyvsp[(3) - (3)].string), NULL, DIGEST_CRYPT); ++ FREE((yyvsp[(3) - (3)].string)); + } +-#line 3015 "src/y.tab.c" /* yacc.c:1646 */ + break; + + case 219: +-#line 773 "src/p.y" /* yacc.c:1646 */ ++ ++/* Line 1806 of yacc.c */ ++#line 773 "src/p.y" + { +- htpasswd_file = (yyvsp[0].string); ++ htpasswd_file = (yyvsp[(2) - (2)].string); + digesttype = CLEARTEXT; + } +-#line 3024 "src/y.tab.c" /* yacc.c:1646 */ + break; + + case 220: +-#line 777 "src/p.y" /* yacc.c:1646 */ ++ ++/* Line 1806 of yacc.c */ ++#line 777 "src/p.y" + { + FREE(htpasswd_file); + } +-#line 3032 "src/y.tab.c" /* yacc.c:1646 */ + break; + + case 221: +-#line 780 "src/p.y" /* yacc.c:1646 */ ++ ++/* Line 1806 of yacc.c */ ++#line 780 "src/p.y" + { +- htpasswd_file = (yyvsp[0].string); ++ htpasswd_file = (yyvsp[(3) - (3)].string); + digesttype = DIGEST_CLEARTEXT; + } +-#line 3041 "src/y.tab.c" /* yacc.c:1646 */ + break; + + case 222: +-#line 784 "src/p.y" /* yacc.c:1646 */ ++ ++/* Line 1806 of yacc.c */ ++#line 784 "src/p.y" + { + FREE(htpasswd_file); + } +-#line 3049 "src/y.tab.c" /* yacc.c:1646 */ + break; + + case 223: +-#line 787 "src/p.y" /* yacc.c:1646 */ ++ ++/* Line 1806 of yacc.c */ ++#line 787 "src/p.y" + { +- htpasswd_file = (yyvsp[0].string); ++ htpasswd_file = (yyvsp[(3) - (3)].string); + digesttype = DIGEST_MD5; + } +-#line 3058 "src/y.tab.c" /* yacc.c:1646 */ + break; + + case 224: +-#line 791 "src/p.y" /* yacc.c:1646 */ ++ ++/* Line 1806 of yacc.c */ ++#line 791 "src/p.y" + { + FREE(htpasswd_file); + } +-#line 3066 "src/y.tab.c" /* yacc.c:1646 */ + break; + + case 225: +-#line 794 "src/p.y" /* yacc.c:1646 */ ++ ++/* Line 1806 of yacc.c */ ++#line 794 "src/p.y" + { +- htpasswd_file = (yyvsp[0].string); ++ htpasswd_file = (yyvsp[(3) - (3)].string); + digesttype = DIGEST_CRYPT; + } +-#line 3075 "src/y.tab.c" /* yacc.c:1646 */ + break; + + case 226: +-#line 798 "src/p.y" /* yacc.c:1646 */ ++ ++/* Line 1806 of yacc.c */ ++#line 798 "src/p.y" + { + FREE(htpasswd_file); + } +-#line 3083 "src/y.tab.c" /* yacc.c:1646 */ + break; + + case 227: +-#line 801 "src/p.y" /* yacc.c:1646 */ ++ ++/* Line 1806 of yacc.c */ ++#line 801 "src/p.y" + { +- if (! (add_net_allow((yyvsp[0].string)) || add_host_allow((yyvsp[0].string)))) { +- yyerror2("Erroneous network or host identifier %s", (yyvsp[0].string)); ++ if (! (add_net_allow((yyvsp[(2) - (2)].string)) || add_host_allow((yyvsp[(2) - (2)].string)))) { ++ yyerror2("Erroneous network or host identifier %s", (yyvsp[(2) - (2)].string)); + } +- FREE((yyvsp[0].string)); ++ FREE((yyvsp[(2) - (2)].string)); + } +-#line 3094 "src/y.tab.c" /* yacc.c:1646 */ + break; + + case 230: +-#line 813 "src/p.y" /* yacc.c:1646 */ +- { addhtpasswdentry(htpasswd_file, (yyvsp[0].string), digesttype); +- FREE((yyvsp[0].string)); } +-#line 3101 "src/y.tab.c" /* yacc.c:1646 */ ++ ++/* Line 1806 of yacc.c */ ++#line 813 "src/p.y" ++ { addhtpasswdentry(htpasswd_file, (yyvsp[(1) - (1)].string), digesttype); ++ FREE((yyvsp[(1) - (1)].string)); } + break; + + case 231: +-#line 817 "src/p.y" /* yacc.c:1646 */ ++ ++/* Line 1806 of yacc.c */ ++#line 817 "src/p.y" + { (yyval.number) = FALSE; } +-#line 3107 "src/y.tab.c" /* yacc.c:1646 */ + break; + + case 232: +-#line 818 "src/p.y" /* yacc.c:1646 */ ++ ++/* Line 1806 of yacc.c */ ++#line 818 "src/p.y" + { (yyval.number) = TRUE; } +-#line 3113 "src/y.tab.c" /* yacc.c:1646 */ + break; + + case 233: +-#line 821 "src/p.y" /* yacc.c:1646 */ ++ ++/* Line 1806 of yacc.c */ ++#line 821 "src/p.y" + { +- createservice(TYPE_PROCESS, (yyvsp[-2].string), (yyvsp[0].string), check_process); ++ createservice(TYPE_PROCESS, (yyvsp[(2) - (4)].string), (yyvsp[(4) - (4)].string), check_process); + } +-#line 3121 "src/y.tab.c" /* yacc.c:1646 */ + break; + + case 234: +-#line 824 "src/p.y" /* yacc.c:1646 */ ++ ++/* Line 1806 of yacc.c */ ++#line 824 "src/p.y" + { +- createservice(TYPE_PROCESS, (yyvsp[-2].string), (yyvsp[0].string), check_process); ++ createservice(TYPE_PROCESS, (yyvsp[(2) - (4)].string), (yyvsp[(4) - (4)].string), check_process); + } +-#line 3129 "src/y.tab.c" /* yacc.c:1646 */ + break; + + case 235: +-#line 827 "src/p.y" /* yacc.c:1646 */ ++ ++/* Line 1806 of yacc.c */ ++#line 827 "src/p.y" + { +- createservice(TYPE_PROCESS, (yyvsp[-2].string), (yyvsp[0].string), check_process); ++ createservice(TYPE_PROCESS, (yyvsp[(2) - (4)].string), (yyvsp[(4) - (4)].string), check_process); + matchset.ignore = FALSE; + matchset.match_path = NULL; +- matchset.match_string = Str_dup((yyvsp[0].string)); ++ matchset.match_string = Str_dup((yyvsp[(4) - (4)].string)); + addmatch(&matchset, ACTION_IGNORE, 0); + } +-#line 3141 "src/y.tab.c" /* yacc.c:1646 */ + break; + + case 236: +-#line 834 "src/p.y" /* yacc.c:1646 */ ++ ++/* Line 1806 of yacc.c */ ++#line 834 "src/p.y" + { +- createservice(TYPE_PROCESS, (yyvsp[-2].string), (yyvsp[0].string), check_process); ++ createservice(TYPE_PROCESS, (yyvsp[(2) - (4)].string), (yyvsp[(4) - (4)].string), check_process); + matchset.ignore = FALSE; + matchset.match_path = NULL; +- matchset.match_string = Str_dup((yyvsp[0].string)); ++ matchset.match_string = Str_dup((yyvsp[(4) - (4)].string)); + addmatch(&matchset, ACTION_IGNORE, 0); + } +-#line 3153 "src/y.tab.c" /* yacc.c:1646 */ + break; + + case 237: +-#line 843 "src/p.y" /* yacc.c:1646 */ ++ ++/* Line 1806 of yacc.c */ ++#line 843 "src/p.y" + { +- createservice(TYPE_FILE, (yyvsp[-2].string), (yyvsp[0].string), check_file); ++ createservice(TYPE_FILE, (yyvsp[(2) - (4)].string), (yyvsp[(4) - (4)].string), check_file); + } +-#line 3161 "src/y.tab.c" /* yacc.c:1646 */ + break; + + case 238: +-#line 848 "src/p.y" /* yacc.c:1646 */ ++ ++/* Line 1806 of yacc.c */ ++#line 848 "src/p.y" + { +- createservice(TYPE_FILESYSTEM, (yyvsp[-2].string), (yyvsp[0].string), check_filesystem); ++ createservice(TYPE_FILESYSTEM, (yyvsp[(2) - (4)].string), (yyvsp[(4) - (4)].string), check_filesystem); + } +-#line 3169 "src/y.tab.c" /* yacc.c:1646 */ + break; + + case 239: +-#line 851 "src/p.y" /* yacc.c:1646 */ ++ ++/* Line 1806 of yacc.c */ ++#line 851 "src/p.y" + { +- createservice(TYPE_FILESYSTEM, (yyvsp[-2].string), (yyvsp[0].string), check_filesystem); ++ createservice(TYPE_FILESYSTEM, (yyvsp[(2) - (4)].string), (yyvsp[(4) - (4)].string), check_filesystem); + } +-#line 3177 "src/y.tab.c" /* yacc.c:1646 */ + break; + + case 240: +-#line 856 "src/p.y" /* yacc.c:1646 */ ++ ++/* Line 1806 of yacc.c */ ++#line 856 "src/p.y" + { +- createservice(TYPE_DIRECTORY, (yyvsp[-2].string), (yyvsp[0].string), check_directory); ++ createservice(TYPE_DIRECTORY, (yyvsp[(2) - (4)].string), (yyvsp[(4) - (4)].string), check_directory); + } +-#line 3185 "src/y.tab.c" /* yacc.c:1646 */ + break; + + case 241: +-#line 861 "src/p.y" /* yacc.c:1646 */ ++ ++/* Line 1806 of yacc.c */ ++#line 861 "src/p.y" + { +- check_hostname((yyvsp[0].string)); +- createservice(TYPE_HOST, (yyvsp[-2].string), (yyvsp[0].string), check_remote_host); ++ check_hostname((yyvsp[(4) - (4)].string)); ++ createservice(TYPE_HOST, (yyvsp[(2) - (4)].string), (yyvsp[(4) - (4)].string), check_remote_host); + } +-#line 3194 "src/y.tab.c" /* yacc.c:1646 */ + break; + + case 242: +-#line 867 "src/p.y" /* yacc.c:1646 */ ++ ++/* Line 1806 of yacc.c */ ++#line 867 "src/p.y" + { + char hostname[STRLEN]; + if (Util_getfqdnhostname(hostname, sizeof(hostname))) { + LogError("Cannot get system hostname\n"); + cfg_errflag++; + } +- char *servicename = (yyvsp[0].string); ++ char *servicename = (yyvsp[(2) - (2)].string); + Util_replaceString(&servicename, "$HOST", hostname); + Run.system = createservice(TYPE_SYSTEM, servicename, Str_dup(""), check_system); // The name given in the 'check system' statement overrides system hostname + } +-#line 3209 "src/y.tab.c" /* yacc.c:1646 */ + break; + + case 243: +-#line 879 "src/p.y" /* yacc.c:1646 */ ++ ++/* Line 1806 of yacc.c */ ++#line 879 "src/p.y" + { +- createservice(TYPE_FIFO, (yyvsp[-2].string), (yyvsp[0].string), check_fifo); ++ createservice(TYPE_FIFO, (yyvsp[(2) - (4)].string), (yyvsp[(4) - (4)].string), check_fifo); + } +-#line 3217 "src/y.tab.c" /* yacc.c:1646 */ + break; + + case 244: +-#line 884 "src/p.y" /* yacc.c:1646 */ ++ ++/* Line 1806 of yacc.c */ ++#line 884 "src/p.y" + { + command_t c = command; // Current command + check_exec(c->arg[0]); +- createservice(TYPE_PROGRAM, (yyvsp[-3].string), Str_dup(c->arg[0]), check_program); +- current->program->timeout = (yyvsp[0].number); ++ createservice(TYPE_PROGRAM, (yyvsp[(2) - (5)].string), Str_dup(c->arg[0]), check_program); ++ current->program->timeout = (yyvsp[(5) - (5)].number); + current->program->output = StringBuffer_create(64); + } +-#line 3229 "src/y.tab.c" /* yacc.c:1646 */ + break; + + case 245: +-#line 891 "src/p.y" /* yacc.c:1646 */ ++ ++/* Line 1806 of yacc.c */ ++#line 891 "src/p.y" + { + command_t c = command; // Current command + check_exec(c->arg[0]); +- createservice(TYPE_PROGRAM, (yyvsp[-4].string), Str_dup(c->arg[0]), check_program); +- current->program->timeout = (yyvsp[-1].number); ++ createservice(TYPE_PROGRAM, (yyvsp[(2) - (6)].string), Str_dup(c->arg[0]), check_program); ++ current->program->timeout = (yyvsp[(5) - (6)].number); + current->program->output = StringBuffer_create(64); + } +-#line 3241 "src/y.tab.c" /* yacc.c:1646 */ + break; + + case 246: +-#line 900 "src/p.y" /* yacc.c:1646 */ ++ ++/* Line 1806 of yacc.c */ ++#line 900 "src/p.y" + { +- addcommand(START, (yyvsp[0].number)); ++ addcommand(START, (yyvsp[(3) - (3)].number)); + } +-#line 3249 "src/y.tab.c" /* yacc.c:1646 */ + break; + + case 247: +-#line 903 "src/p.y" /* yacc.c:1646 */ ++ ++/* Line 1806 of yacc.c */ ++#line 903 "src/p.y" + { +- addcommand(START, (yyvsp[0].number)); ++ addcommand(START, (yyvsp[(4) - (4)].number)); + } +-#line 3257 "src/y.tab.c" /* yacc.c:1646 */ + break; + + case 248: +-#line 908 "src/p.y" /* yacc.c:1646 */ ++ ++/* Line 1806 of yacc.c */ ++#line 908 "src/p.y" + { +- addcommand(STOP, (yyvsp[0].number)); ++ addcommand(STOP, (yyvsp[(3) - (3)].number)); + } +-#line 3265 "src/y.tab.c" /* yacc.c:1646 */ + break; + + case 249: +-#line 911 "src/p.y" /* yacc.c:1646 */ ++ ++/* Line 1806 of yacc.c */ ++#line 911 "src/p.y" + { +- addcommand(STOP, (yyvsp[0].number)); ++ addcommand(STOP, (yyvsp[(4) - (4)].number)); + } +-#line 3273 "src/y.tab.c" /* yacc.c:1646 */ + break; + + case 250: +-#line 917 "src/p.y" /* yacc.c:1646 */ ++ ++/* Line 1806 of yacc.c */ ++#line 917 "src/p.y" + { +- addcommand(RESTART, (yyvsp[0].number)); ++ addcommand(RESTART, (yyvsp[(3) - (3)].number)); + } +-#line 3281 "src/y.tab.c" /* yacc.c:1646 */ + break; + + case 251: +-#line 920 "src/p.y" /* yacc.c:1646 */ ++ ++/* Line 1806 of yacc.c */ ++#line 920 "src/p.y" + { +- addcommand(RESTART, (yyvsp[0].number)); ++ addcommand(RESTART, (yyvsp[(4) - (4)].number)); + } +-#line 3289 "src/y.tab.c" /* yacc.c:1646 */ + break; + + case 256: +-#line 933 "src/p.y" /* yacc.c:1646 */ +- { addargument((yyvsp[0].string)); } +-#line 3295 "src/y.tab.c" /* yacc.c:1646 */ ++ ++/* Line 1806 of yacc.c */ ++#line 933 "src/p.y" ++ { addargument((yyvsp[(1) - (1)].string)); } + break; + + case 257: +-#line 934 "src/p.y" /* yacc.c:1646 */ +- { addargument((yyvsp[0].string)); } +-#line 3301 "src/y.tab.c" /* yacc.c:1646 */ ++ ++/* Line 1806 of yacc.c */ ++#line 934 "src/p.y" ++ { addargument((yyvsp[(1) - (1)].string)); } + break; + + case 258: +-#line 937 "src/p.y" /* yacc.c:1646 */ +- { addeuid( get_uid((yyvsp[0].string), 0) ); FREE((yyvsp[0].string)); } +-#line 3307 "src/y.tab.c" /* yacc.c:1646 */ ++ ++/* Line 1806 of yacc.c */ ++#line 937 "src/p.y" ++ { addeuid( get_uid((yyvsp[(2) - (2)].string), 0) ); FREE((yyvsp[(2) - (2)].string)); } + break; + + case 259: +-#line 938 "src/p.y" /* yacc.c:1646 */ +- { addegid( get_gid((yyvsp[0].string), 0) ); FREE((yyvsp[0].string)); } +-#line 3313 "src/y.tab.c" /* yacc.c:1646 */ ++ ++/* Line 1806 of yacc.c */ ++#line 938 "src/p.y" ++ { addegid( get_gid((yyvsp[(2) - (2)].string), 0) ); FREE((yyvsp[(2) - (2)].string)); } + break; + + case 260: +-#line 939 "src/p.y" /* yacc.c:1646 */ +- { addeuid( get_uid(NULL, (yyvsp[0].number)) ); } +-#line 3319 "src/y.tab.c" /* yacc.c:1646 */ ++ ++/* Line 1806 of yacc.c */ ++#line 939 "src/p.y" ++ { addeuid( get_uid(NULL, (yyvsp[(2) - (2)].number)) ); } + break; + + case 261: +-#line 940 "src/p.y" /* yacc.c:1646 */ +- { addegid( get_gid(NULL, (yyvsp[0].number)) ); } +-#line 3325 "src/y.tab.c" /* yacc.c:1646 */ ++ ++/* Line 1806 of yacc.c */ ++#line 940 "src/p.y" ++ { addegid( get_gid(NULL, (yyvsp[(2) - (2)].number)) ); } + break; + + case 262: +-#line 943 "src/p.y" /* yacc.c:1646 */ ++ ++/* Line 1806 of yacc.c */ ++#line 943 "src/p.y" + { (yyval.string) = NULL; } +-#line 3331 "src/y.tab.c" /* yacc.c:1646 */ + break; + + case 263: +-#line 944 "src/p.y" /* yacc.c:1646 */ +- { (yyval.string) = (yyvsp[0].string); } +-#line 3337 "src/y.tab.c" /* yacc.c:1646 */ ++ ++/* Line 1806 of yacc.c */ ++#line 944 "src/p.y" ++ { (yyval.string) = (yyvsp[(2) - (2)].string); } + break; + + case 264: +-#line 945 "src/p.y" /* yacc.c:1646 */ +- { (yyval.string) = (yyvsp[0].string); } +-#line 3343 "src/y.tab.c" /* yacc.c:1646 */ ++ ++/* Line 1806 of yacc.c */ ++#line 945 "src/p.y" ++ { (yyval.string) = (yyvsp[(2) - (2)].string); } + break; + + case 265: +-#line 948 "src/p.y" /* yacc.c:1646 */ ++ ++/* Line 1806 of yacc.c */ ++#line 948 "src/p.y" + { (yyval.string) = NULL; } +-#line 3349 "src/y.tab.c" /* yacc.c:1646 */ + break; + + case 266: +-#line 949 "src/p.y" /* yacc.c:1646 */ +- { (yyval.string) = (yyvsp[0].string); } +-#line 3355 "src/y.tab.c" /* yacc.c:1646 */ ++ ++/* Line 1806 of yacc.c */ ++#line 949 "src/p.y" ++ { (yyval.string) = (yyvsp[(2) - (2)].string); } + break; + + case 267: +-#line 952 "src/p.y" /* yacc.c:1646 */ ++ ++/* Line 1806 of yacc.c */ ++#line 952 "src/p.y" + { (yyval.string) = NULL; } +-#line 3361 "src/y.tab.c" /* yacc.c:1646 */ + break; + + case 268: +-#line 953 "src/p.y" /* yacc.c:1646 */ +- { (yyval.string) = (yyvsp[0].string); } +-#line 3367 "src/y.tab.c" /* yacc.c:1646 */ ++ ++/* Line 1806 of yacc.c */ ++#line 953 "src/p.y" ++ { (yyval.string) = (yyvsp[(2) - (2)].string); } + break; + + case 269: +-#line 957 "src/p.y" /* yacc.c:1646 */ ++ ++/* Line 1806 of yacc.c */ ++#line 957 "src/p.y" + { +- portset.timeout = (yyvsp[-5].number); +- portset.retry = (yyvsp[-4].number); ++ portset.timeout = (yyvsp[(8) - (13)].number); ++ portset.retry = (yyvsp[(9) - (13)].number); + /* This is a workaround to support content match without having to create + an URL object. 'urloption' creates the Request_T object we need minus the + URL object, but with enough information to perform content test. + TODO: Parser is in need of refactoring */ + portset.url_request = urlrequest; +- addeventaction(&(portset).action, (yyvsp[-1].number), (yyvsp[0].number)); ++ addeventaction(&(portset).action, (yyvsp[(12) - (13)].number), (yyvsp[(13) - (13)].number)); + addport(&portset); + } +-#line 3383 "src/y.tab.c" /* yacc.c:1646 */ + break; + + case 270: +-#line 969 "src/p.y" /* yacc.c:1646 */ ++ ++/* Line 1806 of yacc.c */ ++#line 969 "src/p.y" + { +- prepare_urlrequest((yyvsp[-7].url)); +- portset.timeout = (yyvsp[-5].number); +- portset.retry = (yyvsp[-4].number); +- addeventaction(&(portset).action, (yyvsp[-1].number), (yyvsp[0].number)); ++ prepare_urlrequest((yyvsp[(4) - (11)].url)); ++ portset.timeout = (yyvsp[(6) - (11)].number); ++ portset.retry = (yyvsp[(7) - (11)].number); ++ addeventaction(&(portset).action, (yyvsp[(10) - (11)].number), (yyvsp[(11) - (11)].number)); + addport(&portset); + } +-#line 3395 "src/y.tab.c" /* yacc.c:1646 */ + break; + + case 271: +-#line 979 "src/p.y" /* yacc.c:1646 */ ++ ++/* Line 1806 of yacc.c */ ++#line 979 "src/p.y" + { +- portset.timeout = (yyvsp[-5].number); +- portset.retry = (yyvsp[-4].number); +- addeventaction(&(portset).action, (yyvsp[-1].number), (yyvsp[0].number)); ++ portset.timeout = (yyvsp[(6) - (11)].number); ++ portset.retry = (yyvsp[(7) - (11)].number); ++ addeventaction(&(portset).action, (yyvsp[(10) - (11)].number), (yyvsp[(11) - (11)].number)); + addport(&portset); + } +-#line 3406 "src/y.tab.c" /* yacc.c:1646 */ + break; + + case 272: +-#line 987 "src/p.y" /* yacc.c:1646 */ ++ ++/* Line 1806 of yacc.c */ ++#line 987 "src/p.y" + { +- icmpset.type = (yyvsp[-6].number); +- icmpset.count = (yyvsp[-5].number); +- icmpset.timeout = (yyvsp[-4].number); +- addeventaction(&(icmpset).action, (yyvsp[-1].number), (yyvsp[0].number)); ++ icmpset.type = (yyvsp[(4) - (10)].number); ++ icmpset.count = (yyvsp[(5) - (10)].number); ++ icmpset.timeout = (yyvsp[(6) - (10)].number); ++ addeventaction(&(icmpset).action, (yyvsp[(9) - (10)].number), (yyvsp[(10) - (10)].number)); + addicmp(&icmpset); + } +-#line 3418 "src/y.tab.c" /* yacc.c:1646 */ + break; + + case 273: +-#line 994 "src/p.y" /* yacc.c:1646 */ ++ ++/* Line 1806 of yacc.c */ ++#line 994 "src/p.y" + { + icmpset.type = ICMP_ECHO; +- icmpset.count = (yyvsp[-5].number); +- icmpset.timeout = (yyvsp[-4].number); +- addeventaction(&(icmpset).action, (yyvsp[-1].number), (yyvsp[0].number)); ++ icmpset.count = (yyvsp[(4) - (9)].number); ++ icmpset.timeout = (yyvsp[(5) - (9)].number); ++ addeventaction(&(icmpset).action, (yyvsp[(8) - (9)].number), (yyvsp[(9) - (9)].number)); + addicmp(&icmpset); + } +-#line 3430 "src/y.tab.c" /* yacc.c:1646 */ + break; + + case 274: +-#line 1003 "src/p.y" /* yacc.c:1646 */ ++ ++/* Line 1806 of yacc.c */ ++#line 1003 "src/p.y" + { + if (current->type == TYPE_HOST) + portset.hostname = Str_dup(current->path); + else + portset.hostname = Str_dup(LOCALHOST); + } +-#line 3441 "src/y.tab.c" /* yacc.c:1646 */ + break; + + case 275: +-#line 1009 "src/p.y" /* yacc.c:1646 */ +- { check_hostname((yyvsp[0].string)); portset.hostname = (yyvsp[0].string); } +-#line 3447 "src/y.tab.c" /* yacc.c:1646 */ ++ ++/* Line 1806 of yacc.c */ ++#line 1009 "src/p.y" ++ { check_hostname((yyvsp[(2) - (2)].string)); portset.hostname = (yyvsp[(2) - (2)].string); } + break; + + case 276: +-#line 1012 "src/p.y" /* yacc.c:1646 */ +- { portset.port = (yyvsp[0].number); portset.family = AF_INET; } +-#line 3453 "src/y.tab.c" /* yacc.c:1646 */ ++ ++/* Line 1806 of yacc.c */ ++#line 1012 "src/p.y" ++ { portset.port = (yyvsp[(2) - (2)].number); portset.family = AF_INET; } + break; + + case 277: +-#line 1015 "src/p.y" /* yacc.c:1646 */ ++ ++/* Line 1806 of yacc.c */ ++#line 1015 "src/p.y" + { +- portset.pathname = (yyvsp[0].string); portset.family = AF_UNIX; ++ portset.pathname = (yyvsp[(2) - (2)].string); portset.family = AF_UNIX; + } +-#line 3461 "src/y.tab.c" /* yacc.c:1646 */ + break; + + case 278: +-#line 1020 "src/p.y" /* yacc.c:1646 */ ++ ++/* Line 1806 of yacc.c */ ++#line 1020 "src/p.y" + { + portset.type = SOCK_STREAM; + } +-#line 3469 "src/y.tab.c" /* yacc.c:1646 */ + break; + + case 279: +-#line 1023 "src/p.y" /* yacc.c:1646 */ ++ ++/* Line 1806 of yacc.c */ ++#line 1023 "src/p.y" + { + portset.type = SOCK_STREAM; + } +-#line 3477 "src/y.tab.c" /* yacc.c:1646 */ + break; + + case 280: +-#line 1026 "src/p.y" /* yacc.c:1646 */ ++ ++/* Line 1806 of yacc.c */ ++#line 1026 "src/p.y" + { + portset.type = SOCK_STREAM; + portset.SSL.use_ssl = TRUE; +- portset.SSL.version = (yyvsp[-1].number); ++ portset.SSL.version = (yyvsp[(3) - (4)].number); + if (portset.SSL.version == SSL_VERSION_NONE) + portset.SSL.version = SSL_VERSION_AUTO; +- portset.SSL.certmd5 = (yyvsp[0].string); ++ portset.SSL.certmd5 = (yyvsp[(4) - (4)].string); + } +-#line 3490 "src/y.tab.c" /* yacc.c:1646 */ + break; + + case 281: +-#line 1034 "src/p.y" /* yacc.c:1646 */ ++ ++/* Line 1806 of yacc.c */ ++#line 1034 "src/p.y" + { + portset.type = SOCK_DGRAM; + } +-#line 3498 "src/y.tab.c" /* yacc.c:1646 */ + break; + + case 282: +-#line 1039 "src/p.y" /* yacc.c:1646 */ ++ ++/* Line 1806 of yacc.c */ ++#line 1039 "src/p.y" + { (yyval.string) = NULL; } +-#line 3504 "src/y.tab.c" /* yacc.c:1646 */ + break; + + case 283: +-#line 1040 "src/p.y" /* yacc.c:1646 */ +- { (yyval.string) = (yyvsp[0].string); } +-#line 3510 "src/y.tab.c" /* yacc.c:1646 */ ++ ++/* Line 1806 of yacc.c */ ++#line 1040 "src/p.y" ++ { (yyval.string) = (yyvsp[(2) - (2)].string); } + break; + + case 284: +-#line 1043 "src/p.y" /* yacc.c:1646 */ ++ ++/* Line 1806 of yacc.c */ ++#line 1043 "src/p.y" + { (yyval.number) = SSL_VERSION_NONE; } +-#line 3516 "src/y.tab.c" /* yacc.c:1646 */ + break; + + case 285: +-#line 1044 "src/p.y" /* yacc.c:1646 */ ++ ++/* Line 1806 of yacc.c */ ++#line 1044 "src/p.y" + { (yyval.number) = SSL_VERSION_SSLV2; } +-#line 3522 "src/y.tab.c" /* yacc.c:1646 */ + break; + + case 286: +-#line 1045 "src/p.y" /* yacc.c:1646 */ ++ ++/* Line 1806 of yacc.c */ ++#line 1045 "src/p.y" + { (yyval.number) = SSL_VERSION_SSLV3; } +-#line 3528 "src/y.tab.c" /* yacc.c:1646 */ + break; + + case 287: +-#line 1046 "src/p.y" /* yacc.c:1646 */ ++ ++/* Line 1806 of yacc.c */ ++#line 1046 "src/p.y" + { (yyval.number) = SSL_VERSION_TLSV1; } +-#line 3534 "src/y.tab.c" /* yacc.c:1646 */ + break; + + case 288: +-#line 1048 "src/p.y" /* yacc.c:1646 */ ++ ++/* Line 1806 of yacc.c */ ++#line 1048 "src/p.y" + { + #ifndef HAVE_TLSV1_1_CLIENT_METHOD + yyerror("Your SSL Library does not support TLS version 1.1"); + #endif + (yyval.number) = SSL_VERSION_TLSV11; + } +-#line 3545 "src/y.tab.c" /* yacc.c:1646 */ + break; + + case 289: +-#line 1055 "src/p.y" /* yacc.c:1646 */ ++ ++/* Line 1806 of yacc.c */ ++#line 1055 "src/p.y" + { + #ifndef HAVE_TLSV1_1_CLIENT_METHOD + yyerror("Your SSL Library does not support TLS version 1.2"); + #endif + (yyval.number) = SSL_VERSION_TLSV12; + } +-#line 3556 "src/y.tab.c" /* yacc.c:1646 */ + break; + + case 290: +-#line 1061 "src/p.y" /* yacc.c:1646 */ ++ ++/* Line 1806 of yacc.c */ ++#line 1061 "src/p.y" + { (yyval.number) = SSL_VERSION_AUTO; } +-#line 3562 "src/y.tab.c" /* yacc.c:1646 */ + break; + + case 291: +-#line 1064 "src/p.y" /* yacc.c:1646 */ ++ ++/* Line 1806 of yacc.c */ ++#line 1064 "src/p.y" + { + portset.protocol = Protocol_get(Protocol_DEFAULT); + } +-#line 3570 "src/y.tab.c" /* yacc.c:1646 */ + break; + + case 292: +-#line 1067 "src/p.y" /* yacc.c:1646 */ ++ ++/* Line 1806 of yacc.c */ ++#line 1067 "src/p.y" + { + portset.protocol = Protocol_get(Protocol_APACHESTATUS); + } +-#line 3578 "src/y.tab.c" /* yacc.c:1646 */ + break; + + case 293: +-#line 1070 "src/p.y" /* yacc.c:1646 */ ++ ++/* Line 1806 of yacc.c */ ++#line 1070 "src/p.y" + { + portset.protocol = Protocol_get(Protocol_DEFAULT); + } +-#line 3586 "src/y.tab.c" /* yacc.c:1646 */ + break; + + case 294: +-#line 1073 "src/p.y" /* yacc.c:1646 */ ++ ++/* Line 1806 of yacc.c */ ++#line 1073 "src/p.y" + { + portset.protocol = Protocol_get(Protocol_DNS); + } +-#line 3594 "src/y.tab.c" /* yacc.c:1646 */ + break; + + case 295: +-#line 1076 "src/p.y" /* yacc.c:1646 */ ++ ++/* Line 1806 of yacc.c */ ++#line 1076 "src/p.y" + { + portset.protocol = Protocol_get(Protocol_DWP); + } +-#line 3602 "src/y.tab.c" /* yacc.c:1646 */ + break; + + case 296: +-#line 1079 "src/p.y" /* yacc.c:1646 */ ++ ++/* Line 1806 of yacc.c */ ++#line 1079 "src/p.y" + { + portset.protocol = Protocol_get(Protocol_FTP); + } +-#line 3610 "src/y.tab.c" /* yacc.c:1646 */ + break; + + case 297: +-#line 1082 "src/p.y" /* yacc.c:1646 */ ++ ++/* Line 1806 of yacc.c */ ++#line 1082 "src/p.y" + { + portset.protocol = Protocol_get(Protocol_HTTP); + } +-#line 3618 "src/y.tab.c" /* yacc.c:1646 */ + break; + + case 298: +-#line 1085 "src/p.y" /* yacc.c:1646 */ ++ ++/* Line 1806 of yacc.c */ ++#line 1085 "src/p.y" + { + portset.type = SOCK_STREAM; + portset.SSL.use_ssl = TRUE; + portset.SSL.version = SSL_VERSION_AUTO; + portset.protocol = Protocol_get(Protocol_HTTP); + } +-#line 3629 "src/y.tab.c" /* yacc.c:1646 */ + break; + + case 299: +-#line 1091 "src/p.y" /* yacc.c:1646 */ ++ ++/* Line 1806 of yacc.c */ ++#line 1091 "src/p.y" + { + portset.protocol = Protocol_get(Protocol_IMAP); + } +-#line 3637 "src/y.tab.c" /* yacc.c:1646 */ + break; + + case 300: +-#line 1094 "src/p.y" /* yacc.c:1646 */ ++ ++/* Line 1806 of yacc.c */ ++#line 1094 "src/p.y" + { + portset.protocol = Protocol_get(Protocol_CLAMAV); + } +-#line 3645 "src/y.tab.c" /* yacc.c:1646 */ + break; + + case 301: +-#line 1097 "src/p.y" /* yacc.c:1646 */ ++ ++/* Line 1806 of yacc.c */ ++#line 1097 "src/p.y" + { + portset.protocol = Protocol_get(Protocol_LDAP2); + } +-#line 3653 "src/y.tab.c" /* yacc.c:1646 */ + break; + + case 302: +-#line 1100 "src/p.y" /* yacc.c:1646 */ ++ ++/* Line 1806 of yacc.c */ ++#line 1100 "src/p.y" + { + portset.protocol = Protocol_get(Protocol_LDAP3); + } +-#line 3661 "src/y.tab.c" /* yacc.c:1646 */ + break; + + case 303: +-#line 1103 "src/p.y" /* yacc.c:1646 */ ++ ++/* Line 1806 of yacc.c */ ++#line 1103 "src/p.y" + { + portset.protocol = Protocol_get(Protocol_MYSQL); + } +-#line 3669 "src/y.tab.c" /* yacc.c:1646 */ + break; + + case 304: +-#line 1106 "src/p.y" /* yacc.c:1646 */ ++ ++/* Line 1806 of yacc.c */ ++#line 1106 "src/p.y" + { + portset.protocol = Protocol_get(Protocol_SIP); + } +-#line 3677 "src/y.tab.c" /* yacc.c:1646 */ + break; + + case 305: +-#line 1109 "src/p.y" /* yacc.c:1646 */ ++ ++/* Line 1806 of yacc.c */ ++#line 1109 "src/p.y" + { + portset.protocol = Protocol_get(Protocol_NNTP); + } +-#line 3685 "src/y.tab.c" /* yacc.c:1646 */ + break; + + case 306: +-#line 1112 "src/p.y" /* yacc.c:1646 */ ++ ++/* Line 1806 of yacc.c */ ++#line 1112 "src/p.y" + { + portset.protocol = Protocol_get(Protocol_NTP3); + portset.type = SOCK_DGRAM; + } +-#line 3694 "src/y.tab.c" /* yacc.c:1646 */ + break; + + case 307: +-#line 1116 "src/p.y" /* yacc.c:1646 */ ++ ++/* Line 1806 of yacc.c */ ++#line 1116 "src/p.y" + { + portset.protocol = Protocol_get(Protocol_POSTFIXPOLICY); + } +-#line 3702 "src/y.tab.c" /* yacc.c:1646 */ + break; + + case 308: +-#line 1119 "src/p.y" /* yacc.c:1646 */ ++ ++/* Line 1806 of yacc.c */ ++#line 1119 "src/p.y" + { + portset.protocol = Protocol_get(Protocol_POP); + } +-#line 3710 "src/y.tab.c" /* yacc.c:1646 */ + break; + + case 309: +-#line 1122 "src/p.y" /* yacc.c:1646 */ ++ ++/* Line 1806 of yacc.c */ ++#line 1122 "src/p.y" + { + portset.protocol = Protocol_get(Protocol_SMTP); + } +-#line 3718 "src/y.tab.c" /* yacc.c:1646 */ + break; + + case 310: +-#line 1125 "src/p.y" /* yacc.c:1646 */ ++ ++/* Line 1806 of yacc.c */ ++#line 1125 "src/p.y" + { + portset.type = SOCK_STREAM; + portset.SSL.use_ssl = TRUE; + portset.SSL.version = SSL_VERSION_AUTO; + portset.protocol = Protocol_get(Protocol_SMTP); + } +-#line 3729 "src/y.tab.c" /* yacc.c:1646 */ + break; + + case 311: +-#line 1131 "src/p.y" /* yacc.c:1646 */ ++ ++/* Line 1806 of yacc.c */ ++#line 1131 "src/p.y" + { + portset.protocol = Protocol_get(Protocol_SSH); + } +-#line 3737 "src/y.tab.c" /* yacc.c:1646 */ + break; + + case 312: +-#line 1134 "src/p.y" /* yacc.c:1646 */ ++ ++/* Line 1806 of yacc.c */ ++#line 1134 "src/p.y" + { + portset.protocol = Protocol_get(Protocol_RDATE); + } +-#line 3745 "src/y.tab.c" /* yacc.c:1646 */ + break; + + case 313: +-#line 1137 "src/p.y" /* yacc.c:1646 */ ++ ++/* Line 1806 of yacc.c */ ++#line 1137 "src/p.y" + { + portset.protocol = Protocol_get(Protocol_RSYNC); + } +-#line 3753 "src/y.tab.c" /* yacc.c:1646 */ + break; + + case 314: +-#line 1140 "src/p.y" /* yacc.c:1646 */ ++ ++/* Line 1806 of yacc.c */ ++#line 1140 "src/p.y" + { + portset.protocol = Protocol_get(Protocol_TNS); + } +-#line 3761 "src/y.tab.c" /* yacc.c:1646 */ + break; + + case 315: +-#line 1143 "src/p.y" /* yacc.c:1646 */ ++ ++/* Line 1806 of yacc.c */ ++#line 1143 "src/p.y" + { + portset.protocol = Protocol_get(Protocol_PGSQL); + } +-#line 3769 "src/y.tab.c" /* yacc.c:1646 */ + break; + + case 316: +-#line 1146 "src/p.y" /* yacc.c:1646 */ ++ ++/* Line 1806 of yacc.c */ ++#line 1146 "src/p.y" + { + portset.protocol = Protocol_get(Protocol_LMTP); + } +-#line 3777 "src/y.tab.c" /* yacc.c:1646 */ + break; + + case 317: +-#line 1149 "src/p.y" /* yacc.c:1646 */ ++ ++/* Line 1806 of yacc.c */ ++#line 1149 "src/p.y" + { + portset.protocol = Protocol_get(Protocol_GPS); + } +-#line 3785 "src/y.tab.c" /* yacc.c:1646 */ + break; + + case 318: +-#line 1152 "src/p.y" /* yacc.c:1646 */ ++ ++/* Line 1806 of yacc.c */ ++#line 1152 "src/p.y" + { + portset.protocol = Protocol_get(Protocol_RADIUS); + } +-#line 3793 "src/y.tab.c" /* yacc.c:1646 */ + break; + + case 319: +-#line 1155 "src/p.y" /* yacc.c:1646 */ ++ ++/* Line 1806 of yacc.c */ ++#line 1155 "src/p.y" + { + portset.protocol = Protocol_get(Protocol_MEMCACHE); + } +-#line 3801 "src/y.tab.c" /* yacc.c:1646 */ + break; + + case 320: +-#line 1158 "src/p.y" /* yacc.c:1646 */ ++ ++/* Line 1806 of yacc.c */ ++#line 1158 "src/p.y" + { + portset.protocol = Protocol_get(Protocol_WEBSOCKET); + } +-#line 3809 "src/y.tab.c" /* yacc.c:1646 */ + break; + + case 321: +-#line 1161 "src/p.y" /* yacc.c:1646 */ ++ ++/* Line 1806 of yacc.c */ ++#line 1161 "src/p.y" + { + portset.protocol = Protocol_get(Protocol_GENERIC); + } +-#line 3817 "src/y.tab.c" /* yacc.c:1646 */ + break; + + case 324: +-#line 1170 "src/p.y" /* yacc.c:1646 */ ++ ++/* Line 1806 of yacc.c */ ++#line 1170 "src/p.y" + { +- addgeneric(&portset, (yyvsp[0].string), NULL); ++ addgeneric(&portset, (yyvsp[(2) - (2)].string), NULL); + } +-#line 3825 "src/y.tab.c" /* yacc.c:1646 */ + break; + + case 325: +-#line 1173 "src/p.y" /* yacc.c:1646 */ ++ ++/* Line 1806 of yacc.c */ ++#line 1173 "src/p.y" + { +- addgeneric(&portset, NULL, (yyvsp[0].string)); ++ addgeneric(&portset, NULL, (yyvsp[(2) - (2)].string)); + } +-#line 3833 "src/y.tab.c" /* yacc.c:1646 */ + break; + + case 328: +-#line 1182 "src/p.y" /* yacc.c:1646 */ ++ ++/* Line 1806 of yacc.c */ ++#line 1182 "src/p.y" + { +- portset.pathname = (yyvsp[0].string); ++ portset.pathname = (yyvsp[(2) - (2)].string); + } +-#line 3841 "src/y.tab.c" /* yacc.c:1646 */ + break; + + case 329: +-#line 1185 "src/p.y" /* yacc.c:1646 */ ++ ++/* Line 1806 of yacc.c */ ++#line 1185 "src/p.y" + { +- portset.request = (yyvsp[0].string); ++ portset.request = (yyvsp[(2) - (2)].string); + } +-#line 3849 "src/y.tab.c" /* yacc.c:1646 */ + break; + + case 330: +-#line 1188 "src/p.y" /* yacc.c:1646 */ ++ ++/* Line 1806 of yacc.c */ ++#line 1188 "src/p.y" + { +- portset.request_hostheader = (yyvsp[0].string); ++ portset.request_hostheader = (yyvsp[(2) - (2)].string); + } +-#line 3857 "src/y.tab.c" /* yacc.c:1646 */ + break; + + case 331: +-#line 1191 "src/p.y" /* yacc.c:1646 */ ++ ++/* Line 1806 of yacc.c */ ++#line 1191 "src/p.y" + { +- portset.version = (yyvsp[0].number); ++ portset.version = (yyvsp[(2) - (2)].number); + } +-#line 3865 "src/y.tab.c" /* yacc.c:1646 */ + break; + + case 333: +-#line 1197 "src/p.y" /* yacc.c:1646 */ ++ ++/* Line 1806 of yacc.c */ ++#line 1197 "src/p.y" + { +- portset.request = (yyvsp[0].string); ++ portset.request = (yyvsp[(2) - (2)].string); + } +-#line 3873 "src/y.tab.c" /* yacc.c:1646 */ + break; + + case 334: +-#line 1200 "src/p.y" /* yacc.c:1646 */ ++ ++/* Line 1806 of yacc.c */ ++#line 1200 "src/p.y" + { +- portset.request = (yyvsp[0].string); ++ portset.request = (yyvsp[(2) - (2)].string); + } +-#line 3881 "src/y.tab.c" /* yacc.c:1646 */ + break; + + case 336: +-#line 1206 "src/p.y" /* yacc.c:1646 */ ++ ++/* Line 1806 of yacc.c */ ++#line 1206 "src/p.y" + { +- portset.maxforward = verifyMaxForward((yyvsp[0].number)); ++ portset.maxforward = verifyMaxForward((yyvsp[(2) - (2)].number)); + } +-#line 3889 "src/y.tab.c" /* yacc.c:1646 */ + break; + + case 344: +-#line 1222 "src/p.y" /* yacc.c:1646 */ ++ ++/* Line 1806 of yacc.c */ ++#line 1222 "src/p.y" + { +- portset.operator = (yyvsp[-1].number); +- portset.status = (yyvsp[0].number); ++ portset.operator = (yyvsp[(2) - (3)].number); ++ portset.status = (yyvsp[(3) - (3)].number); + } +-#line 3898 "src/y.tab.c" /* yacc.c:1646 */ + break; + + case 345: +-#line 1228 "src/p.y" /* yacc.c:1646 */ ++ ++/* Line 1806 of yacc.c */ ++#line 1228 "src/p.y" + { +- portset.request = Util_urlEncode((yyvsp[0].string)); +- FREE((yyvsp[0].string)); ++ portset.request = Util_urlEncode((yyvsp[(2) - (2)].string)); ++ FREE((yyvsp[(2) - (2)].string)); + } +-#line 3907 "src/y.tab.c" /* yacc.c:1646 */ + break; + + case 346: +-#line 1234 "src/p.y" /* yacc.c:1646 */ ++ ++/* Line 1806 of yacc.c */ ++#line 1234 "src/p.y" + { +- portset.request_checksum = (yyvsp[0].string); ++ portset.request_checksum = (yyvsp[(2) - (2)].string); + } +-#line 3915 "src/y.tab.c" /* yacc.c:1646 */ + break; + + case 347: +-#line 1239 "src/p.y" /* yacc.c:1646 */ ++ ++/* Line 1806 of yacc.c */ ++#line 1239 "src/p.y" + { +- portset.request_hostheader = (yyvsp[0].string); ++ portset.request_hostheader = (yyvsp[(2) - (2)].string); + } +-#line 3923 "src/y.tab.c" /* yacc.c:1646 */ + break; + + case 349: +-#line 1245 "src/p.y" /* yacc.c:1646 */ ++ ++/* Line 1806 of yacc.c */ ++#line 1245 "src/p.y" + { + if (! portset.http_headers) { + portset.http_headers = List_new(); + } +- List_append(portset.http_headers, (yyvsp[0].string)); ++ List_append(portset.http_headers, (yyvsp[(2) - (2)].string)); + } +-#line 3934 "src/y.tab.c" /* yacc.c:1646 */ + break; + + case 350: +-#line 1253 "src/p.y" /* yacc.c:1646 */ ++ ++/* Line 1806 of yacc.c */ ++#line 1253 "src/p.y" + { +- portset.request = (yyvsp[0].string); ++ portset.request = (yyvsp[(2) - (2)].string); + } +-#line 3942 "src/y.tab.c" /* yacc.c:1646 */ + break; + + case 353: +-#line 1262 "src/p.y" /* yacc.c:1646 */ ++ ++/* Line 1806 of yacc.c */ ++#line 1262 "src/p.y" + { +- portset.ApacheStatus.loglimitOP = (yyvsp[-2].number); +- portset.ApacheStatus.loglimit = (yyvsp[-1].number); ++ portset.ApacheStatus.loglimitOP = (yyvsp[(2) - (4)].number); ++ portset.ApacheStatus.loglimit = (yyvsp[(3) - (4)].number); + } +-#line 3951 "src/y.tab.c" /* yacc.c:1646 */ + break; + + case 354: +-#line 1266 "src/p.y" /* yacc.c:1646 */ ++ ++/* Line 1806 of yacc.c */ ++#line 1266 "src/p.y" + { +- portset.ApacheStatus.closelimitOP = (yyvsp[-2].number); +- portset.ApacheStatus.closelimit = (yyvsp[-1].number); ++ portset.ApacheStatus.closelimitOP = (yyvsp[(2) - (4)].number); ++ portset.ApacheStatus.closelimit = (yyvsp[(3) - (4)].number); + } +-#line 3960 "src/y.tab.c" /* yacc.c:1646 */ + break; + + case 355: +-#line 1270 "src/p.y" /* yacc.c:1646 */ ++ ++/* Line 1806 of yacc.c */ ++#line 1270 "src/p.y" + { +- portset.ApacheStatus.dnslimitOP = (yyvsp[-2].number); +- portset.ApacheStatus.dnslimit = (yyvsp[-1].number); ++ portset.ApacheStatus.dnslimitOP = (yyvsp[(2) - (4)].number); ++ portset.ApacheStatus.dnslimit = (yyvsp[(3) - (4)].number); + } +-#line 3969 "src/y.tab.c" /* yacc.c:1646 */ + break; + + case 356: +-#line 1274 "src/p.y" /* yacc.c:1646 */ ++ ++/* Line 1806 of yacc.c */ ++#line 1274 "src/p.y" + { +- portset.ApacheStatus.keepalivelimitOP = (yyvsp[-2].number); +- portset.ApacheStatus.keepalivelimit = (yyvsp[-1].number); ++ portset.ApacheStatus.keepalivelimitOP = (yyvsp[(2) - (4)].number); ++ portset.ApacheStatus.keepalivelimit = (yyvsp[(3) - (4)].number); + } +-#line 3978 "src/y.tab.c" /* yacc.c:1646 */ + break; + + case 357: +-#line 1278 "src/p.y" /* yacc.c:1646 */ ++ ++/* Line 1806 of yacc.c */ ++#line 1278 "src/p.y" + { +- portset.ApacheStatus.replylimitOP = (yyvsp[-2].number); +- portset.ApacheStatus.replylimit = (yyvsp[-1].number); ++ portset.ApacheStatus.replylimitOP = (yyvsp[(2) - (4)].number); ++ portset.ApacheStatus.replylimit = (yyvsp[(3) - (4)].number); + } +-#line 3987 "src/y.tab.c" /* yacc.c:1646 */ + break; + + case 358: +-#line 1282 "src/p.y" /* yacc.c:1646 */ ++ ++/* Line 1806 of yacc.c */ ++#line 1282 "src/p.y" + { +- portset.ApacheStatus.requestlimitOP = (yyvsp[-2].number); +- portset.ApacheStatus.requestlimit = (yyvsp[-1].number); ++ portset.ApacheStatus.requestlimitOP = (yyvsp[(2) - (4)].number); ++ portset.ApacheStatus.requestlimit = (yyvsp[(3) - (4)].number); + } +-#line 3996 "src/y.tab.c" /* yacc.c:1646 */ + break; + + case 359: +-#line 1286 "src/p.y" /* yacc.c:1646 */ ++ ++/* Line 1806 of yacc.c */ ++#line 1286 "src/p.y" + { +- portset.ApacheStatus.startlimitOP = (yyvsp[-2].number); +- portset.ApacheStatus.startlimit = (yyvsp[-1].number); ++ portset.ApacheStatus.startlimitOP = (yyvsp[(2) - (4)].number); ++ portset.ApacheStatus.startlimit = (yyvsp[(3) - (4)].number); + } +-#line 4005 "src/y.tab.c" /* yacc.c:1646 */ + break; + + case 360: +-#line 1290 "src/p.y" /* yacc.c:1646 */ ++ ++/* Line 1806 of yacc.c */ ++#line 1290 "src/p.y" + { +- portset.ApacheStatus.waitlimitOP = (yyvsp[-2].number); +- portset.ApacheStatus.waitlimit = (yyvsp[-1].number); ++ portset.ApacheStatus.waitlimitOP = (yyvsp[(2) - (4)].number); ++ portset.ApacheStatus.waitlimit = (yyvsp[(3) - (4)].number); + } +-#line 4014 "src/y.tab.c" /* yacc.c:1646 */ + break; + + case 361: +-#line 1294 "src/p.y" /* yacc.c:1646 */ ++ ++/* Line 1806 of yacc.c */ ++#line 1294 "src/p.y" + { +- portset.ApacheStatus.gracefullimitOP = (yyvsp[-2].number); +- portset.ApacheStatus.gracefullimit = (yyvsp[-1].number); ++ portset.ApacheStatus.gracefullimitOP = (yyvsp[(2) - (4)].number); ++ portset.ApacheStatus.gracefullimit = (yyvsp[(3) - (4)].number); + } +-#line 4023 "src/y.tab.c" /* yacc.c:1646 */ + break; + + case 362: +-#line 1298 "src/p.y" /* yacc.c:1646 */ ++ ++/* Line 1806 of yacc.c */ ++#line 1298 "src/p.y" + { +- portset.ApacheStatus.cleanuplimitOP = (yyvsp[-2].number); +- portset.ApacheStatus.cleanuplimit = (yyvsp[-1].number); ++ portset.ApacheStatus.cleanuplimitOP = (yyvsp[(2) - (4)].number); ++ portset.ApacheStatus.cleanuplimit = (yyvsp[(3) - (4)].number); + } +-#line 4032 "src/y.tab.c" /* yacc.c:1646 */ + break; + + case 363: +-#line 1304 "src/p.y" /* yacc.c:1646 */ ++ ++/* Line 1806 of yacc.c */ ++#line 1304 "src/p.y" + { +- seteventaction(&(current)->action_NONEXIST, (yyvsp[-1].number), (yyvsp[0].number)); ++ seteventaction(&(current)->action_NONEXIST, (yyvsp[(6) - (7)].number), (yyvsp[(7) - (7)].number)); + } +-#line 4040 "src/y.tab.c" /* yacc.c:1646 */ + break; + + case 364: +-#line 1310 "src/p.y" /* yacc.c:1646 */ ++ ++/* Line 1806 of yacc.c */ ++#line 1310 "src/p.y" + { +- seteventaction(&(current)->action_PID, (yyvsp[0].number), ACTION_IGNORE); ++ seteventaction(&(current)->action_PID, (yyvsp[(6) - (6)].number), ACTION_IGNORE); + } +-#line 4048 "src/y.tab.c" /* yacc.c:1646 */ + break; + + case 365: +-#line 1315 "src/p.y" /* yacc.c:1646 */ ++ ++/* Line 1806 of yacc.c */ ++#line 1315 "src/p.y" + { +- seteventaction(&(current)->action_PPID, (yyvsp[0].number), ACTION_IGNORE); ++ seteventaction(&(current)->action_PPID, (yyvsp[(6) - (6)].number), ACTION_IGNORE); + } +-#line 4056 "src/y.tab.c" /* yacc.c:1646 */ + break; + + case 366: +-#line 1320 "src/p.y" /* yacc.c:1646 */ ++ ++/* Line 1806 of yacc.c */ ++#line 1320 "src/p.y" + { +- uptimeset.operator = (yyvsp[-6].number); +- uptimeset.uptime = ((unsigned long long)(yyvsp[-5].number) * (yyvsp[-4].number)); +- addeventaction(&(uptimeset).action, (yyvsp[-1].number), (yyvsp[0].number)); ++ uptimeset.operator = (yyvsp[(3) - (9)].number); ++ uptimeset.uptime = ((unsigned long long)(yyvsp[(4) - (9)].number) * (yyvsp[(5) - (9)].number)); ++ addeventaction(&(uptimeset).action, (yyvsp[(8) - (9)].number), (yyvsp[(9) - (9)].number)); + adduptime(&uptimeset); + } +-#line 4067 "src/y.tab.c" /* yacc.c:1646 */ + break; + + case 367: +-#line 1327 "src/p.y" /* yacc.c:1646 */ ++ ++/* Line 1806 of yacc.c */ ++#line 1327 "src/p.y" + { + (yyval.number) = ICMP_ATTEMPT_COUNT; + } +-#line 4075 "src/y.tab.c" /* yacc.c:1646 */ + break; + + case 368: +-#line 1330 "src/p.y" /* yacc.c:1646 */ ++ ++/* Line 1806 of yacc.c */ ++#line 1330 "src/p.y" + { +- (yyval.number) = (yyvsp[0].number); ++ (yyval.number) = (yyvsp[(2) - (2)].number); + } +-#line 4083 "src/y.tab.c" /* yacc.c:1646 */ + break; + + case 369: +-#line 1335 "src/p.y" /* yacc.c:1646 */ ++ ++/* Line 1806 of yacc.c */ ++#line 1335 "src/p.y" + { + (yyval.number) = EXEC_TIMEOUT; + } +-#line 4091 "src/y.tab.c" /* yacc.c:1646 */ + break; + + case 370: +-#line 1338 "src/p.y" /* yacc.c:1646 */ ++ ++/* Line 1806 of yacc.c */ ++#line 1338 "src/p.y" + { +- (yyval.number) = (yyvsp[-1].number); ++ (yyval.number) = (yyvsp[(2) - (3)].number); + } +-#line 4099 "src/y.tab.c" /* yacc.c:1646 */ + break; + + case 371: +-#line 1343 "src/p.y" /* yacc.c:1646 */ ++ ++/* Line 1806 of yacc.c */ ++#line 1343 "src/p.y" + { + (yyval.number) = PROGRAM_TIMEOUT; // Default program status check timeout is 5 min + } +-#line 4107 "src/y.tab.c" /* yacc.c:1646 */ + break; + + case 372: +-#line 1346 "src/p.y" /* yacc.c:1646 */ ++ ++/* Line 1806 of yacc.c */ ++#line 1346 "src/p.y" + { +- (yyval.number) = (yyvsp[-1].number); ++ (yyval.number) = (yyvsp[(2) - (3)].number); + } +-#line 4115 "src/y.tab.c" /* yacc.c:1646 */ + break; + + case 373: +-#line 1351 "src/p.y" /* yacc.c:1646 */ ++ ++/* Line 1806 of yacc.c */ ++#line 1351 "src/p.y" + { + (yyval.number) = NET_TIMEOUT; // timeout is in milliseconds + } +-#line 4123 "src/y.tab.c" /* yacc.c:1646 */ + break; + + case 374: +-#line 1354 "src/p.y" /* yacc.c:1646 */ ++ ++/* Line 1806 of yacc.c */ ++#line 1354 "src/p.y" + { +- (yyval.number) = (yyvsp[-1].number) * 1000; // net timeout is in milliseconds internally ++ (yyval.number) = (yyvsp[(2) - (3)].number) * 1000; // net timeout is in milliseconds internally + } +-#line 4131 "src/y.tab.c" /* yacc.c:1646 */ + break; + + case 375: +-#line 1359 "src/p.y" /* yacc.c:1646 */ ++ ++/* Line 1806 of yacc.c */ ++#line 1359 "src/p.y" + { + (yyval.number) = 1; + } +-#line 4139 "src/y.tab.c" /* yacc.c:1646 */ + break; + + case 376: +-#line 1362 "src/p.y" /* yacc.c:1646 */ ++ ++/* Line 1806 of yacc.c */ ++#line 1362 "src/p.y" + { +- (yyval.number) = (yyvsp[0].number); ++ (yyval.number) = (yyvsp[(2) - (2)].number); + } +-#line 4147 "src/y.tab.c" /* yacc.c:1646 */ + break; + + case 377: +-#line 1367 "src/p.y" /* yacc.c:1646 */ ++ ++/* Line 1806 of yacc.c */ ++#line 1367 "src/p.y" + { +- actionrateset.count = (yyvsp[-5].number); +- actionrateset.cycle = (yyvsp[-3].number); +- addeventaction(&(actionrateset).action, (yyvsp[0].number), ACTION_ALERT); ++ actionrateset.count = (yyvsp[(2) - (7)].number); ++ actionrateset.cycle = (yyvsp[(4) - (7)].number); ++ addeventaction(&(actionrateset).action, (yyvsp[(7) - (7)].number), ACTION_ALERT); + addactionrate(&actionrateset); + } +-#line 4158 "src/y.tab.c" /* yacc.c:1646 */ + break; + + case 378: +-#line 1373 "src/p.y" /* yacc.c:1646 */ ++ ++/* Line 1806 of yacc.c */ ++#line 1373 "src/p.y" + { +- actionrateset.count = (yyvsp[-5].number); +- actionrateset.cycle = (yyvsp[-3].number); ++ actionrateset.count = (yyvsp[(2) - (7)].number); ++ actionrateset.cycle = (yyvsp[(4) - (7)].number); + addeventaction(&(actionrateset).action, ACTION_UNMONITOR, ACTION_ALERT); + addactionrate(&actionrateset); + } +-#line 4169 "src/y.tab.c" /* yacc.c:1646 */ + break; + + case 380: +-#line 1382 "src/p.y" /* yacc.c:1646 */ ++ ++/* Line 1806 of yacc.c */ ++#line 1382 "src/p.y" + { +- seturlrequest((yyvsp[-1].number), (yyvsp[0].string)); +- FREE((yyvsp[0].string)); ++ seturlrequest((yyvsp[(2) - (3)].number), (yyvsp[(3) - (3)].string)); ++ FREE((yyvsp[(3) - (3)].string)); + } +-#line 4178 "src/y.tab.c" /* yacc.c:1646 */ + break; + + case 381: +-#line 1388 "src/p.y" /* yacc.c:1646 */ ++ ++/* Line 1806 of yacc.c */ ++#line 1388 "src/p.y" + { (yyval.number) = Operator_Equal; } +-#line 4184 "src/y.tab.c" /* yacc.c:1646 */ + break; + + case 382: +-#line 1389 "src/p.y" /* yacc.c:1646 */ ++ ++/* Line 1806 of yacc.c */ ++#line 1389 "src/p.y" + { (yyval.number) = Operator_NotEqual; } +-#line 4190 "src/y.tab.c" /* yacc.c:1646 */ + break; + + case 383: +-#line 1392 "src/p.y" /* yacc.c:1646 */ ++ ++/* Line 1806 of yacc.c */ ++#line 1392 "src/p.y" + { + mailset.events = Event_All; +- addmail((yyvsp[-2].string), &mailset, ¤t->maillist); ++ addmail((yyvsp[(1) - (3)].string), &mailset, ¤t->maillist); + } +-#line 4199 "src/y.tab.c" /* yacc.c:1646 */ + break; + + case 384: +-#line 1396 "src/p.y" /* yacc.c:1646 */ ++ ++/* Line 1806 of yacc.c */ ++#line 1396 "src/p.y" + { +- addmail((yyvsp[-5].string), &mailset, ¤t->maillist); ++ addmail((yyvsp[(1) - (6)].string), &mailset, ¤t->maillist); + } +-#line 4207 "src/y.tab.c" /* yacc.c:1646 */ + break; + + case 385: +-#line 1399 "src/p.y" /* yacc.c:1646 */ ++ ++/* Line 1806 of yacc.c */ ++#line 1399 "src/p.y" + { + mailset.events = ~mailset.events; +- addmail((yyvsp[-6].string), &mailset, ¤t->maillist); ++ addmail((yyvsp[(1) - (7)].string), &mailset, ¤t->maillist); + } +-#line 4216 "src/y.tab.c" /* yacc.c:1646 */ + break; + + case 386: +-#line 1403 "src/p.y" /* yacc.c:1646 */ ++ ++/* Line 1806 of yacc.c */ ++#line 1403 "src/p.y" + { +- addmail((yyvsp[0].string), &mailset, ¤t->maillist); ++ addmail((yyvsp[(1) - (1)].string), &mailset, ¤t->maillist); + } +-#line 4224 "src/y.tab.c" /* yacc.c:1646 */ + break; + + case 387: +-#line 1408 "src/p.y" /* yacc.c:1646 */ +- { (yyval.string) = (yyvsp[0].string); } +-#line 4230 "src/y.tab.c" /* yacc.c:1646 */ ++ ++/* Line 1806 of yacc.c */ ++#line 1408 "src/p.y" ++ { (yyval.string) = (yyvsp[(2) - (2)].string); } + break; + + case 388: +-#line 1411 "src/p.y" /* yacc.c:1646 */ +- { (yyval.string) = (yyvsp[0].string); } +-#line 4236 "src/y.tab.c" /* yacc.c:1646 */ ++ ++/* Line 1806 of yacc.c */ ++#line 1411 "src/p.y" ++ { (yyval.string) = (yyvsp[(2) - (2)].string); } + break; + + case 391: +-#line 1418 "src/p.y" /* yacc.c:1646 */ ++ ++/* Line 1806 of yacc.c */ ++#line 1418 "src/p.y" + { mailset.events |= Event_Action; } +-#line 4242 "src/y.tab.c" /* yacc.c:1646 */ + break; + + case 392: +-#line 1419 "src/p.y" /* yacc.c:1646 */ ++ ++/* Line 1806 of yacc.c */ ++#line 1419 "src/p.y" + { mailset.events |= Event_Checksum; } +-#line 4248 "src/y.tab.c" /* yacc.c:1646 */ + break; + + case 393: +-#line 1420 "src/p.y" /* yacc.c:1646 */ ++ ++/* Line 1806 of yacc.c */ ++#line 1420 "src/p.y" + { mailset.events |= Event_Connection; } +-#line 4254 "src/y.tab.c" /* yacc.c:1646 */ + break; + + case 394: +-#line 1421 "src/p.y" /* yacc.c:1646 */ ++ ++/* Line 1806 of yacc.c */ ++#line 1421 "src/p.y" + { mailset.events |= Event_Content; } +-#line 4260 "src/y.tab.c" /* yacc.c:1646 */ + break; + + case 395: +-#line 1422 "src/p.y" /* yacc.c:1646 */ ++ ++/* Line 1806 of yacc.c */ ++#line 1422 "src/p.y" + { mailset.events |= Event_Data; } +-#line 4266 "src/y.tab.c" /* yacc.c:1646 */ + break; + + case 396: +-#line 1423 "src/p.y" /* yacc.c:1646 */ ++ ++/* Line 1806 of yacc.c */ ++#line 1423 "src/p.y" + { mailset.events |= Event_Exec; } +-#line 4272 "src/y.tab.c" /* yacc.c:1646 */ + break; + + case 397: +-#line 1424 "src/p.y" /* yacc.c:1646 */ ++ ++/* Line 1806 of yacc.c */ ++#line 1424 "src/p.y" + { mailset.events |= Event_Fsflag; } +-#line 4278 "src/y.tab.c" /* yacc.c:1646 */ + break; + + case 398: +-#line 1425 "src/p.y" /* yacc.c:1646 */ ++ ++/* Line 1806 of yacc.c */ ++#line 1425 "src/p.y" + { mailset.events |= Event_Gid; } +-#line 4284 "src/y.tab.c" /* yacc.c:1646 */ + break; + + case 399: +-#line 1426 "src/p.y" /* yacc.c:1646 */ ++ ++/* Line 1806 of yacc.c */ ++#line 1426 "src/p.y" + { mailset.events |= Event_Icmp; } +-#line 4290 "src/y.tab.c" /* yacc.c:1646 */ + break; + + case 400: +-#line 1427 "src/p.y" /* yacc.c:1646 */ ++ ++/* Line 1806 of yacc.c */ ++#line 1427 "src/p.y" + { mailset.events |= Event_Instance; } +-#line 4296 "src/y.tab.c" /* yacc.c:1646 */ + break; + + case 401: +-#line 1428 "src/p.y" /* yacc.c:1646 */ ++ ++/* Line 1806 of yacc.c */ ++#line 1428 "src/p.y" + { mailset.events |= Event_Invalid; } +-#line 4302 "src/y.tab.c" /* yacc.c:1646 */ + break; + + case 402: +-#line 1429 "src/p.y" /* yacc.c:1646 */ ++ ++/* Line 1806 of yacc.c */ ++#line 1429 "src/p.y" + { mailset.events |= Event_Nonexist; } +-#line 4308 "src/y.tab.c" /* yacc.c:1646 */ + break; + + case 403: +-#line 1430 "src/p.y" /* yacc.c:1646 */ ++ ++/* Line 1806 of yacc.c */ ++#line 1430 "src/p.y" + { mailset.events |= Event_Permission; } +-#line 4314 "src/y.tab.c" /* yacc.c:1646 */ + break; + + case 404: +-#line 1431 "src/p.y" /* yacc.c:1646 */ ++ ++/* Line 1806 of yacc.c */ ++#line 1431 "src/p.y" + { mailset.events |= Event_Pid; } +-#line 4320 "src/y.tab.c" /* yacc.c:1646 */ + break; + + case 405: +-#line 1432 "src/p.y" /* yacc.c:1646 */ ++ ++/* Line 1806 of yacc.c */ ++#line 1432 "src/p.y" + { mailset.events |= Event_PPid; } +-#line 4326 "src/y.tab.c" /* yacc.c:1646 */ + break; + + case 406: +-#line 1433 "src/p.y" /* yacc.c:1646 */ ++ ++/* Line 1806 of yacc.c */ ++#line 1433 "src/p.y" + { mailset.events |= Event_Resource; } +-#line 4332 "src/y.tab.c" /* yacc.c:1646 */ + break; + + case 407: +-#line 1434 "src/p.y" /* yacc.c:1646 */ ++ ++/* Line 1806 of yacc.c */ ++#line 1434 "src/p.y" + { mailset.events |= Event_Size; } +-#line 4338 "src/y.tab.c" /* yacc.c:1646 */ + break; + + case 408: +-#line 1435 "src/p.y" /* yacc.c:1646 */ ++ ++/* Line 1806 of yacc.c */ ++#line 1435 "src/p.y" + { mailset.events |= Event_Status; } +-#line 4344 "src/y.tab.c" /* yacc.c:1646 */ + break; + + case 409: +-#line 1436 "src/p.y" /* yacc.c:1646 */ ++ ++/* Line 1806 of yacc.c */ ++#line 1436 "src/p.y" + { mailset.events |= Event_Timeout; } +-#line 4350 "src/y.tab.c" /* yacc.c:1646 */ + break; + + case 410: +-#line 1437 "src/p.y" /* yacc.c:1646 */ ++ ++/* Line 1806 of yacc.c */ ++#line 1437 "src/p.y" + { mailset.events |= Event_Timestamp; } +-#line 4356 "src/y.tab.c" /* yacc.c:1646 */ + break; + + case 411: +-#line 1438 "src/p.y" /* yacc.c:1646 */ ++ ++/* Line 1806 of yacc.c */ ++#line 1438 "src/p.y" + { mailset.events |= Event_Uid; } +-#line 4362 "src/y.tab.c" /* yacc.c:1646 */ + break; + + case 412: +-#line 1439 "src/p.y" /* yacc.c:1646 */ ++ ++/* Line 1806 of yacc.c */ ++#line 1439 "src/p.y" + { mailset.events |= Event_Uptime; } +-#line 4368 "src/y.tab.c" /* yacc.c:1646 */ + break; + + case 417: +-#line 1450 "src/p.y" /* yacc.c:1646 */ +- { mailset.from = (yyvsp[0].string); } +-#line 4374 "src/y.tab.c" /* yacc.c:1646 */ ++ ++/* Line 1806 of yacc.c */ ++#line 1450 "src/p.y" ++ { mailset.from = (yyvsp[(1) - (1)].string); } + break; + + case 418: +-#line 1451 "src/p.y" /* yacc.c:1646 */ +- { mailset.replyto = (yyvsp[0].string); } +-#line 4380 "src/y.tab.c" /* yacc.c:1646 */ ++ ++/* Line 1806 of yacc.c */ ++#line 1451 "src/p.y" ++ { mailset.replyto = (yyvsp[(1) - (1)].string); } + break; + + case 419: +-#line 1452 "src/p.y" /* yacc.c:1646 */ +- { mailset.subject = (yyvsp[0].string); } +-#line 4386 "src/y.tab.c" /* yacc.c:1646 */ ++ ++/* Line 1806 of yacc.c */ ++#line 1452 "src/p.y" ++ { mailset.subject = (yyvsp[(1) - (1)].string); } + break; + + case 420: +-#line 1453 "src/p.y" /* yacc.c:1646 */ +- { mailset.message = (yyvsp[0].string); } +-#line 4392 "src/y.tab.c" /* yacc.c:1646 */ ++ ++/* Line 1806 of yacc.c */ ++#line 1453 "src/p.y" ++ { mailset.message = (yyvsp[(1) - (1)].string); } + break; + + case 421: +-#line 1456 "src/p.y" /* yacc.c:1646 */ ++ ++/* Line 1806 of yacc.c */ ++#line 1456 "src/p.y" + { + current->every.type = EVERY_SKIPCYCLES; +- current->every.spec.cycle.number = (yyvsp[-1].number); ++ current->every.spec.cycle.number = (yyvsp[(2) - (3)].number); + } +-#line 4401 "src/y.tab.c" /* yacc.c:1646 */ + break; + + case 422: +-#line 1460 "src/p.y" /* yacc.c:1646 */ ++ ++/* Line 1806 of yacc.c */ ++#line 1460 "src/p.y" + { + current->every.type = EVERY_CRON; +- current->every.spec.cron = (yyvsp[0].string); ++ current->every.spec.cron = (yyvsp[(2) - (2)].string); + } +-#line 4410 "src/y.tab.c" /* yacc.c:1646 */ + break; + + case 423: +-#line 1464 "src/p.y" /* yacc.c:1646 */ ++ ++/* Line 1806 of yacc.c */ ++#line 1464 "src/p.y" + { + current->every.type = EVERY_NOTINCRON; +- current->every.spec.cron = (yyvsp[0].string); ++ current->every.spec.cron = (yyvsp[(2) - (2)].string); + } +-#line 4419 "src/y.tab.c" /* yacc.c:1646 */ + break; + + case 424: +-#line 1470 "src/p.y" /* yacc.c:1646 */ ++ ++/* Line 1806 of yacc.c */ ++#line 1470 "src/p.y" + { + current->mode = MODE_ACTIVE; + } +-#line 4427 "src/y.tab.c" /* yacc.c:1646 */ + break; + + case 425: +-#line 1473 "src/p.y" /* yacc.c:1646 */ ++ ++/* Line 1806 of yacc.c */ ++#line 1473 "src/p.y" + { + current->mode = MODE_PASSIVE; + } +-#line 4435 "src/y.tab.c" /* yacc.c:1646 */ + break; + + case 426: +-#line 1476 "src/p.y" /* yacc.c:1646 */ ++ ++/* Line 1806 of yacc.c */ ++#line 1476 "src/p.y" + { + current->mode = MODE_MANUAL; + current->monitor = MONITOR_NOT; + } +-#line 4444 "src/y.tab.c" /* yacc.c:1646 */ + break; + + case 427: +-#line 1482 "src/p.y" /* yacc.c:1646 */ +- { addservicegroup((yyvsp[0].string)); FREE((yyvsp[0].string));} +-#line 4450 "src/y.tab.c" /* yacc.c:1646 */ ++ ++/* Line 1806 of yacc.c */ ++#line 1482 "src/p.y" ++ { addservicegroup((yyvsp[(2) - (2)].string)); FREE((yyvsp[(2) - (2)].string));} + break; + + case 431: +-#line 1493 "src/p.y" /* yacc.c:1646 */ +- { adddependant((yyvsp[0].string)); } +-#line 4456 "src/y.tab.c" /* yacc.c:1646 */ ++ ++/* Line 1806 of yacc.c */ ++#line 1493 "src/p.y" ++ { adddependant((yyvsp[(1) - (1)].string)); } + break; + + case 432: +-#line 1496 "src/p.y" /* yacc.c:1646 */ ++ ++/* Line 1806 of yacc.c */ ++#line 1496 "src/p.y" + { + statusset.initialized = TRUE; +- statusset.operator = (yyvsp[-5].number); +- statusset.return_value = (yyvsp[-4].number); +- addeventaction(&(statusset).action, (yyvsp[-1].number), (yyvsp[0].number)); ++ statusset.operator = (yyvsp[(3) - (8)].number); ++ statusset.return_value = (yyvsp[(4) - (8)].number); ++ addeventaction(&(statusset).action, (yyvsp[(7) - (8)].number), (yyvsp[(8) - (8)].number)); + addstatus(&statusset); + } +-#line 4468 "src/y.tab.c" /* yacc.c:1646 */ + break; + + case 433: +-#line 1503 "src/p.y" /* yacc.c:1646 */ ++ ++/* Line 1806 of yacc.c */ ++#line 1503 "src/p.y" + { + statusset.initialized = FALSE; + statusset.operator = Operator_Changed; + statusset.return_value = 0; +- addeventaction(&(statusset).action, (yyvsp[0].number), ACTION_IGNORE); ++ addeventaction(&(statusset).action, (yyvsp[(6) - (6)].number), ACTION_IGNORE); + addstatus(&statusset); + } +-#line 4480 "src/y.tab.c" /* yacc.c:1646 */ + break; + + case 434: +-#line 1512 "src/p.y" /* yacc.c:1646 */ ++ ++/* Line 1806 of yacc.c */ ++#line 1512 "src/p.y" + { +- addeventaction(&(resourceset).action, (yyvsp[-1].number), (yyvsp[0].number)); ++ addeventaction(&(resourceset).action, (yyvsp[(5) - (6)].number), (yyvsp[(6) - (6)].number)); + addresource(&resourceset); + } +-#line 4489 "src/y.tab.c" /* yacc.c:1646 */ + break; + + case 441: +-#line 1528 "src/p.y" /* yacc.c:1646 */ ++ ++/* Line 1806 of yacc.c */ ++#line 1528 "src/p.y" + { +- addeventaction(&(resourceset).action, (yyvsp[-1].number), (yyvsp[0].number)); ++ addeventaction(&(resourceset).action, (yyvsp[(5) - (6)].number), (yyvsp[(6) - (6)].number)); + addresource(&resourceset); + } +-#line 4498 "src/y.tab.c" /* yacc.c:1646 */ + break; + + case 448: +-#line 1544 "src/p.y" /* yacc.c:1646 */ ++ ++/* Line 1806 of yacc.c */ ++#line 1544 "src/p.y" + { + resourceset.resource_id = RESOURCE_ID_CPU_PERCENT; +- resourceset.operator = (yyvsp[-2].number); +- resourceset.limit = ((yyvsp[-1].number) * 10); ++ resourceset.operator = (yyvsp[(2) - (4)].number); ++ resourceset.limit = ((yyvsp[(3) - (4)].number) * 10); + } +-#line 4508 "src/y.tab.c" /* yacc.c:1646 */ + break; + + case 449: +-#line 1549 "src/p.y" /* yacc.c:1646 */ ++ ++/* Line 1806 of yacc.c */ ++#line 1549 "src/p.y" + { + resourceset.resource_id = RESOURCE_ID_TOTAL_CPU_PERCENT; +- resourceset.operator = (yyvsp[-2].number); +- resourceset.limit = ((yyvsp[-1].number) * 10); ++ resourceset.operator = (yyvsp[(2) - (4)].number); ++ resourceset.limit = ((yyvsp[(3) - (4)].number) * 10); + } +-#line 4518 "src/y.tab.c" /* yacc.c:1646 */ + break; + + case 450: +-#line 1556 "src/p.y" /* yacc.c:1646 */ ++ ++/* Line 1806 of yacc.c */ ++#line 1556 "src/p.y" + { +- resourceset.resource_id = (yyvsp[-3].number); +- resourceset.operator = (yyvsp[-2].number); +- resourceset.limit = ((yyvsp[-1].number) * 10); ++ resourceset.resource_id = (yyvsp[(1) - (4)].number); ++ resourceset.operator = (yyvsp[(2) - (4)].number); ++ resourceset.limit = ((yyvsp[(3) - (4)].number) * 10); + } +-#line 4528 "src/y.tab.c" /* yacc.c:1646 */ + break; + + case 451: +-#line 1563 "src/p.y" /* yacc.c:1646 */ ++ ++/* Line 1806 of yacc.c */ ++#line 1563 "src/p.y" + { (yyval.number) = RESOURCE_ID_CPUUSER; } +-#line 4534 "src/y.tab.c" /* yacc.c:1646 */ + break; + + case 452: +-#line 1564 "src/p.y" /* yacc.c:1646 */ ++ ++/* Line 1806 of yacc.c */ ++#line 1564 "src/p.y" + { (yyval.number) = RESOURCE_ID_CPUSYSTEM; } +-#line 4540 "src/y.tab.c" /* yacc.c:1646 */ + break; + + case 453: +-#line 1565 "src/p.y" /* yacc.c:1646 */ ++ ++/* Line 1806 of yacc.c */ ++#line 1565 "src/p.y" + { (yyval.number) = RESOURCE_ID_CPUWAIT; } +-#line 4546 "src/y.tab.c" /* yacc.c:1646 */ + break; + + case 454: +-#line 1568 "src/p.y" /* yacc.c:1646 */ ++ ++/* Line 1806 of yacc.c */ ++#line 1568 "src/p.y" + { + resourceset.resource_id = RESOURCE_ID_MEM_KBYTE; +- resourceset.operator = (yyvsp[-2].number); +- resourceset.limit = (int) ((yyvsp[-1].real) * ((yyvsp[0].number) / 1024.0)); ++ resourceset.operator = (yyvsp[(2) - (4)].number); ++ resourceset.limit = (int) ((yyvsp[(3) - (4)].real) * ((yyvsp[(4) - (4)].number) / 1024.0)); + } +-#line 4556 "src/y.tab.c" /* yacc.c:1646 */ + break; + + case 455: +-#line 1573 "src/p.y" /* yacc.c:1646 */ ++ ++/* Line 1806 of yacc.c */ ++#line 1573 "src/p.y" + { + resourceset.resource_id = RESOURCE_ID_MEM_PERCENT; +- resourceset.operator = (yyvsp[-2].number); +- resourceset.limit = ((yyvsp[-1].number) * 10); ++ resourceset.operator = (yyvsp[(2) - (4)].number); ++ resourceset.limit = ((yyvsp[(3) - (4)].number) * 10); + } +-#line 4566 "src/y.tab.c" /* yacc.c:1646 */ + break; + + case 456: +-#line 1578 "src/p.y" /* yacc.c:1646 */ ++ ++/* Line 1806 of yacc.c */ ++#line 1578 "src/p.y" + { + resourceset.resource_id = RESOURCE_ID_TOTAL_MEM_KBYTE; +- resourceset.operator = (yyvsp[-2].number); +- resourceset.limit = (int) ((yyvsp[-1].real) * ((yyvsp[0].number) / 1024.0)); ++ resourceset.operator = (yyvsp[(2) - (4)].number); ++ resourceset.limit = (int) ((yyvsp[(3) - (4)].real) * ((yyvsp[(4) - (4)].number) / 1024.0)); + } +-#line 4576 "src/y.tab.c" /* yacc.c:1646 */ + break; + + case 457: +-#line 1583 "src/p.y" /* yacc.c:1646 */ ++ ++/* Line 1806 of yacc.c */ ++#line 1583 "src/p.y" + { + resourceset.resource_id = RESOURCE_ID_TOTAL_MEM_PERCENT; +- resourceset.operator = (yyvsp[-2].number); +- resourceset.limit = ((yyvsp[-1].number) * 10); ++ resourceset.operator = (yyvsp[(2) - (4)].number); ++ resourceset.limit = ((yyvsp[(3) - (4)].number) * 10); + } +-#line 4586 "src/y.tab.c" /* yacc.c:1646 */ + break; + + case 458: +-#line 1590 "src/p.y" /* yacc.c:1646 */ ++ ++/* Line 1806 of yacc.c */ ++#line 1590 "src/p.y" + { + resourceset.resource_id = RESOURCE_ID_SWAP_KBYTE; +- resourceset.operator = (yyvsp[-2].number); +- resourceset.limit = (int) ((yyvsp[-1].real) * ((yyvsp[0].number) / 1024.0)); ++ resourceset.operator = (yyvsp[(2) - (4)].number); ++ resourceset.limit = (int) ((yyvsp[(3) - (4)].real) * ((yyvsp[(4) - (4)].number) / 1024.0)); + } +-#line 4596 "src/y.tab.c" /* yacc.c:1646 */ + break; + + case 459: +-#line 1595 "src/p.y" /* yacc.c:1646 */ ++ ++/* Line 1806 of yacc.c */ ++#line 1595 "src/p.y" + { + resourceset.resource_id = RESOURCE_ID_SWAP_PERCENT; +- resourceset.operator = (yyvsp[-2].number); +- resourceset.limit = ((yyvsp[-1].number) * 10); ++ resourceset.operator = (yyvsp[(2) - (4)].number); ++ resourceset.limit = ((yyvsp[(3) - (4)].number) * 10); + } +-#line 4606 "src/y.tab.c" /* yacc.c:1646 */ + break; + + case 460: +-#line 1602 "src/p.y" /* yacc.c:1646 */ ++ ++/* Line 1806 of yacc.c */ ++#line 1602 "src/p.y" + { + resourceset.resource_id = RESOURCE_ID_CHILDREN; +- resourceset.operator = (yyvsp[-1].number); +- resourceset.limit = (int) (yyvsp[0].number); ++ resourceset.operator = (yyvsp[(2) - (3)].number); ++ resourceset.limit = (int) (yyvsp[(3) - (3)].number); + } +-#line 4616 "src/y.tab.c" /* yacc.c:1646 */ + break; + + case 461: +-#line 1609 "src/p.y" /* yacc.c:1646 */ ++ ++/* Line 1806 of yacc.c */ ++#line 1609 "src/p.y" + { +- resourceset.resource_id = (yyvsp[-2].number); +- resourceset.operator = (yyvsp[-1].number); +- resourceset.limit = (int) ((yyvsp[0].real) * 10.0); ++ resourceset.resource_id = (yyvsp[(1) - (3)].number); ++ resourceset.operator = (yyvsp[(2) - (3)].number); ++ resourceset.limit = (int) ((yyvsp[(3) - (3)].real) * 10.0); + } +-#line 4626 "src/y.tab.c" /* yacc.c:1646 */ + break; + + case 462: +-#line 1616 "src/p.y" /* yacc.c:1646 */ ++ ++/* Line 1806 of yacc.c */ ++#line 1616 "src/p.y" + { (yyval.number) = RESOURCE_ID_LOAD1; } +-#line 4632 "src/y.tab.c" /* yacc.c:1646 */ + break; + + case 463: +-#line 1617 "src/p.y" /* yacc.c:1646 */ ++ ++/* Line 1806 of yacc.c */ ++#line 1617 "src/p.y" + { (yyval.number) = RESOURCE_ID_LOAD5; } +-#line 4638 "src/y.tab.c" /* yacc.c:1646 */ + break; + + case 464: +-#line 1618 "src/p.y" /* yacc.c:1646 */ ++ ++/* Line 1806 of yacc.c */ ++#line 1618 "src/p.y" + { (yyval.number) = RESOURCE_ID_LOAD15; } +-#line 4644 "src/y.tab.c" /* yacc.c:1646 */ + break; + + case 465: +-#line 1621 "src/p.y" /* yacc.c:1646 */ +- { (yyval.real) = (yyvsp[0].real); } +-#line 4650 "src/y.tab.c" /* yacc.c:1646 */ ++ ++/* Line 1806 of yacc.c */ ++#line 1621 "src/p.y" ++ { (yyval.real) = (yyvsp[(1) - (1)].real); } + break; + + case 466: +-#line 1622 "src/p.y" /* yacc.c:1646 */ +- { (yyval.real) = (float) (yyvsp[0].number); } +-#line 4656 "src/y.tab.c" /* yacc.c:1646 */ ++ ++/* Line 1806 of yacc.c */ ++#line 1622 "src/p.y" ++ { (yyval.real) = (float) (yyvsp[(1) - (1)].number); } + break; + + case 467: +-#line 1625 "src/p.y" /* yacc.c:1646 */ ++ ++/* Line 1806 of yacc.c */ ++#line 1625 "src/p.y" + { +- timestampset.operator = (yyvsp[-6].number); +- timestampset.time = ((yyvsp[-5].number) * (yyvsp[-4].number)); +- addeventaction(&(timestampset).action, (yyvsp[-1].number), (yyvsp[0].number)); ++ timestampset.operator = (yyvsp[(3) - (9)].number); ++ timestampset.time = ((yyvsp[(4) - (9)].number) * (yyvsp[(5) - (9)].number)); ++ addeventaction(&(timestampset).action, (yyvsp[(8) - (9)].number), (yyvsp[(9) - (9)].number)); + addtimestamp(×tampset, FALSE); + } +-#line 4667 "src/y.tab.c" /* yacc.c:1646 */ + break; + + case 468: +-#line 1631 "src/p.y" /* yacc.c:1646 */ ++ ++/* Line 1806 of yacc.c */ ++#line 1631 "src/p.y" + { + timestampset.test_changes = TRUE; +- addeventaction(&(timestampset).action, (yyvsp[0].number), ACTION_IGNORE); ++ addeventaction(&(timestampset).action, (yyvsp[(6) - (6)].number), ACTION_IGNORE); + addtimestamp(×tampset, TRUE); + } +-#line 4677 "src/y.tab.c" /* yacc.c:1646 */ + break; + + case 469: +-#line 1638 "src/p.y" /* yacc.c:1646 */ ++ ++/* Line 1806 of yacc.c */ ++#line 1638 "src/p.y" + { (yyval.number) = Operator_Equal; } +-#line 4683 "src/y.tab.c" /* yacc.c:1646 */ + break; + + case 470: +-#line 1639 "src/p.y" /* yacc.c:1646 */ ++ ++/* Line 1806 of yacc.c */ ++#line 1639 "src/p.y" + { (yyval.number) = Operator_Greater; } +-#line 4689 "src/y.tab.c" /* yacc.c:1646 */ + break; + + case 471: +-#line 1640 "src/p.y" /* yacc.c:1646 */ ++ ++/* Line 1806 of yacc.c */ ++#line 1640 "src/p.y" + { (yyval.number) = Operator_Less; } +-#line 4695 "src/y.tab.c" /* yacc.c:1646 */ + break; + + case 472: +-#line 1641 "src/p.y" /* yacc.c:1646 */ ++ ++/* Line 1806 of yacc.c */ ++#line 1641 "src/p.y" + { (yyval.number) = Operator_Equal; } +-#line 4701 "src/y.tab.c" /* yacc.c:1646 */ + break; + + case 473: +-#line 1642 "src/p.y" /* yacc.c:1646 */ ++ ++/* Line 1806 of yacc.c */ ++#line 1642 "src/p.y" + { (yyval.number) = Operator_NotEqual; } +-#line 4707 "src/y.tab.c" /* yacc.c:1646 */ + break; + + case 474: +-#line 1643 "src/p.y" /* yacc.c:1646 */ ++ ++/* Line 1806 of yacc.c */ ++#line 1643 "src/p.y" + { (yyval.number) = Operator_Changed; } +-#line 4713 "src/y.tab.c" /* yacc.c:1646 */ + break; + + case 475: +-#line 1646 "src/p.y" /* yacc.c:1646 */ ++ ++/* Line 1806 of yacc.c */ ++#line 1646 "src/p.y" + { (yyval.number) = TIME_SECOND; } +-#line 4719 "src/y.tab.c" /* yacc.c:1646 */ + break; + + case 476: +-#line 1647 "src/p.y" /* yacc.c:1646 */ ++ ++/* Line 1806 of yacc.c */ ++#line 1647 "src/p.y" + { (yyval.number) = TIME_SECOND; } +-#line 4725 "src/y.tab.c" /* yacc.c:1646 */ + break; + + case 477: +-#line 1648 "src/p.y" /* yacc.c:1646 */ ++ ++/* Line 1806 of yacc.c */ ++#line 1648 "src/p.y" + { (yyval.number) = TIME_MINUTE; } +-#line 4731 "src/y.tab.c" /* yacc.c:1646 */ + break; + + case 478: +-#line 1649 "src/p.y" /* yacc.c:1646 */ ++ ++/* Line 1806 of yacc.c */ ++#line 1649 "src/p.y" + { (yyval.number) = TIME_HOUR; } +-#line 4737 "src/y.tab.c" /* yacc.c:1646 */ + break; + + case 479: +-#line 1650 "src/p.y" /* yacc.c:1646 */ ++ ++/* Line 1806 of yacc.c */ ++#line 1650 "src/p.y" + { (yyval.number) = TIME_DAY; } +-#line 4743 "src/y.tab.c" /* yacc.c:1646 */ + break; + + case 480: +-#line 1653 "src/p.y" /* yacc.c:1646 */ ++ ++/* Line 1806 of yacc.c */ ++#line 1653 "src/p.y" + { (yyval.number) = ACTION_ALERT; } +-#line 4749 "src/y.tab.c" /* yacc.c:1646 */ + break; + + case 481: +-#line 1654 "src/p.y" /* yacc.c:1646 */ ++ ++/* Line 1806 of yacc.c */ ++#line 1654 "src/p.y" + { (yyval.number) = ACTION_EXEC; } +-#line 4755 "src/y.tab.c" /* yacc.c:1646 */ + break; + + case 482: +-#line 1655 "src/p.y" /* yacc.c:1646 */ ++ ++/* Line 1806 of yacc.c */ ++#line 1655 "src/p.y" + { (yyval.number) = ACTION_EXEC; } +-#line 4761 "src/y.tab.c" /* yacc.c:1646 */ + break; + + case 483: +-#line 1656 "src/p.y" /* yacc.c:1646 */ ++ ++/* Line 1806 of yacc.c */ ++#line 1656 "src/p.y" + { (yyval.number) = ACTION_RESTART; } +-#line 4767 "src/y.tab.c" /* yacc.c:1646 */ + break; + + case 484: +-#line 1657 "src/p.y" /* yacc.c:1646 */ ++ ++/* Line 1806 of yacc.c */ ++#line 1657 "src/p.y" + { (yyval.number) = ACTION_START; } +-#line 4773 "src/y.tab.c" /* yacc.c:1646 */ + break; + + case 485: +-#line 1658 "src/p.y" /* yacc.c:1646 */ ++ ++/* Line 1806 of yacc.c */ ++#line 1658 "src/p.y" + { (yyval.number) = ACTION_STOP; } +-#line 4779 "src/y.tab.c" /* yacc.c:1646 */ + break; + + case 486: +-#line 1659 "src/p.y" /* yacc.c:1646 */ ++ ++/* Line 1806 of yacc.c */ ++#line 1659 "src/p.y" + { (yyval.number) = ACTION_UNMONITOR; } +-#line 4785 "src/y.tab.c" /* yacc.c:1646 */ + break; + + case 487: +-#line 1662 "src/p.y" /* yacc.c:1646 */ ++ ++/* Line 1806 of yacc.c */ ++#line 1662 "src/p.y" + { +- (yyval.number) = (yyvsp[0].number); +- if ((yyvsp[0].number) == ACTION_EXEC && command) { ++ (yyval.number) = (yyvsp[(1) - (1)].number); ++ if ((yyvsp[(1) - (1)].number) == ACTION_EXEC && command) { + command1 = command; + command = NULL; + } + } +-#line 4797 "src/y.tab.c" /* yacc.c:1646 */ + break; + + case 488: +-#line 1671 "src/p.y" /* yacc.c:1646 */ ++ ++/* Line 1806 of yacc.c */ ++#line 1671 "src/p.y" + { +- (yyval.number) = (yyvsp[0].number); +- if ((yyvsp[0].number) == ACTION_EXEC && command) { ++ (yyval.number) = (yyvsp[(1) - (1)].number); ++ if ((yyvsp[(1) - (1)].number) == ACTION_EXEC && command) { + command2 = command; + command = NULL; + } + } +-#line 4809 "src/y.tab.c" /* yacc.c:1646 */ + break; + + case 490: +-#line 1681 "src/p.y" /* yacc.c:1646 */ ++ ++/* Line 1806 of yacc.c */ ++#line 1681 "src/p.y" + { +- rate1.count = (yyvsp[-1].number); +- rate1.cycles = (yyvsp[-1].number); ++ rate1.count = (yyvsp[(1) - (2)].number); ++ rate1.cycles = (yyvsp[(1) - (2)].number); + if (rate1.cycles < 1 || rate1.cycles > BITMAP_MAX) + yyerror2("The number of cycles must be between 1 and %d", BITMAP_MAX); + } +-#line 4820 "src/y.tab.c" /* yacc.c:1646 */ + break; + + case 491: +-#line 1687 "src/p.y" /* yacc.c:1646 */ ++ ++/* Line 1806 of yacc.c */ ++#line 1687 "src/p.y" + { +- rate1.count = (yyvsp[-2].number); +- rate1.cycles = (yyvsp[-1].number); ++ rate1.count = (yyvsp[(1) - (3)].number); ++ rate1.cycles = (yyvsp[(2) - (3)].number); + if (rate1.cycles < 1 || rate1.cycles > BITMAP_MAX) + yyerror2("The number of cycles must be between 1 and %d", BITMAP_MAX); + if (rate1.count < 1 || rate1.count > rate1.cycles) + yyerror2("The number of events must be bigger then 0 and less than poll cycles"); + } +-#line 4833 "src/y.tab.c" /* yacc.c:1646 */ + break; + + case 493: +-#line 1698 "src/p.y" /* yacc.c:1646 */ ++ ++/* Line 1806 of yacc.c */ ++#line 1698 "src/p.y" + { +- rate2.count = (yyvsp[-1].number); +- rate2.cycles = (yyvsp[-1].number); ++ rate2.count = (yyvsp[(1) - (2)].number); ++ rate2.cycles = (yyvsp[(1) - (2)].number); + if (rate2.cycles < 1 || rate2.cycles > BITMAP_MAX) + yyerror2("The number of cycles must be between 1 and %d", BITMAP_MAX); + } +-#line 4844 "src/y.tab.c" /* yacc.c:1646 */ + break; + + case 494: +-#line 1704 "src/p.y" /* yacc.c:1646 */ ++ ++/* Line 1806 of yacc.c */ ++#line 1704 "src/p.y" + { +- rate2.count = (yyvsp[-2].number); +- rate2.cycles = (yyvsp[-1].number); ++ rate2.count = (yyvsp[(1) - (3)].number); ++ rate2.cycles = (yyvsp[(2) - (3)].number); + if (rate2.cycles < 1 || rate2.cycles > BITMAP_MAX) + yyerror2("The number of cycles must be between 1 and %d", BITMAP_MAX); + if (rate2.count < 1 || rate2.count > rate2.cycles) + yyerror2("The number of events must be bigger then 0 and less than poll cycles"); + } +-#line 4857 "src/y.tab.c" /* yacc.c:1646 */ + break; + + case 495: +-#line 1714 "src/p.y" /* yacc.c:1646 */ ++ ++/* Line 1806 of yacc.c */ ++#line 1714 "src/p.y" + { + (yyval.number) = ACTION_ALERT; + } +-#line 4865 "src/y.tab.c" /* yacc.c:1646 */ + break; + + case 496: +-#line 1717 "src/p.y" /* yacc.c:1646 */ ++ ++/* Line 1806 of yacc.c */ ++#line 1717 "src/p.y" + { +- (yyval.number) = (yyvsp[0].number); ++ (yyval.number) = (yyvsp[(6) - (6)].number); + } +-#line 4873 "src/y.tab.c" /* yacc.c:1646 */ + break; + + case 497: +-#line 1720 "src/p.y" /* yacc.c:1646 */ ++ ++/* Line 1806 of yacc.c */ ++#line 1720 "src/p.y" + { +- (yyval.number) = (yyvsp[0].number); ++ (yyval.number) = (yyvsp[(6) - (6)].number); + } +-#line 4881 "src/y.tab.c" /* yacc.c:1646 */ + break; + + case 498: +-#line 1723 "src/p.y" /* yacc.c:1646 */ ++ ++/* Line 1806 of yacc.c */ ++#line 1723 "src/p.y" + { +- (yyval.number) = (yyvsp[0].number); ++ (yyval.number) = (yyvsp[(6) - (6)].number); + } +-#line 4889 "src/y.tab.c" /* yacc.c:1646 */ + break; + + case 499: +-#line 1728 "src/p.y" /* yacc.c:1646 */ ++ ++/* Line 1806 of yacc.c */ ++#line 1728 "src/p.y" + { +- addeventaction(&(checksumset).action, (yyvsp[-1].number), (yyvsp[0].number)); ++ addeventaction(&(checksumset).action, (yyvsp[(7) - (8)].number), (yyvsp[(8) - (8)].number)); + addchecksum(&checksumset); + } +-#line 4898 "src/y.tab.c" /* yacc.c:1646 */ + break; + + case 500: +-#line 1733 "src/p.y" /* yacc.c:1646 */ ++ ++/* Line 1806 of yacc.c */ ++#line 1733 "src/p.y" + { +- snprintf(checksumset.hash, sizeof(checksumset.hash), "%s", (yyvsp[-4].string)); +- FREE((yyvsp[-4].string)); +- addeventaction(&(checksumset).action, (yyvsp[-1].number), (yyvsp[0].number)); ++ snprintf(checksumset.hash, sizeof(checksumset.hash), "%s", (yyvsp[(6) - (10)].string)); ++ FREE((yyvsp[(6) - (10)].string)); ++ addeventaction(&(checksumset).action, (yyvsp[(9) - (10)].number), (yyvsp[(10) - (10)].number)); + addchecksum(&checksumset); + } +-#line 4909 "src/y.tab.c" /* yacc.c:1646 */ + break; + + case 501: +-#line 1739 "src/p.y" /* yacc.c:1646 */ ++ ++/* Line 1806 of yacc.c */ ++#line 1739 "src/p.y" + { + checksumset.test_changes = TRUE; +- addeventaction(&(checksumset).action, (yyvsp[0].number), ACTION_IGNORE); ++ addeventaction(&(checksumset).action, (yyvsp[(7) - (7)].number), ACTION_IGNORE); + addchecksum(&checksumset); + } +-#line 4919 "src/y.tab.c" /* yacc.c:1646 */ + break; + + case 502: +-#line 1745 "src/p.y" /* yacc.c:1646 */ ++ ++/* Line 1806 of yacc.c */ ++#line 1745 "src/p.y" + { checksumset.type = HASH_UNKNOWN; } +-#line 4925 "src/y.tab.c" /* yacc.c:1646 */ + break; + + case 503: +-#line 1746 "src/p.y" /* yacc.c:1646 */ ++ ++/* Line 1806 of yacc.c */ ++#line 1746 "src/p.y" + { checksumset.type = HASH_MD5; } +-#line 4931 "src/y.tab.c" /* yacc.c:1646 */ + break; + + case 504: +-#line 1747 "src/p.y" /* yacc.c:1646 */ ++ ++/* Line 1806 of yacc.c */ ++#line 1747 "src/p.y" + { checksumset.type = HASH_SHA1; } +-#line 4937 "src/y.tab.c" /* yacc.c:1646 */ + break; + + case 505: +-#line 1750 "src/p.y" /* yacc.c:1646 */ ++ ++/* Line 1806 of yacc.c */ ++#line 1750 "src/p.y" + { + filesystemset.resource = RESOURCE_ID_INODE; +- filesystemset.operator = (yyvsp[-5].number); +- filesystemset.limit_absolute = (yyvsp[-4].number); +- addeventaction(&(filesystemset).action, (yyvsp[-1].number), (yyvsp[0].number)); ++ filesystemset.operator = (yyvsp[(3) - (8)].number); ++ filesystemset.limit_absolute = (yyvsp[(4) - (8)].number); ++ addeventaction(&(filesystemset).action, (yyvsp[(7) - (8)].number), (yyvsp[(8) - (8)].number)); + addfilesystem(&filesystemset); + } +-#line 4949 "src/y.tab.c" /* yacc.c:1646 */ + break; + + case 506: +-#line 1757 "src/p.y" /* yacc.c:1646 */ ++ ++/* Line 1806 of yacc.c */ ++#line 1757 "src/p.y" + { + filesystemset.resource = RESOURCE_ID_INODE; +- filesystemset.operator = (yyvsp[-6].number); +- filesystemset.limit_percent = (int)((yyvsp[-5].number) * 10); +- addeventaction(&(filesystemset).action, (yyvsp[-1].number), (yyvsp[0].number)); ++ filesystemset.operator = (yyvsp[(3) - (9)].number); ++ filesystemset.limit_percent = (int)((yyvsp[(4) - (9)].number) * 10); ++ addeventaction(&(filesystemset).action, (yyvsp[(8) - (9)].number), (yyvsp[(9) - (9)].number)); + addfilesystem(&filesystemset); + } +-#line 4961 "src/y.tab.c" /* yacc.c:1646 */ + break; + + case 507: +-#line 1766 "src/p.y" /* yacc.c:1646 */ ++ ++/* Line 1806 of yacc.c */ ++#line 1766 "src/p.y" + { + if (! filesystem_usage(current)) + yyerror2("Cannot read usage of filesystem %s", current->path); + filesystemset.resource = RESOURCE_ID_SPACE; +- filesystemset.operator = (yyvsp[-6].number); +- filesystemset.limit_absolute = (long long)((double)(yyvsp[-5].real) / (double)current->inf->priv.filesystem.f_bsize * (double)(yyvsp[-4].number)); +- addeventaction(&(filesystemset).action, (yyvsp[-1].number), (yyvsp[0].number)); ++ filesystemset.operator = (yyvsp[(3) - (9)].number); ++ filesystemset.limit_absolute = (long long)((double)(yyvsp[(4) - (9)].real) / (double)current->inf->priv.filesystem.f_bsize * (double)(yyvsp[(5) - (9)].number)); ++ addeventaction(&(filesystemset).action, (yyvsp[(8) - (9)].number), (yyvsp[(9) - (9)].number)); + addfilesystem(&filesystemset); + } +-#line 4975 "src/y.tab.c" /* yacc.c:1646 */ + break; + + case 508: +-#line 1775 "src/p.y" /* yacc.c:1646 */ ++ ++/* Line 1806 of yacc.c */ ++#line 1775 "src/p.y" + { + filesystemset.resource = RESOURCE_ID_SPACE; +- filesystemset.operator = (yyvsp[-6].number); +- filesystemset.limit_percent = (int)((yyvsp[-5].number) * 10); +- addeventaction(&(filesystemset).action, (yyvsp[-1].number), (yyvsp[0].number)); ++ filesystemset.operator = (yyvsp[(3) - (9)].number); ++ filesystemset.limit_percent = (int)((yyvsp[(4) - (9)].number) * 10); ++ addeventaction(&(filesystemset).action, (yyvsp[(8) - (9)].number), (yyvsp[(9) - (9)].number)); + addfilesystem(&filesystemset); + } +-#line 4987 "src/y.tab.c" /* yacc.c:1646 */ + break; + + case 509: +-#line 1784 "src/p.y" /* yacc.c:1646 */ ++ ++/* Line 1806 of yacc.c */ ++#line 1784 "src/p.y" + { +- seteventaction(&(current)->action_FSFLAG, (yyvsp[0].number), ACTION_IGNORE); ++ seteventaction(&(current)->action_FSFLAG, (yyvsp[(6) - (6)].number), ACTION_IGNORE); + } +-#line 4995 "src/y.tab.c" /* yacc.c:1646 */ + break; + + case 510: +-#line 1789 "src/p.y" /* yacc.c:1646 */ ++ ++/* Line 1806 of yacc.c */ ++#line 1789 "src/p.y" + { (yyval.number) = UNIT_BYTE; } +-#line 5001 "src/y.tab.c" /* yacc.c:1646 */ + break; + + case 511: +-#line 1790 "src/p.y" /* yacc.c:1646 */ ++ ++/* Line 1806 of yacc.c */ ++#line 1790 "src/p.y" + { (yyval.number) = UNIT_BYTE; } +-#line 5007 "src/y.tab.c" /* yacc.c:1646 */ + break; + + case 512: +-#line 1791 "src/p.y" /* yacc.c:1646 */ ++ ++/* Line 1806 of yacc.c */ ++#line 1791 "src/p.y" + { (yyval.number) = UNIT_KILOBYTE; } +-#line 5013 "src/y.tab.c" /* yacc.c:1646 */ + break; + + case 513: +-#line 1792 "src/p.y" /* yacc.c:1646 */ ++ ++/* Line 1806 of yacc.c */ ++#line 1792 "src/p.y" + { (yyval.number) = UNIT_MEGABYTE; } +-#line 5019 "src/y.tab.c" /* yacc.c:1646 */ + break; + + case 514: +-#line 1793 "src/p.y" /* yacc.c:1646 */ ++ ++/* Line 1806 of yacc.c */ ++#line 1793 "src/p.y" + { (yyval.number) = UNIT_GIGABYTE; } +-#line 5025 "src/y.tab.c" /* yacc.c:1646 */ + break; + + case 515: +-#line 1796 "src/p.y" /* yacc.c:1646 */ ++ ++/* Line 1806 of yacc.c */ ++#line 1796 "src/p.y" + { +- permset.perm = check_perm((yyvsp[-4].number)); +- addeventaction(&(permset).action, (yyvsp[-1].number), (yyvsp[0].number)); ++ permset.perm = check_perm((yyvsp[(4) - (8)].number)); ++ addeventaction(&(permset).action, (yyvsp[(7) - (8)].number), (yyvsp[(8) - (8)].number)); + addperm(&permset); + } +-#line 5035 "src/y.tab.c" /* yacc.c:1646 */ + break; + + case 516: +-#line 1803 "src/p.y" /* yacc.c:1646 */ ++ ++/* Line 1806 of yacc.c */ ++#line 1803 "src/p.y" + { + matchset.ignore = FALSE; +- matchset.match_path = (yyvsp[-3].string); ++ matchset.match_path = (yyvsp[(4) - (7)].string); + matchset.match_string = NULL; +- addmatchpath(&matchset, (yyvsp[0].number)); +- FREE((yyvsp[-3].string)); ++ addmatchpath(&matchset, (yyvsp[(7) - (7)].number)); ++ FREE((yyvsp[(4) - (7)].string)); + } +-#line 5047 "src/y.tab.c" /* yacc.c:1646 */ + break; + + case 517: +-#line 1810 "src/p.y" /* yacc.c:1646 */ ++ ++/* Line 1806 of yacc.c */ ++#line 1810 "src/p.y" + { + matchset.ignore = FALSE; + matchset.match_path = NULL; +- matchset.match_string = (yyvsp[-3].string); +- addmatch(&matchset, (yyvsp[0].number), 0); ++ matchset.match_string = (yyvsp[(4) - (7)].string); ++ addmatch(&matchset, (yyvsp[(7) - (7)].number), 0); + } +-#line 5058 "src/y.tab.c" /* yacc.c:1646 */ + break; + + case 518: +-#line 1816 "src/p.y" /* yacc.c:1646 */ ++ ++/* Line 1806 of yacc.c */ ++#line 1816 "src/p.y" + { + matchset.ignore = TRUE; +- matchset.match_path = (yyvsp[0].string); ++ matchset.match_path = (yyvsp[(4) - (4)].string); + matchset.match_string = NULL; + addmatchpath(&matchset, ACTION_IGNORE); +- FREE((yyvsp[0].string)); ++ FREE((yyvsp[(4) - (4)].string)); + } +-#line 5070 "src/y.tab.c" /* yacc.c:1646 */ + break; + + case 519: +-#line 1823 "src/p.y" /* yacc.c:1646 */ ++ ++/* Line 1806 of yacc.c */ ++#line 1823 "src/p.y" + { + matchset.ignore = TRUE; + matchset.match_path = NULL; +- matchset.match_string = (yyvsp[0].string); ++ matchset.match_string = (yyvsp[(4) - (4)].string); + addmatch(&matchset, ACTION_IGNORE, 0); + } +-#line 5081 "src/y.tab.c" /* yacc.c:1646 */ + break; + + case 520: +-#line 1831 "src/p.y" /* yacc.c:1646 */ ++ ++/* Line 1806 of yacc.c */ ++#line 1831 "src/p.y" + { + matchset.not = FALSE; + } +-#line 5089 "src/y.tab.c" /* yacc.c:1646 */ + break; + + case 521: +-#line 1834 "src/p.y" /* yacc.c:1646 */ ++ ++/* Line 1806 of yacc.c */ ++#line 1834 "src/p.y" + { + matchset.not = TRUE; + } +-#line 5097 "src/y.tab.c" /* yacc.c:1646 */ + break; + + case 522: +-#line 1840 "src/p.y" /* yacc.c:1646 */ ++ ++/* Line 1806 of yacc.c */ ++#line 1840 "src/p.y" + { +- sizeset.operator = (yyvsp[-6].number); +- sizeset.size = ((unsigned long long)(yyvsp[-5].number) * (yyvsp[-4].number)); +- addeventaction(&(sizeset).action, (yyvsp[-1].number), (yyvsp[0].number)); ++ sizeset.operator = (yyvsp[(3) - (9)].number); ++ sizeset.size = ((unsigned long long)(yyvsp[(4) - (9)].number) * (yyvsp[(5) - (9)].number)); ++ addeventaction(&(sizeset).action, (yyvsp[(8) - (9)].number), (yyvsp[(9) - (9)].number)); + addsize(&sizeset); + } +-#line 5108 "src/y.tab.c" /* yacc.c:1646 */ + break; + + case 523: +-#line 1846 "src/p.y" /* yacc.c:1646 */ ++ ++/* Line 1806 of yacc.c */ ++#line 1846 "src/p.y" + { + sizeset.test_changes = TRUE; +- addeventaction(&(sizeset).action, (yyvsp[0].number), ACTION_IGNORE); ++ addeventaction(&(sizeset).action, (yyvsp[(6) - (6)].number), ACTION_IGNORE); + addsize(&sizeset); + } +-#line 5118 "src/y.tab.c" /* yacc.c:1646 */ + break; + + case 524: +-#line 1853 "src/p.y" /* yacc.c:1646 */ ++ ++/* Line 1806 of yacc.c */ ++#line 1853 "src/p.y" + { +- uidset.uid = get_uid((yyvsp[-4].string), 0); +- addeventaction(&(uidset).action, (yyvsp[-1].number), (yyvsp[0].number)); ++ uidset.uid = get_uid((yyvsp[(4) - (8)].string), 0); ++ addeventaction(&(uidset).action, (yyvsp[(7) - (8)].number), (yyvsp[(8) - (8)].number)); + current->uid = adduid(&uidset); +- FREE((yyvsp[-4].string)); ++ FREE((yyvsp[(4) - (8)].string)); + } +-#line 5129 "src/y.tab.c" /* yacc.c:1646 */ + break; + + case 525: +-#line 1859 "src/p.y" /* yacc.c:1646 */ ++ ++/* Line 1806 of yacc.c */ ++#line 1859 "src/p.y" + { +- uidset.uid = get_uid(NULL, (yyvsp[-4].number)); +- addeventaction(&(uidset).action, (yyvsp[-1].number), (yyvsp[0].number)); ++ uidset.uid = get_uid(NULL, (yyvsp[(4) - (8)].number)); ++ addeventaction(&(uidset).action, (yyvsp[(7) - (8)].number), (yyvsp[(8) - (8)].number)); + current->uid = adduid(&uidset); + } +-#line 5139 "src/y.tab.c" /* yacc.c:1646 */ + break; + + case 526: +-#line 1866 "src/p.y" /* yacc.c:1646 */ ++ ++/* Line 1806 of yacc.c */ ++#line 1866 "src/p.y" + { +- uidset.uid = get_uid((yyvsp[-4].string), 0); +- addeventaction(&(uidset).action, (yyvsp[-1].number), (yyvsp[0].number)); ++ uidset.uid = get_uid((yyvsp[(4) - (8)].string), 0); ++ addeventaction(&(uidset).action, (yyvsp[(7) - (8)].number), (yyvsp[(8) - (8)].number)); + current->euid = adduid(&uidset); +- FREE((yyvsp[-4].string)); ++ FREE((yyvsp[(4) - (8)].string)); + } +-#line 5150 "src/y.tab.c" /* yacc.c:1646 */ + break; + + case 527: +-#line 1872 "src/p.y" /* yacc.c:1646 */ ++ ++/* Line 1806 of yacc.c */ ++#line 1872 "src/p.y" + { +- uidset.uid = get_uid(NULL, (yyvsp[-4].number)); +- addeventaction(&(uidset).action, (yyvsp[-1].number), (yyvsp[0].number)); ++ uidset.uid = get_uid(NULL, (yyvsp[(4) - (8)].number)); ++ addeventaction(&(uidset).action, (yyvsp[(7) - (8)].number), (yyvsp[(8) - (8)].number)); + current->euid = adduid(&uidset); + } +-#line 5160 "src/y.tab.c" /* yacc.c:1646 */ + break; + + case 528: +-#line 1879 "src/p.y" /* yacc.c:1646 */ ++ ++/* Line 1806 of yacc.c */ ++#line 1879 "src/p.y" + { +- gidset.gid = get_gid((yyvsp[-4].string), 0); +- addeventaction(&(gidset).action, (yyvsp[-1].number), (yyvsp[0].number)); ++ gidset.gid = get_gid((yyvsp[(4) - (8)].string), 0); ++ addeventaction(&(gidset).action, (yyvsp[(7) - (8)].number), (yyvsp[(8) - (8)].number)); + current->gid = addgid(&gidset); +- FREE((yyvsp[-4].string)); ++ FREE((yyvsp[(4) - (8)].string)); + } +-#line 5171 "src/y.tab.c" /* yacc.c:1646 */ + break; + + case 529: +-#line 1885 "src/p.y" /* yacc.c:1646 */ ++ ++/* Line 1806 of yacc.c */ ++#line 1885 "src/p.y" + { +- gidset.gid = get_gid(NULL, (yyvsp[-4].number)); +- addeventaction(&(gidset).action, (yyvsp[-1].number), (yyvsp[0].number)); ++ gidset.gid = get_gid(NULL, (yyvsp[(4) - (8)].number)); ++ addeventaction(&(gidset).action, (yyvsp[(7) - (8)].number), (yyvsp[(8) - (8)].number)); + current->gid = addgid(&gidset); + } +-#line 5181 "src/y.tab.c" /* yacc.c:1646 */ + break; + + case 530: +-#line 1892 "src/p.y" /* yacc.c:1646 */ ++ ++/* Line 1806 of yacc.c */ ++#line 1892 "src/p.y" + { (yyval.number) = ICMP_ECHO; } +-#line 5187 "src/y.tab.c" /* yacc.c:1646 */ + break; + + case 531: +-#line 1895 "src/p.y" /* yacc.c:1646 */ ++ ++/* Line 1806 of yacc.c */ ++#line 1895 "src/p.y" + { mailset.reminder = 0; } +-#line 5193 "src/y.tab.c" /* yacc.c:1646 */ + break; + + case 532: +-#line 1896 "src/p.y" /* yacc.c:1646 */ +- { mailset.reminder = (yyvsp[0].number); } +-#line 5199 "src/y.tab.c" /* yacc.c:1646 */ ++ ++/* Line 1806 of yacc.c */ ++#line 1896 "src/p.y" ++ { mailset.reminder = (yyvsp[(2) - (2)].number); } + break; + + case 533: +-#line 1897 "src/p.y" /* yacc.c:1646 */ +- { mailset.reminder = (yyvsp[-1].number); } +-#line 5205 "src/y.tab.c" /* yacc.c:1646 */ ++ ++/* Line 1806 of yacc.c */ ++#line 1897 "src/p.y" ++ { mailset.reminder = (yyvsp[(2) - (3)].number); } + break; + + +-#line 5209 "src/y.tab.c" /* yacc.c:1646 */ ++ ++/* Line 1806 of yacc.c */ ++#line 5885 "src/y.tab.c" + default: break; + } + /* User semantic actions sometimes alter yychar, and that requires +@@ -5228,7 +5904,7 @@ + + *++yyvsp = yyval; + +- /* Now 'shift' the result of the reduction. Determine what state ++ /* Now `shift' the result of the reduction. Determine what state + that goes to, based on the state we popped back to and the rule + number reduced by. */ + +@@ -5243,9 +5919,9 @@ + goto yynewstate; + + +-/*--------------------------------------. +-| yyerrlab -- here on detecting error. | +-`--------------------------------------*/ ++/*------------------------------------. ++| yyerrlab -- here on detecting error | ++`------------------------------------*/ + yyerrlab: + /* Make sure we have latest lookahead translation. See comments at + user semantic actions for why this is necessary. */ +@@ -5296,20 +5972,20 @@ + if (yyerrstatus == 3) + { + /* If just tried and failed to reuse lookahead token after an +- error, discard it. */ ++ error, discard it. */ + + if (yychar <= YYEOF) +- { +- /* Return failure if at end of input. */ +- if (yychar == YYEOF) +- YYABORT; +- } ++ { ++ /* Return failure if at end of input. */ ++ if (yychar == YYEOF) ++ YYABORT; ++ } + else +- { +- yydestruct ("Error: discarding", +- yytoken, &yylval); +- yychar = YYEMPTY; +- } ++ { ++ yydestruct ("Error: discarding", ++ yytoken, &yylval); ++ yychar = YYEMPTY; ++ } + } + + /* Else will try to reuse lookahead token after shifting the error +@@ -5328,7 +6004,7 @@ + if (/*CONSTCOND*/ 0) + goto yyerrorlab; + +- /* Do not reclaim the symbols of the rule whose action triggered ++ /* Do not reclaim the symbols of the rule which action triggered + this YYERROR. */ + YYPOPSTACK (yylen); + yylen = 0; +@@ -5341,37 +6017,35 @@ + | yyerrlab1 -- common code for both syntax error and YYERROR. | + `-------------------------------------------------------------*/ + yyerrlab1: +- yyerrstatus = 3; /* Each real token shifted decrements this. */ ++ yyerrstatus = 3; /* Each real token shifted decrements this. */ + + for (;;) + { + yyn = yypact[yystate]; + if (!yypact_value_is_default (yyn)) +- { +- yyn += YYTERROR; +- if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYTERROR) +- { +- yyn = yytable[yyn]; +- if (0 < yyn) +- break; +- } +- } ++ { ++ yyn += YYTERROR; ++ if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYTERROR) ++ { ++ yyn = yytable[yyn]; ++ if (0 < yyn) ++ break; ++ } ++ } + + /* Pop the current state because it cannot handle the error token. */ + if (yyssp == yyss) +- YYABORT; ++ YYABORT; + + + yydestruct ("Error: popping", +- yystos[yystate], yyvsp); ++ yystos[yystate], yyvsp); + YYPOPSTACK (1); + yystate = *yyssp; + YY_STACK_PRINT (yyss, yyssp); + } + +- YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN + *++yyvsp = yylval; +- YY_IGNORE_MAYBE_UNINITIALIZED_END + + + /* Shift the error token. */ +@@ -5395,7 +6069,7 @@ + yyresult = 1; + goto yyreturn; + +-#if !defined yyoverflow || YYERROR_VERBOSE ++#if !defined(yyoverflow) || YYERROR_VERBOSE + /*-------------------------------------------------. + | yyexhaustedlab -- memory exhaustion comes here. | + `-------------------------------------------------*/ +@@ -5414,14 +6088,14 @@ + yydestruct ("Cleanup: discarding lookahead", + yytoken, &yylval); + } +- /* Do not reclaim the symbols of the rule whose action triggered ++ /* Do not reclaim the symbols of the rule which action triggered + this YYABORT or YYACCEPT. */ + YYPOPSTACK (yylen); + YY_STACK_PRINT (yyss, yyssp); + while (yyssp != yyss) + { + yydestruct ("Cleanup: popping", +- yystos[*yyssp], yyvsp); ++ yystos[*yyssp], yyvsp); + YYPOPSTACK (1); + } + #ifndef yyoverflow +@@ -5432,9 +6106,14 @@ + if (yymsg != yymsgbuf) + YYSTACK_FREE (yymsg); + #endif +- return yyresult; ++ /* Make sure YYID is used. */ ++ return YYID (yyresult); + } +-#line 1900 "src/p.y" /* yacc.c:1906 */ ++ ++ ++ ++/* Line 2067 of yacc.c */ ++#line 1900 "src/p.y" + + + +@@ -5683,6 +6362,7 @@ + if (s->program->args->has_gid) { + Command_setGid(s->program->C, s->program->args->gid); + } ++ Command_setUmask(s->program->C, Run.umask); + } + } + +@@ -7246,3 +7926,4 @@ + return copy; + } + ++ diff -Nru monit-5.9/debian/patches/series monit-5.9/debian/patches/series --- monit-5.9/debian/patches/series 2014-09-30 14:24:21.000000000 +0400 +++ monit-5.9/debian/patches/series 2015-09-12 11:35:51.000000000 +0300 @@ -2,3 +2,4 @@ 05_monitrc.patch 11_enable_hurd.patch 12_FTBFS_on_kfreebsd.patch +13_umask_fix.patch
Attachment:
signature.asc
Description: Digital signature