]> git.ipfire.org Git - thirdparty/ntp.git/commitdiff
Bug 3415: implement ippeerlimit
authorHarlan Stenn <stenn@ntp.org>
Tue, 16 Jan 2018 07:35:22 +0000 (23:35 -0800)
committerHarlan Stenn <stenn@ntp.org>
Tue, 16 Jan 2018 07:35:22 +0000 (23:35 -0800)
bk: 5a5dab3a2_FQ3mvEDDduCKFCgMUHxg

18 files changed:
ChangeLog
include/ntp.h
include/ntp_config.h
include/ntp_request.h
include/ntpd.h
ntpd/complete.conf.in
ntpd/keyword-gen-utd
ntpd/keyword-gen.c
ntpd/ntp_config.c
ntpd/ntp_io.c
ntpd/ntp_keyword.h
ntpd/ntp_parser.c
ntpd/ntp_parser.h
ntpd/ntp_parser.y
ntpd/ntp_request.c
ntpd/ntp_restrict.c
ntpdc/layout.std
tests/ntpd/ntp_restrict.c

index eef0d17c78a7b98769d84a1cc373522d4d3aac32..47f84cfc271fe153be903210140374beb5efef11 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,7 +1,7 @@
 ---
 
 * [Sec 3415] Permit blocking authenticated symmetric/passive associations.
-  - HStenn, JPerlinger.
+  Implement ippeerlimit.  HStenn, JPerlinger.
 * [Sec 3414] ntpq: decodearr() can write beyond its 'buf' limits
   - initial patch by <stenn@ntp.org>, extended by <perlinger@ntp.org>
 * [Sec 3412] ctl_getitem(): Don't compare names past NUL. <perlinger@ntp.org>
index b6b0a751c42aea356a0e4df87fdf7c6eb2d94302..c29cad16611cd92ed75978ff0924fb663c9fee77 100644 (file)
@@ -824,11 +824,12 @@ typedef struct res_addr6_tag {
 
 typedef struct restrict_u_tag  restrict_u;
 struct restrict_u_tag {
-       restrict_u *            link;   /* link to next entry */
-       u_int32                 count;  /* number of packets matched */
-       u_short                 flags;  /* accesslist flags */
-       u_short                 mflags; /* match flags */
-       u_long                  expire; /* valid until time */
+       restrict_u *    link;           /* link to next entry */
+       u_int32         count;          /* number of packets matched */
+       u_short         flags;          /* accesslist flags */
+       u_short         mflags;         /* match flags */
+       short           ippeerlimit;    /* IP peer limit */
+       u_long          expire;         /* valid until time */
        union {                         /* variant starting here */
                res_addr4 v4;
                res_addr6 v6;
index bb400ddb6fca9ca77ee057c06bb9e9ab2259323a..0fef409a08ee51cc4feec9e99ee6a2ca89c9c8e4 100644 (file)
@@ -62,7 +62,7 @@ struct any_node_tag {
 
 typedef DECL_FIFO_ANCHOR(any_node) any_node_fifo;
 
-/* Structure for storing an attribute-value pair  */
+/* Structure for storing an attribute-value pair */
 typedef struct attr_val_tag attr_val;
 struct attr_val_tag {
        attr_val *      link;
@@ -112,6 +112,7 @@ struct restrict_node_tag {
        address_node *  mask;
        int_fifo *      flags;
        int             line_no;
+       short           ippeerlimit;
 };
 
 typedef DECL_FIFO_ANCHOR(restrict_node) restrict_fifo;
@@ -276,11 +277,11 @@ const char * token_name(int token);
 
 /* generic fifo routines for structs linked by 1st member */
 typedef void (*fifo_deleter)(void*);
-void*   destroy_gen_fifo(void *fifo, fifo_deleter func);
-void append_gen_fifo(void *fifo, void *entry);
+void * destroy_gen_fifo(void *fifo, fifo_deleter func);
+void * append_gen_fifo(void *fifo, void *entry);
 void * concat_gen_fifos(void *first, void *second);
 #define DESTROY_G_FIFO(pf, func)       \
-    ((pf) = destroy_gen_fifo((pf), (fifo_deleter)(func)))
+       ((pf) = destroy_gen_fifo((pf), (fifo_deleter)(func)))
 #define APPEND_G_FIFO(pf, pe)          \
        ((pf) = append_gen_fifo((pf), (pe)))
 #define CONCAT_G_FIFOS(first, second)  \
@@ -300,12 +301,13 @@ attr_val *create_attr_ival(int attr, int value);
 attr_val *create_attr_uval(int attr, u_int value);
 attr_val *create_attr_rangeval(int attr, int first, int last);
 attr_val *create_attr_sval(int attr, const char *s);
-void      destroy_attr_val(attr_val *node);
+void     destroy_attr_val(attr_val *node);
 filegen_node *create_filegen_node(int filegen_token,
                                  attr_val_fifo *options);
 string_node *create_string_node(char *str);
 restrict_node *create_restrict_node(address_node *addr,
                                    address_node *mask,
+                                   short ippeerlimit,
                                    int_fifo *flags, int line_no);
 int_node *create_int_node(int val);
 addr_opts_node *create_addr_opts_node(address_node *addr,
index 52c973f0a3a253e914049a1197af706d626395cc..f5406b650b51965d40b7c4156fc4412e26a083a1 100644 (file)
@@ -669,6 +669,7 @@ struct info_restrict {
 struct conf_restrict {
        u_int32 addr;           /* match address */
        u_int32 mask;           /* match mask */
+       short ippeerlimit;      /* ip peer limit */
        u_short flags;          /* restrict flags */
        u_short mflags;         /* match flags */
        u_int v6_flag;          /* is this v6 or not */
index 39266ffcb87225d73a9f4b1c7ef08269295ad088..b059658686e1beefae94841d31c20e26158449b3 100644 (file)
@@ -259,7 +259,7 @@ extern      void    reset_auth_stats(void);
 extern void    init_restrict   (void);
 extern u_short restrictions    (sockaddr_u *);
 extern void    hack_restrict   (int, sockaddr_u *, sockaddr_u *,
-                                u_short, u_short, u_long);
+                                short, u_short, u_short, u_long);
 extern void    restrict_source (sockaddr_u *, int, u_long);
 
 /* ntp_timer.c */
index 4c6c0459b5f58a27acd3ebe53d3d5a2e2109b649..2747098d7fccbed946e94410a429f037a15baacc 100644 (file)
@@ -46,14 +46,14 @@ manycastserver 224.0.1.1 ff05::101
 multicastclient 224.0.1.1 ff05::101
 mru maxage 64 mindepth 600 initalloc 600 initmem 16 incalloc 99 incmem 4 maxdepth 1024 maxmem 4096
 discard minimum 1 average 3 monitor 3000
-restrict default
-restrict default nomodify limited kod noserve nomrulist
-restrict source
-restrict source nomodify limited kod
-restrict trusted.host.name.example.com. nomodify
-restrict [fe80::1] mask [ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff]
-restrict 127.0.0.1 mask 255.255.255.255
-restrict ::1
+restrict default ippeerlimit -1
+restrict default ippeerlimit 0 nomodify limited kod noserve nomrulist
+restrict source ippeerlimit 1
+restrict source ippeerlimit 2 nomodify limited kod
+restrict trusted.host.name.example.com. ippeerlimit -1 nomodify
+restrict [fe80::1] mask [ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff] ippeerlimit -1
+restrict 127.0.0.1 mask 255.255.255.255 ippeerlimit -1
+restrict ::1 ippeerlimit -1
 interface drop ipv6
 interface ignore ipv4
 interface drop wildcard
index fda75bb1b2ebebb00aa6ddebac3a6b44b3902206..9b836ba4dc9b8d859143c9467df0978fe1ad1b67 100644 (file)
@@ -1 +1 @@
- *      Generated 2018-01-05 08:53:56 UTC        diff_ignore_line
+ *      Generated 2018-01-14 03:53:33 UTC        diff_ignore_line
index e9873636a5d9bc0607567f662b8a2089cfd7743a..e07548a1e4c5f56fcfc08e32fd9501c9b45a9088 100644 (file)
@@ -161,6 +161,7 @@ struct key_tok ntp_keywords[] = {
 { "noepeer",           T_Noepeer,              FOLLBY_TOKEN },
 { "flake",             T_Flake,                FOLLBY_TOKEN },
 { "ignore",            T_Ignore,               FOLLBY_TOKEN },
+{ "ippeerlimit",       T_Ippeerlimit,          FOLLBY_TOKEN },
 { "limited",           T_Limited,              FOLLBY_TOKEN },
 { "mssntp",            T_Mssntp,               FOLLBY_TOKEN },
 { "kod",               T_Kod,                  FOLLBY_TOKEN },
index 1fde656af69970b5708e675c6772c8458774560b..477c40c37f572e12ad4da352e462b088d8d28731 100644 (file)
@@ -920,7 +920,6 @@ dump_config_tree(
                fprintf(df, "\n");
        }
 
-
        for (rest_node = HEAD_PFIFO(ptree->restrict_opts);
             rest_node != NULL;
             rest_node = rest_node->link) {
@@ -928,11 +927,12 @@ dump_config_tree(
                if (NULL == rest_node->addr) {
                        s = "default";
                        flags = HEAD_PFIFO(rest_node->flags);
-                       for ( ; flags != NULL; flags = flags->link)
+                       for ( ; flags != NULL; flags = flags->link) {
                                if (T_Source == flags->i) {
                                        s = "source";
                                        break;
-                               }
+                               } 
+                       }
                } else {
                        s = rest_node->addr->address;
                }
@@ -940,6 +940,7 @@ dump_config_tree(
                if (rest_node->mask != NULL)
                        fprintf(df, " mask %s",
                                rest_node->mask->address);
+               fprintf(df, " ippeerlimit %d", rest_node->ippeerlimit);
                flags = HEAD_PFIFO(rest_node->flags);
                for ( ; flags != NULL; flags = flags->link)
                        if (T_Source != flags->i)
@@ -1452,6 +1453,7 @@ restrict_node *
 create_restrict_node(
        address_node *  addr,
        address_node *  mask,
+       short           ippeerlimit,
        int_fifo *      flags,
        int             line_no
        )
@@ -1461,6 +1463,7 @@ create_restrict_node(
        my_node = emalloc_zero(sizeof(*my_node));
        my_node->addr = addr;
        my_node->mask = mask;
+       my_node->ippeerlimit = ippeerlimit;
        my_node->flags = flags;
        my_node->line_no = line_no;
 
@@ -2445,6 +2448,7 @@ config_access(
        int                     restrict_default;
        u_short                 flags;
        u_short                 mflags;
+       short                   ippeerlimit;
        int                     range_err;
        const char *            signd_warning =
 #ifdef HAVE_NTP_SIGND
@@ -2562,7 +2566,9 @@ config_access(
        }
 
        /* Configure the restrict options */
+       ippeerlimit = -1;
        my_node = HEAD_PFIFO(ptree->restrict_opts);
+       /* Grab the ippeerlmit */
        for (; my_node != NULL; my_node = my_node->link) {
                /* Parse the flags */
                flags = 0;
@@ -2680,10 +2686,10 @@ config_access(
                                restrict_default = 1;
                        } else {
                                /* apply "restrict source ..." */
-                               DPRINTF(1, ("restrict source template mflags %x flags %x\n",
-                                       mflags, flags));
-                               hack_restrict(RESTRICT_FLAGS, NULL,
-                                             NULL, mflags, flags, 0);
+                               DPRINTF(1, ("restrict source template ippeerlimit %d mflags %x flags %x\n",
+                                       ippeerlimit, mflags, flags));
+                               hack_restrict(RESTRICT_FLAGS, NULL, NULL,
+                                             ippeerlimit, mflags, flags, 0);
                                continue;
                        }
                } else {
@@ -2752,15 +2758,15 @@ config_access(
                if (restrict_default) {
                        AF(&addr) = AF_INET;
                        AF(&mask) = AF_INET;
-                       hack_restrict(RESTRICT_FLAGS, &addr,
-                                     &mask, mflags, flags, 0);
+                       hack_restrict(RESTRICT_FLAGS, &addr, &mask,
+                                     ippeerlimit, mflags, flags, 0);
                        AF(&addr) = AF_INET6;
                        AF(&mask) = AF_INET6;
                }
 
                do {
-                       hack_restrict(RESTRICT_FLAGS, &addr,
-                                     &mask, mflags, flags, 0);
+                       hack_restrict(RESTRICT_FLAGS, &addr, &mask,
+                                     ippeerlimit, mflags, flags, 0);
                        if (pai != NULL &&
                            NULL != (pai = pai->ai_next)) {
                                INSIST(pai->ai_addr != NULL);
index fab8d4f44ef60cd6f52fc7f123da84127f12269e..b738de84e5ff9600015cb00a6c4a76baef4e5402 100644 (file)
@@ -1043,7 +1043,7 @@ remove_interface(
        /* remove restrict interface entry */
        SET_HOSTMASK(&resmask, AF(&ep->sin));
        hack_restrict(RESTRICT_REMOVEIF, &ep->sin, &resmask,
-                     RESM_NTPONLY | RESM_INTERFACE, RES_IGNORE, 0);
+                     -2, RESM_NTPONLY | RESM_INTERFACE, RES_IGNORE, 0);
 }
 
 
@@ -2093,7 +2093,7 @@ create_interface(
         */
        SET_HOSTMASK(&resmask, AF(&iface->sin));
        hack_restrict(RESTRICT_FLAGS, &iface->sin, &resmask,
-                     RESM_NTPONLY | RESM_INTERFACE, RES_IGNORE, 0);
+                     -2, RESM_NTPONLY | RESM_INTERFACE, RES_IGNORE, 0);
 
        /*
         * set globals with the first found
index b48d963724affdbfd3540d2e9178a2fee8b4db8e..663881006a6c9bafb91bab47289d5f9059758aa5 100644 (file)
@@ -2,7 +2,7 @@
  * ntp_keyword.h
  * 
  * NOTE: edit this file with caution, it is generated by keyword-gen.c
- *      Generated 2018-01-05 08:53:56 UTC        diff_ignore_line
+ *      Generated 2018-01-14 03:53:33 UTC        diff_ignore_line
  *
  */
 #include "ntp_scanner.h"
@@ -10,7 +10,7 @@
 
 #define LOWEST_KEYWORD_ID 258
 
-const char * const keyword_text[199] = {
+const char * const keyword_text[200] = {
        /* 0       258             T_Abbrev */  "abbrev",
        /* 1       259                T_Age */  "age",
        /* 2       260                T_All */  "all",
@@ -76,148 +76,149 @@ const char * const keyword_text[199] = {
        /* 62      320          T_Interface */  "interface",
        /* 63      321           T_Intrange */  NULL,
        /* 64      322                 T_Io */  "io",
-       /* 65      323               T_Ipv4 */  "ipv4",
-       /* 66      324          T_Ipv4_flag */  "-4",
-       /* 67      325               T_Ipv6 */  "ipv6",
-       /* 68      326          T_Ipv6_flag */  "-6",
-       /* 69      327             T_Kernel */  "kernel",
-       /* 70      328                T_Key */  "key",
-       /* 71      329               T_Keys */  "keys",
-       /* 72      330            T_Keysdir */  "keysdir",
-       /* 73      331                T_Kod */  "kod",
-       /* 74      332             T_Mssntp */  "mssntp",
-       /* 75      333           T_Leapfile */  "leapfile",
-       /* 76      334  T_Leapsmearinterval */  "leapsmearinterval",
-       /* 77      335            T_Limited */  "limited",
-       /* 78      336               T_Link */  "link",
-       /* 79      337             T_Listen */  "listen",
-       /* 80      338          T_Logconfig */  "logconfig",
-       /* 81      339            T_Logfile */  "logfile",
-       /* 82      340          T_Loopstats */  "loopstats",
-       /* 83      341        T_Lowpriotrap */  "lowpriotrap",
-       /* 84      342     T_Manycastclient */  "manycastclient",
-       /* 85      343     T_Manycastserver */  "manycastserver",
-       /* 86      344               T_Mask */  "mask",
-       /* 87      345             T_Maxage */  "maxage",
-       /* 88      346           T_Maxclock */  "maxclock",
-       /* 89      347           T_Maxdepth */  "maxdepth",
-       /* 90      348            T_Maxdist */  "maxdist",
-       /* 91      349             T_Maxmem */  "maxmem",
-       /* 92      350            T_Maxpoll */  "maxpoll",
-       /* 93      351          T_Mdnstries */  "mdnstries",
-       /* 94      352                T_Mem */  "mem",
-       /* 95      353            T_Memlock */  "memlock",
-       /* 96      354           T_Minclock */  "minclock",
-       /* 97      355           T_Mindepth */  "mindepth",
-       /* 98      356            T_Mindist */  "mindist",
-       /* 99      357            T_Minimum */  "minimum",
-       /* 100     358            T_Minpoll */  "minpoll",
-       /* 101     359            T_Minsane */  "minsane",
-       /* 102     360               T_Mode */  "mode",
-       /* 103     361              T_Mode7 */  "mode7",
-       /* 104     362            T_Monitor */  "monitor",
-       /* 105     363              T_Month */  "month",
-       /* 106     364                T_Mru */  "mru",
-       /* 107     365    T_Multicastclient */  "multicastclient",
-       /* 108     366                T_Nic */  "nic",
-       /* 109     367             T_Nolink */  "nolink",
-       /* 110     368           T_Nomodify */  "nomodify",
-       /* 111     369          T_Nomrulist */  "nomrulist",
-       /* 112     370               T_None */  "none",
-       /* 113     371        T_Nonvolatile */  "nonvolatile",
-       /* 114     372            T_Noepeer */  "noepeer",
-       /* 115     373             T_Nopeer */  "nopeer",
-       /* 116     374            T_Noquery */  "noquery",
-       /* 117     375           T_Noselect */  "noselect",
-       /* 118     376            T_Noserve */  "noserve",
-       /* 119     377             T_Notrap */  "notrap",
-       /* 120     378            T_Notrust */  "notrust",
-       /* 121     379                T_Ntp */  "ntp",
-       /* 122     380            T_Ntpport */  "ntpport",
-       /* 123     381     T_NtpSignDsocket */  "ntpsigndsocket",
-       /* 124     382             T_Orphan */  "orphan",
-       /* 125     383         T_Orphanwait */  "orphanwait",
-       /* 126     384          T_PCEdigest */  "peer_clear_digest_early",
-       /* 127     385              T_Panic */  "panic",
-       /* 128     386               T_Peer */  "peer",
-       /* 129     387          T_Peerstats */  "peerstats",
-       /* 130     388              T_Phone */  "phone",
-       /* 131     389                T_Pid */  "pid",
-       /* 132     390            T_Pidfile */  "pidfile",
-       /* 133     391               T_Pool */  "pool",
-       /* 134     392               T_Port */  "port",
-       /* 135     393            T_Preempt */  "preempt",
-       /* 136     394             T_Prefer */  "prefer",
-       /* 137     395         T_Protostats */  "protostats",
-       /* 138     396                 T_Pw */  "pw",
-       /* 139     397           T_Randfile */  "randfile",
-       /* 140     398           T_Rawstats */  "rawstats",
-       /* 141     399              T_Refid */  "refid",
-       /* 142     400         T_Requestkey */  "requestkey",
-       /* 143     401              T_Reset */  "reset",
-       /* 144     402           T_Restrict */  "restrict",
-       /* 145     403             T_Revoke */  "revoke",
-       /* 146     404             T_Rlimit */  "rlimit",
-       /* 147     405      T_Saveconfigdir */  "saveconfigdir",
-       /* 148     406             T_Server */  "server",
-       /* 149     407             T_Setvar */  "setvar",
-       /* 150     408             T_Source */  "source",
-       /* 151     409          T_Stacksize */  "stacksize",
-       /* 152     410         T_Statistics */  "statistics",
-       /* 153     411              T_Stats */  "stats",
-       /* 154     412           T_Statsdir */  "statsdir",
-       /* 155     413               T_Step */  "step",
-       /* 156     414           T_Stepback */  "stepback",
-       /* 157     415            T_Stepfwd */  "stepfwd",
-       /* 158     416            T_Stepout */  "stepout",
-       /* 159     417            T_Stratum */  "stratum",
-       /* 160     418             T_String */  NULL,
-       /* 161     419                T_Sys */  "sys",
-       /* 162     420           T_Sysstats */  "sysstats",
-       /* 163     421               T_Tick */  "tick",
-       /* 164     422              T_Time1 */  "time1",
-       /* 165     423              T_Time2 */  "time2",
-       /* 166     424              T_Timer */  "timer",
-       /* 167     425        T_Timingstats */  "timingstats",
-       /* 168     426             T_Tinker */  "tinker",
-       /* 169     427                T_Tos */  "tos",
-       /* 170     428               T_Trap */  "trap",
-       /* 171     429               T_True */  "true",
-       /* 172     430         T_Trustedkey */  "trustedkey",
-       /* 173     431                T_Ttl */  "ttl",
-       /* 174     432               T_Type */  "type",
-       /* 175     433              T_U_int */  NULL,
-       /* 176     434           T_UEcrypto */  "unpeer_crypto_early",
-       /* 177     435        T_UEcryptonak */  "unpeer_crypto_nak_early",
-       /* 178     436           T_UEdigest */  "unpeer_digest_early",
-       /* 179     437           T_Unconfig */  "unconfig",
-       /* 180     438             T_Unpeer */  "unpeer",
-       /* 181     439            T_Version */  "version",
-       /* 182     440    T_WanderThreshold */  NULL,
-       /* 183     441               T_Week */  "week",
-       /* 184     442           T_Wildcard */  "wildcard",
-       /* 185     443             T_Xleave */  "xleave",
-       /* 186     444               T_Year */  "year",
-       /* 187     445               T_Flag */  NULL,
-       /* 188     446                T_EOC */  NULL,
-       /* 189     447           T_Simulate */  "simulate",
-       /* 190     448         T_Beep_Delay */  "beep_delay",
-       /* 191     449       T_Sim_Duration */  "simulation_duration",
-       /* 192     450      T_Server_Offset */  "server_offset",
-       /* 193     451           T_Duration */  "duration",
-       /* 194     452        T_Freq_Offset */  "freq_offset",
-       /* 195     453             T_Wander */  "wander",
-       /* 196     454             T_Jitter */  "jitter",
-       /* 197     455         T_Prop_Delay */  "prop_delay",
-       /* 198     456         T_Proc_Delay */  "proc_delay"
+       /* 65      323        T_Ippeerlimit */  "ippeerlimit",
+       /* 66      324               T_Ipv4 */  "ipv4",
+       /* 67      325          T_Ipv4_flag */  "-4",
+       /* 68      326               T_Ipv6 */  "ipv6",
+       /* 69      327          T_Ipv6_flag */  "-6",
+       /* 70      328             T_Kernel */  "kernel",
+       /* 71      329                T_Key */  "key",
+       /* 72      330               T_Keys */  "keys",
+       /* 73      331            T_Keysdir */  "keysdir",
+       /* 74      332                T_Kod */  "kod",
+       /* 75      333             T_Mssntp */  "mssntp",
+       /* 76      334           T_Leapfile */  "leapfile",
+       /* 77      335  T_Leapsmearinterval */  "leapsmearinterval",
+       /* 78      336            T_Limited */  "limited",
+       /* 79      337               T_Link */  "link",
+       /* 80      338             T_Listen */  "listen",
+       /* 81      339          T_Logconfig */  "logconfig",
+       /* 82      340            T_Logfile */  "logfile",
+       /* 83      341          T_Loopstats */  "loopstats",
+       /* 84      342        T_Lowpriotrap */  "lowpriotrap",
+       /* 85      343     T_Manycastclient */  "manycastclient",
+       /* 86      344     T_Manycastserver */  "manycastserver",
+       /* 87      345               T_Mask */  "mask",
+       /* 88      346             T_Maxage */  "maxage",
+       /* 89      347           T_Maxclock */  "maxclock",
+       /* 90      348           T_Maxdepth */  "maxdepth",
+       /* 91      349            T_Maxdist */  "maxdist",
+       /* 92      350             T_Maxmem */  "maxmem",
+       /* 93      351            T_Maxpoll */  "maxpoll",
+       /* 94      352          T_Mdnstries */  "mdnstries",
+       /* 95      353                T_Mem */  "mem",
+       /* 96      354            T_Memlock */  "memlock",
+       /* 97      355           T_Minclock */  "minclock",
+       /* 98      356           T_Mindepth */  "mindepth",
+       /* 99      357            T_Mindist */  "mindist",
+       /* 100     358            T_Minimum */  "minimum",
+       /* 101     359            T_Minpoll */  "minpoll",
+       /* 102     360            T_Minsane */  "minsane",
+       /* 103     361               T_Mode */  "mode",
+       /* 104     362              T_Mode7 */  "mode7",
+       /* 105     363            T_Monitor */  "monitor",
+       /* 106     364              T_Month */  "month",
+       /* 107     365                T_Mru */  "mru",
+       /* 108     366    T_Multicastclient */  "multicastclient",
+       /* 109     367                T_Nic */  "nic",
+       /* 110     368             T_Nolink */  "nolink",
+       /* 111     369           T_Nomodify */  "nomodify",
+       /* 112     370          T_Nomrulist */  "nomrulist",
+       /* 113     371               T_None */  "none",
+       /* 114     372        T_Nonvolatile */  "nonvolatile",
+       /* 115     373            T_Noepeer */  "noepeer",
+       /* 116     374             T_Nopeer */  "nopeer",
+       /* 117     375            T_Noquery */  "noquery",
+       /* 118     376           T_Noselect */  "noselect",
+       /* 119     377            T_Noserve */  "noserve",
+       /* 120     378             T_Notrap */  "notrap",
+       /* 121     379            T_Notrust */  "notrust",
+       /* 122     380                T_Ntp */  "ntp",
+       /* 123     381            T_Ntpport */  "ntpport",
+       /* 124     382     T_NtpSignDsocket */  "ntpsigndsocket",
+       /* 125     383             T_Orphan */  "orphan",
+       /* 126     384         T_Orphanwait */  "orphanwait",
+       /* 127     385          T_PCEdigest */  "peer_clear_digest_early",
+       /* 128     386              T_Panic */  "panic",
+       /* 129     387               T_Peer */  "peer",
+       /* 130     388          T_Peerstats */  "peerstats",
+       /* 131     389              T_Phone */  "phone",
+       /* 132     390                T_Pid */  "pid",
+       /* 133     391            T_Pidfile */  "pidfile",
+       /* 134     392               T_Pool */  "pool",
+       /* 135     393               T_Port */  "port",
+       /* 136     394            T_Preempt */  "preempt",
+       /* 137     395             T_Prefer */  "prefer",
+       /* 138     396         T_Protostats */  "protostats",
+       /* 139     397                 T_Pw */  "pw",
+       /* 140     398           T_Randfile */  "randfile",
+       /* 141     399           T_Rawstats */  "rawstats",
+       /* 142     400              T_Refid */  "refid",
+       /* 143     401         T_Requestkey */  "requestkey",
+       /* 144     402              T_Reset */  "reset",
+       /* 145     403           T_Restrict */  "restrict",
+       /* 146     404             T_Revoke */  "revoke",
+       /* 147     405             T_Rlimit */  "rlimit",
+       /* 148     406      T_Saveconfigdir */  "saveconfigdir",
+       /* 149     407             T_Server */  "server",
+       /* 150     408             T_Setvar */  "setvar",
+       /* 151     409             T_Source */  "source",
+       /* 152     410          T_Stacksize */  "stacksize",
+       /* 153     411         T_Statistics */  "statistics",
+       /* 154     412              T_Stats */  "stats",
+       /* 155     413           T_Statsdir */  "statsdir",
+       /* 156     414               T_Step */  "step",
+       /* 157     415           T_Stepback */  "stepback",
+       /* 158     416            T_Stepfwd */  "stepfwd",
+       /* 159     417            T_Stepout */  "stepout",
+       /* 160     418            T_Stratum */  "stratum",
+       /* 161     419             T_String */  NULL,
+       /* 162     420                T_Sys */  "sys",
+       /* 163     421           T_Sysstats */  "sysstats",
+       /* 164     422               T_Tick */  "tick",
+       /* 165     423              T_Time1 */  "time1",
+       /* 166     424              T_Time2 */  "time2",
+       /* 167     425              T_Timer */  "timer",
+       /* 168     426        T_Timingstats */  "timingstats",
+       /* 169     427             T_Tinker */  "tinker",
+       /* 170     428                T_Tos */  "tos",
+       /* 171     429               T_Trap */  "trap",
+       /* 172     430               T_True */  "true",
+       /* 173     431         T_Trustedkey */  "trustedkey",
+       /* 174     432                T_Ttl */  "ttl",
+       /* 175     433               T_Type */  "type",
+       /* 176     434              T_U_int */  NULL,
+       /* 177     435           T_UEcrypto */  "unpeer_crypto_early",
+       /* 178     436        T_UEcryptonak */  "unpeer_crypto_nak_early",
+       /* 179     437           T_UEdigest */  "unpeer_digest_early",
+       /* 180     438           T_Unconfig */  "unconfig",
+       /* 181     439             T_Unpeer */  "unpeer",
+       /* 182     440            T_Version */  "version",
+       /* 183     441    T_WanderThreshold */  NULL,
+       /* 184     442               T_Week */  "week",
+       /* 185     443           T_Wildcard */  "wildcard",
+       /* 186     444             T_Xleave */  "xleave",
+       /* 187     445               T_Year */  "year",
+       /* 188     446               T_Flag */  NULL,
+       /* 189     447                T_EOC */  NULL,
+       /* 190     448           T_Simulate */  "simulate",
+       /* 191     449         T_Beep_Delay */  "beep_delay",
+       /* 192     450       T_Sim_Duration */  "simulation_duration",
+       /* 193     451      T_Server_Offset */  "server_offset",
+       /* 194     452           T_Duration */  "duration",
+       /* 195     453        T_Freq_Offset */  "freq_offset",
+       /* 196     454             T_Wander */  "wander",
+       /* 197     455             T_Jitter */  "jitter",
+       /* 198     456         T_Prop_Delay */  "prop_delay",
+       /* 199     457         T_Proc_Delay */  "proc_delay"
 };
 
-#define SCANNER_INIT_S 931
+#define SCANNER_INIT_S 940
 
-const scan_state sst[934] = {
+const scan_state sst[943] = {
 /*SS_T( ch,    f-by, match, other ),                            */
   0,                                 /*     0                   */
-  S_ST( '-',   3,      326,     0 ), /*     1                   */
+  S_ST( '-',   3,      327,     0 ), /*     1                   */
   S_ST( '.',   3,        3,     1 ), /*     2                   */
   S_ST( '.',   3,      293,     0 ), /*     3 .                 */
   S_ST( 'a',   3,       23,     2 ), /*     4                   */
@@ -274,7 +275,7 @@ const scan_state sst[934] = {
   S_ST( 'd',   3,       56,     0 ), /*    55 beep_             */
   S_ST( 'e',   3,       57,     0 ), /*    56 beep_d            */
   S_ST( 'l',   3,       58,     0 ), /*    57 beep_de           */
-  S_ST( 'a',   3,      448,     0 ), /*    58 beep_del          */
+  S_ST( 'a',   3,      449,     0 ), /*    58 beep_del          */
   S_ST( 'r',   3,       60,    48 ), /*    59 b                 */
   S_ST( 'o',   3,       61,     0 ), /*    60 br                */
   S_ST( 'a',   3,       62,     0 ), /*    61 bro               */
@@ -374,7 +375,7 @@ const scan_state sst[934] = {
   S_ST( 'a',   3,      156,     0 ), /*   155 dur               */
   S_ST( 't',   3,      157,     0 ), /*   156 dura              */
   S_ST( 'i',   3,      158,     0 ), /*   157 durat             */
-  S_ST( 'o',   3,      451,     0 ), /*   158 durati            */
+  S_ST( 'o',   3,      452,     0 ), /*   158 durati            */
   S_ST( 'e',   3,      164,   119 ), /*   159                   */
   S_ST( 'n',   3,      295,     0 ), /*   160 e                 */
   S_ST( 'a',   3,      162,     0 ), /*   161 en                */
@@ -403,7 +404,7 @@ const scan_state sst[934] = {
   S_ST( 'f',   3,      185,     0 ), /*   184 freq_o            */
   S_ST( 'f',   3,      186,     0 ), /*   185 freq_of           */
   S_ST( 's',   3,      187,     0 ), /*   186 freq_off          */
-  S_ST( 'e',   3,      452,     0 ), /*   187 freq_offs         */
+  S_ST( 'e',   3,      453,     0 ), /*   187 freq_offs         */
   S_ST( 'u',   3,      189,   180 ), /*   188 f                 */
   S_ST( 'd',   3,      190,     0 ), /*   189 fu                */
   S_ST( 'g',   3,      308,     0 ), /*   190 fud               */
@@ -457,23 +458,23 @@ const scan_state sst[934] = {
   S_ST( 'f',   3,      239,     0 ), /*   238 inter             */
   S_ST( 'a',   3,      240,     0 ), /*   239 interf            */
   S_ST( 'c',   3,      320,     0 ), /*   240 interfa           */
-  S_ST( 'p',   3,      242,   322 ), /*   241 i                 */
-  S_ST( 'v',   3,      325,     0 ), /*   242 ip                */
-  S_ST( 'j',   3,      244,   200 ), /*   243                   */
-  S_ST( 'i',   3,      245,     0 ), /*   244 j                 */
-  S_ST( 't',   3,      246,     0 ), /*   245 ji                */
-  S_ST( 't',   3,      247,     0 ), /*   246 jit               */
-  S_ST( 'e',   3,      454,     0 ), /*   247 jitt              */
-  S_ST( 'k',   3,      255,   243 ), /*   248                   */
-  S_ST( 'e',   3,      328,     0 ), /*   249 k                 */
-  S_ST( 'r',   3,      251,     0 ), /*   250 ke                */
-  S_ST( 'n',   3,      252,     0 ), /*   251 ker               */
-  S_ST( 'e',   3,      327,     0 ), /*   252 kern              */
-  S_ST( 'd',   3,      254,     0 ), /*   253 keys              */
-  S_ST( 'i',   3,      330,     0 ), /*   254 keysd             */
-  S_ST( 'o',   3,      331,   249 ), /*   255 k                 */
-  S_ST( 'l',   3,      474,   248 ), /*   256                   */
-  S_ST( 'e',   3,      289,     0 ), /*   257 l                 */
+  S_ST( 'p',   3,      250,   322 ), /*   241 i                 */
+  S_ST( 'p',   3,      243,     0 ), /*   242 ip                */
+  S_ST( 'e',   3,      244,     0 ), /*   243 ipp               */
+  S_ST( 'e',   3,      245,     0 ), /*   244 ippe              */
+  S_ST( 'r',   3,      246,     0 ), /*   245 ippee             */
+  S_ST( 'l',   3,      247,     0 ), /*   246 ippeer            */
+  S_ST( 'i',   3,      248,     0 ), /*   247 ippeerl           */
+  S_ST( 'm',   3,      249,     0 ), /*   248 ippeerli          */
+  S_ST( 'i',   3,      323,     0 ), /*   249 ippeerlim         */
+  S_ST( 'v',   3,      326,   242 ), /*   250 ip                */
+  S_ST( 'j',   3,      252,   200 ), /*   251                   */
+  S_ST( 'i',   3,      253,     0 ), /*   252 j                 */
+  S_ST( 't',   3,      254,     0 ), /*   253 ji                */
+  S_ST( 't',   3,      255,     0 ), /*   254 jit               */
+  S_ST( 'e',   3,      455,     0 ), /*   255 jitt              */
+  S_ST( 'k',   3,      434,   251 ), /*   256                   */
+  S_ST( 'e',   3,      329,     0 ), /*   257 k                 */
   S_ST( 'v',   1,        0,     0 ), /*   258 T_Abbrev          */
   S_ST( 'e',   0,        0,     0 ), /*   259 T_Age             */
   S_ST( 'l',   0,       12,     0 ), /*   260 T_All             */
@@ -505,7 +506,7 @@ const scan_state sst[934] = {
   S_ST( 'e',   0,        0,     0 ), /*   286 T_Disable         */
   S_ST( 'd',   0,        0,     0 ), /*   287 T_Discard         */
   S_ST( 'n',   0,        0,     0 ), /*   288 T_Dispersion      */
-  S_ST( 'a',   3,      297,     0 ), /*   289 le                */
+  S_ST( 'r',   3,      297,     0 ), /*   289 ke                */
   S_ST( 'e',   1,        0,     0 ), /*   290 T_Driftfile       */
   S_ST( 'p',   0,        0,     0 ), /*   291 T_Drop            */
   S_ST( 'p',   0,        0,     0 ), /*   292 T_Dscp            */
@@ -513,7 +514,7 @@ const scan_state sst[934] = {
   S_ST( 'e',   0,        0,     0 ), /*   294 T_Enable          */
   S_ST( 'd',   0,        0,   161 ), /*   295 T_End             */
   S_ST( 'r',   0,        0,     0 ), /*   296 T_Epeer           */
-  S_ST( 'p',   3,      433,     0 ), /*   297 lea               */
+  S_ST( 'n',   3,      319,     0 ), /*   297 ker               */
   S_ST( 'e',   1,      172,     0 ), /*   298 T_File            */
   S_ST( 'n',   0,        0,     0 ), /*   299 T_Filegen         */
   S_ST( 'm',   0,        0,     0 ), /*   300 T_Filenum         */
@@ -535,620 +536,629 @@ const scan_state sst[934] = {
   S_ST( 'c',   0,        0,     0 ), /*   316 T_Initalloc       */
   S_ST( 'm',   0,        0,     0 ), /*   317 T_Initmem         */
   S_ST( 'e',   1,        0,     0 ), /*   318 T_Includefile     */
-  S_ST( 'f',   3,      321,     0 ), /*   319 leap              */
+  S_ST( 'e',   3,      328,     0 ), /*   319 kern              */
   S_ST( 'e',   0,        0,     0 ), /*   320 T_Interface       */
-  S_ST( 'i',   3,      418,     0 ), /*   321 leapf             */
+  S_ST( 'd',   3,      419,     0 ), /*   321 keys              */
   S_ST( 'o',   0,        0,   212 ), /*   322 T_Io              */
-  S_ST( '4',   0,        0,     0 ), /*   323 T_Ipv4            */
-  S_ST( '4',   0,        0,     0 ), /*   324 T_Ipv4_flag       */
-  S_ST( '6',   0,        0,   323 ), /*   325 T_Ipv6            */
-  S_ST( '6',   0,        0,   324 ), /*   326 T_Ipv6_flag       */
-  S_ST( 'l',   0,        0,     0 ), /*   327 T_Kernel          */
-  S_ST( 'y',   0,      329,   250 ), /*   328 T_Key             */
-  S_ST( 's',   1,      253,     0 ), /*   329 T_Keys            */
-  S_ST( 'r',   1,        0,     0 ), /*   330 T_Keysdir         */
-  S_ST( 'd',   0,        0,     0 ), /*   331 T_Kod             */
-  S_ST( 'p',   0,        0,     0 ), /*   332 T_Mssntp          */
-  S_ST( 'e',   1,        0,     0 ), /*   333 T_Leapfile        */
-  S_ST( 'l',   0,        0,     0 ), /*   334 T_Leapsmearinterval */
-  S_ST( 'd',   0,        0,     0 ), /*   335 T_Limited         */
-  S_ST( 'k',   0,        0,     0 ), /*   336 T_Link            */
-  S_ST( 'n',   0,        0,     0 ), /*   337 T_Listen          */
-  S_ST( 'g',   2,        0,     0 ), /*   338 T_Logconfig       */
-  S_ST( 'e',   1,        0,     0 ), /*   339 T_Logfile         */
-  S_ST( 's',   0,        0,     0 ), /*   340 T_Loopstats       */
-  S_ST( 'p',   0,        0,     0 ), /*   341 T_Lowpriotrap     */
-  S_ST( 't',   1,        0,     0 ), /*   342 T_Manycastclient  */
-  S_ST( 'r',   2,        0,     0 ), /*   343 T_Manycastserver  */
-  S_ST( 'k',   0,        0,     0 ), /*   344 T_Mask            */
-  S_ST( 'e',   0,        0,     0 ), /*   345 T_Maxage          */
-  S_ST( 'k',   0,        0,     0 ), /*   346 T_Maxclock        */
-  S_ST( 'h',   0,        0,     0 ), /*   347 T_Maxdepth        */
-  S_ST( 't',   0,        0,     0 ), /*   348 T_Maxdist         */
-  S_ST( 'm',   0,        0,     0 ), /*   349 T_Maxmem          */
-  S_ST( 'l',   0,        0,     0 ), /*   350 T_Maxpoll         */
-  S_ST( 's',   0,        0,     0 ), /*   351 T_Mdnstries       */
-  S_ST( 'm',   0,      543,     0 ), /*   352 T_Mem             */
-  S_ST( 'k',   0,        0,     0 ), /*   353 T_Memlock         */
-  S_ST( 'k',   0,        0,     0 ), /*   354 T_Minclock        */
-  S_ST( 'h',   0,        0,     0 ), /*   355 T_Mindepth        */
-  S_ST( 't',   0,        0,     0 ), /*   356 T_Mindist         */
-  S_ST( 'm',   0,        0,     0 ), /*   357 T_Minimum         */
-  S_ST( 'l',   0,        0,     0 ), /*   358 T_Minpoll         */
-  S_ST( 'e',   0,        0,     0 ), /*   359 T_Minsane         */
-  S_ST( 'e',   0,      361,     0 ), /*   360 T_Mode            */
-  S_ST( '7',   0,        0,     0 ), /*   361 T_Mode7           */
-  S_ST( 'r',   0,        0,     0 ), /*   362 T_Monitor         */
-  S_ST( 'h',   0,        0,     0 ), /*   363 T_Month           */
-  S_ST( 'u',   0,        0,     0 ), /*   364 T_Mru             */
-  S_ST( 't',   2,        0,     0 ), /*   365 T_Multicastclient */
-  S_ST( 'c',   0,        0,     0 ), /*   366 T_Nic             */
-  S_ST( 'k',   0,        0,     0 ), /*   367 T_Nolink          */
-  S_ST( 'y',   0,        0,     0 ), /*   368 T_Nomodify        */
-  S_ST( 't',   0,        0,     0 ), /*   369 T_Nomrulist       */
-  S_ST( 'e',   0,        0,     0 ), /*   370 T_None            */
-  S_ST( 'e',   0,        0,     0 ), /*   371 T_Nonvolatile     */
-  S_ST( 'r',   0,        0,     0 ), /*   372 T_Noepeer         */
-  S_ST( 'r',   0,        0,     0 ), /*   373 T_Nopeer          */
-  S_ST( 'y',   0,        0,     0 ), /*   374 T_Noquery         */
-  S_ST( 't',   0,        0,     0 ), /*   375 T_Noselect        */
-  S_ST( 'e',   0,        0,     0 ), /*   376 T_Noserve         */
-  S_ST( 'p',   0,        0,     0 ), /*   377 T_Notrap          */
-  S_ST( 't',   0,        0,     0 ), /*   378 T_Notrust         */
-  S_ST( 'p',   0,      643,     0 ), /*   379 T_Ntp             */
-  S_ST( 't',   0,        0,     0 ), /*   380 T_Ntpport         */
-  S_ST( 't',   1,        0,     0 ), /*   381 T_NtpSignDsocket  */
-  S_ST( 'n',   0,      658,     0 ), /*   382 T_Orphan          */
-  S_ST( 't',   0,        0,     0 ), /*   383 T_Orphanwait      */
-  S_ST( 'y',   0,        0,     0 ), /*   384 T_PCEdigest       */
-  S_ST( 'c',   0,        0,     0 ), /*   385 T_Panic           */
-  S_ST( 'r',   1,      685,     0 ), /*   386 T_Peer            */
-  S_ST( 's',   0,        0,     0 ), /*   387 T_Peerstats       */
-  S_ST( 'e',   2,        0,     0 ), /*   388 T_Phone           */
-  S_ST( 'd',   0,      693,     0 ), /*   389 T_Pid             */
-  S_ST( 'e',   1,        0,     0 ), /*   390 T_Pidfile         */
-  S_ST( 'l',   1,        0,     0 ), /*   391 T_Pool            */
-  S_ST( 't',   0,        0,     0 ), /*   392 T_Port            */
-  S_ST( 't',   0,        0,     0 ), /*   393 T_Preempt         */
-  S_ST( 'r',   0,        0,     0 ), /*   394 T_Prefer          */
-  S_ST( 's',   0,        0,     0 ), /*   395 T_Protostats      */
-  S_ST( 'w',   1,        0,   699 ), /*   396 T_Pw              */
-  S_ST( 'e',   1,        0,     0 ), /*   397 T_Randfile        */
-  S_ST( 's',   0,        0,     0 ), /*   398 T_Rawstats        */
-  S_ST( 'd',   1,        0,     0 ), /*   399 T_Refid           */
-  S_ST( 'y',   0,        0,     0 ), /*   400 T_Requestkey      */
-  S_ST( 't',   0,        0,     0 ), /*   401 T_Reset           */
-  S_ST( 't',   0,        0,     0 ), /*   402 T_Restrict        */
-  S_ST( 'e',   0,        0,     0 ), /*   403 T_Revoke          */
-  S_ST( 't',   0,        0,     0 ), /*   404 T_Rlimit          */
-  S_ST( 'r',   1,        0,     0 ), /*   405 T_Saveconfigdir   */
-  S_ST( 'r',   1,      776,     0 ), /*   406 T_Server          */
-  S_ST( 'r',   1,        0,     0 ), /*   407 T_Setvar          */
-  S_ST( 'e',   0,        0,     0 ), /*   408 T_Source          */
-  S_ST( 'e',   0,        0,     0 ), /*   409 T_Stacksize       */
-  S_ST( 's',   0,        0,     0 ), /*   410 T_Statistics      */
-  S_ST( 's',   0,      819,   814 ), /*   411 T_Stats           */
-  S_ST( 'r',   1,        0,     0 ), /*   412 T_Statsdir        */
-  S_ST( 'p',   0,      827,     0 ), /*   413 T_Step            */
-  S_ST( 'k',   0,        0,     0 ), /*   414 T_Stepback        */
-  S_ST( 'd',   0,        0,     0 ), /*   415 T_Stepfwd         */
-  S_ST( 't',   0,        0,     0 ), /*   416 T_Stepout         */
-  S_ST( 'm',   0,        0,     0 ), /*   417 T_Stratum         */
-  S_ST( 'l',   3,      333,     0 ), /*   418 leapfi            */
-  S_ST( 's',   0,      834,     0 ), /*   419 T_Sys             */
-  S_ST( 's',   0,        0,     0 ), /*   420 T_Sysstats        */
-  S_ST( 'k',   0,        0,     0 ), /*   421 T_Tick            */
-  S_ST( '1',   0,        0,     0 ), /*   422 T_Time1           */
-  S_ST( '2',   0,        0,   422 ), /*   423 T_Time2           */
-  S_ST( 'r',   0,        0,   423 ), /*   424 T_Timer           */
-  S_ST( 's',   0,        0,     0 ), /*   425 T_Timingstats     */
-  S_ST( 'r',   0,        0,     0 ), /*   426 T_Tinker          */
-  S_ST( 's',   0,        0,     0 ), /*   427 T_Tos             */
-  S_ST( 'p',   1,        0,     0 ), /*   428 T_Trap            */
-  S_ST( 'e',   0,        0,     0 ), /*   429 T_True            */
-  S_ST( 'y',   0,        0,     0 ), /*   430 T_Trustedkey      */
-  S_ST( 'l',   0,        0,     0 ), /*   431 T_Ttl             */
-  S_ST( 'e',   0,        0,     0 ), /*   432 T_Type            */
-  S_ST( 's',   3,      440,   319 ), /*   433 leap              */
-  S_ST( 'y',   0,        0,     0 ), /*   434 T_UEcrypto        */
-  S_ST( 'y',   0,        0,     0 ), /*   435 T_UEcryptonak     */
-  S_ST( 'y',   0,        0,     0 ), /*   436 T_UEdigest        */
-  S_ST( 'g',   1,        0,     0 ), /*   437 T_Unconfig        */
-  S_ST( 'r',   1,      876,     0 ), /*   438 T_Unpeer          */
-  S_ST( 'n',   0,        0,     0 ), /*   439 T_Version         */
-  S_ST( 'm',   3,      445,     0 ), /*   440 leaps             */
-  S_ST( 'k',   0,        0,     0 ), /*   441 T_Week            */
-  S_ST( 'd',   0,        0,     0 ), /*   442 T_Wildcard        */
-  S_ST( 'e',   0,        0,     0 ), /*   443 T_Xleave          */
-  S_ST( 'r',   0,        0,     0 ), /*   444 T_Year            */
-  S_ST( 'e',   3,      446,     0 ), /*   445 leapsm            */
-  S_ST( 'a',   3,      457,     0 ), /*   446 leapsme           */
-  S_ST( 'e',   0,        0,     0 ), /*   447 T_Simulate        */
-  S_ST( 'y',   0,        0,     0 ), /*   448 T_Beep_Delay      */
-  S_ST( 'n',   0,        0,     0 ), /*   449 T_Sim_Duration    */
-  S_ST( 't',   0,        0,     0 ), /*   450 T_Server_Offset   */
-  S_ST( 'n',   0,        0,     0 ), /*   451 T_Duration        */
-  S_ST( 't',   0,        0,     0 ), /*   452 T_Freq_Offset     */
-  S_ST( 'r',   0,        0,     0 ), /*   453 T_Wander          */
-  S_ST( 'r',   0,        0,     0 ), /*   454 T_Jitter          */
-  S_ST( 'y',   0,        0,     0 ), /*   455 T_Prop_Delay      */
-  S_ST( 'y',   0,        0,     0 ), /*   456 T_Proc_Delay      */
-  S_ST( 'r',   3,      458,     0 ), /*   457 leapsmea          */
-  S_ST( 'i',   3,      459,     0 ), /*   458 leapsmear         */
-  S_ST( 'n',   3,      460,     0 ), /*   459 leapsmeari        */
-  S_ST( 't',   3,      461,     0 ), /*   460 leapsmearin       */
-  S_ST( 'e',   3,      462,     0 ), /*   461 leapsmearint      */
-  S_ST( 'r',   3,      463,     0 ), /*   462 leapsmearinte     */
-  S_ST( 'v',   3,      464,     0 ), /*   463 leapsmearinter    */
-  S_ST( 'a',   3,      334,     0 ), /*   464 leapsmearinterv   */
-  S_ST( 'i',   3,      471,   257 ), /*   465 l                 */
-  S_ST( 'm',   3,      467,     0 ), /*   466 li                */
-  S_ST( 'i',   3,      468,     0 ), /*   467 lim               */
-  S_ST( 't',   3,      469,     0 ), /*   468 limi              */
-  S_ST( 'e',   3,      335,     0 ), /*   469 limit             */
-  S_ST( 'n',   3,      336,   466 ), /*   470 li                */
-  S_ST( 's',   3,      472,   470 ), /*   471 li                */
-  S_ST( 't',   3,      473,     0 ), /*   472 lis               */
-  S_ST( 'e',   3,      337,     0 ), /*   473 list              */
-  S_ST( 'o',   3,      490,   465 ), /*   474 l                 */
-  S_ST( 'g',   3,      481,     0 ), /*   475 lo                */
-  S_ST( 'c',   3,      477,     0 ), /*   476 log               */
-  S_ST( 'o',   3,      478,     0 ), /*   477 logc              */
-  S_ST( 'n',   3,      479,     0 ), /*   478 logco             */
-  S_ST( 'f',   3,      480,     0 ), /*   479 logcon            */
-  S_ST( 'i',   3,      338,     0 ), /*   480 logconf           */
-  S_ST( 'f',   3,      482,   476 ), /*   481 log               */
-  S_ST( 'i',   3,      483,     0 ), /*   482 logf              */
-  S_ST( 'l',   3,      339,     0 ), /*   483 logfi             */
-  S_ST( 'o',   3,      485,   475 ), /*   484 lo                */
-  S_ST( 'p',   3,      486,     0 ), /*   485 loo               */
-  S_ST( 's',   3,      487,     0 ), /*   486 loop              */
-  S_ST( 't',   3,      488,     0 ), /*   487 loops             */
-  S_ST( 'a',   3,      489,     0 ), /*   488 loopst            */
-  S_ST( 't',   3,      340,     0 ), /*   489 loopsta           */
-  S_ST( 'w',   3,      491,   484 ), /*   490 lo                */
-  S_ST( 'p',   3,      492,     0 ), /*   491 low               */
-  S_ST( 'r',   3,      493,     0 ), /*   492 lowp              */
-  S_ST( 'i',   3,      494,     0 ), /*   493 lowpr             */
-  S_ST( 'o',   3,      495,     0 ), /*   494 lowpri            */
-  S_ST( 't',   3,      496,     0 ), /*   495 lowprio           */
-  S_ST( 'r',   3,      497,     0 ), /*   496 lowpriot          */
-  S_ST( 'a',   3,      341,     0 ), /*   497 lowpriotr         */
-  S_ST( 'm',   3,      579,   256 ), /*   498                   */
-  S_ST( 'a',   3,      517,     0 ), /*   499 m                 */
-  S_ST( 'n',   3,      501,     0 ), /*   500 ma                */
-  S_ST( 'y',   3,      502,     0 ), /*   501 man               */
-  S_ST( 'c',   3,      503,     0 ), /*   502 many              */
-  S_ST( 'a',   3,      504,     0 ), /*   503 manyc             */
-  S_ST( 's',   3,      505,     0 ), /*   504 manyca            */
-  S_ST( 't',   3,      511,     0 ), /*   505 manycas           */
-  S_ST( 'c',   3,      507,     0 ), /*   506 manycast          */
-  S_ST( 'l',   3,      508,     0 ), /*   507 manycastc         */
-  S_ST( 'i',   3,      509,     0 ), /*   508 manycastcl        */
-  S_ST( 'e',   3,      510,     0 ), /*   509 manycastcli       */
-  S_ST( 'n',   3,      342,     0 ), /*   510 manycastclie      */
-  S_ST( 's',   3,      512,   506 ), /*   511 manycast          */
-  S_ST( 'e',   3,      513,     0 ), /*   512 manycasts         */
-  S_ST( 'r',   3,      514,     0 ), /*   513 manycastse        */
-  S_ST( 'v',   3,      515,     0 ), /*   514 manycastser       */
-  S_ST( 'e',   3,      343,     0 ), /*   515 manycastserv      */
-  S_ST( 's',   3,      344,   500 ), /*   516 ma                */
-  S_ST( 'x',   3,      532,   516 ), /*   517 ma                */
-  S_ST( 'a',   3,      519,     0 ), /*   518 max               */
-  S_ST( 'g',   3,      345,     0 ), /*   519 maxa              */
-  S_ST( 'c',   3,      521,   518 ), /*   520 max               */
-  S_ST( 'l',   3,      522,     0 ), /*   521 maxc              */
-  S_ST( 'o',   3,      523,     0 ), /*   522 maxcl             */
-  S_ST( 'c',   3,      346,     0 ), /*   523 maxclo            */
-  S_ST( 'd',   3,      528,   520 ), /*   524 max               */
-  S_ST( 'e',   3,      526,     0 ), /*   525 maxd              */
-  S_ST( 'p',   3,      527,     0 ), /*   526 maxde             */
-  S_ST( 't',   3,      347,     0 ), /*   527 maxdep            */
-  S_ST( 'i',   3,      529,   525 ), /*   528 maxd              */
-  S_ST( 's',   3,      348,     0 ), /*   529 maxdi             */
-  S_ST( 'm',   3,      531,   524 ), /*   530 max               */
-  S_ST( 'e',   3,      349,     0 ), /*   531 maxm              */
-  S_ST( 'p',   3,      533,   530 ), /*   532 max               */
-  S_ST( 'o',   3,      534,     0 ), /*   533 maxp              */
-  S_ST( 'l',   3,      350,     0 ), /*   534 maxpo             */
-  S_ST( 'd',   3,      536,   499 ), /*   535 m                 */
-  S_ST( 'n',   3,      537,     0 ), /*   536 md                */
-  S_ST( 's',   3,      538,     0 ), /*   537 mdn               */
-  S_ST( 't',   3,      539,     0 ), /*   538 mdns              */
-  S_ST( 'r',   3,      540,     0 ), /*   539 mdnst             */
-  S_ST( 'i',   3,      541,     0 ), /*   540 mdnstr            */
-  S_ST( 'e',   3,      351,     0 ), /*   541 mdnstri           */
-  S_ST( 'e',   3,      352,   535 ), /*   542 m                 */
-  S_ST( 'l',   3,      544,     0 ), /*   543 mem               */
-  S_ST( 'o',   3,      545,     0 ), /*   544 meml              */
-  S_ST( 'c',   3,      353,     0 ), /*   545 memlo             */
-  S_ST( 'i',   3,      547,   542 ), /*   546 m                 */
-  S_ST( 'n',   3,      564,     0 ), /*   547 mi                */
-  S_ST( 'c',   3,      549,     0 ), /*   548 min               */
-  S_ST( 'l',   3,      550,     0 ), /*   549 minc              */
-  S_ST( 'o',   3,      551,     0 ), /*   550 mincl             */
-  S_ST( 'c',   3,      354,     0 ), /*   551 minclo            */
-  S_ST( 'd',   3,      556,   548 ), /*   552 min               */
-  S_ST( 'e',   3,      554,     0 ), /*   553 mind              */
-  S_ST( 'p',   3,      555,     0 ), /*   554 minde             */
-  S_ST( 't',   3,      355,     0 ), /*   555 mindep            */
-  S_ST( 'i',   3,      557,   553 ), /*   556 mind              */
-  S_ST( 's',   3,      356,     0 ), /*   557 mindi             */
-  S_ST( 'i',   3,      559,   552 ), /*   558 min               */
-  S_ST( 'm',   3,      560,     0 ), /*   559 mini              */
-  S_ST( 'u',   3,      357,     0 ), /*   560 minim             */
-  S_ST( 'p',   3,      562,   558 ), /*   561 min               */
-  S_ST( 'o',   3,      563,     0 ), /*   562 minp              */
-  S_ST( 'l',   3,      358,     0 ), /*   563 minpo             */
-  S_ST( 's',   3,      565,   561 ), /*   564 min               */
-  S_ST( 'a',   3,      566,     0 ), /*   565 mins              */
-  S_ST( 'n',   3,      359,     0 ), /*   566 minsa             */
-  S_ST( 'o',   3,      569,   546 ), /*   567 m                 */
-  S_ST( 'd',   3,      360,     0 ), /*   568 mo                */
-  S_ST( 'n',   3,      573,   568 ), /*   569 mo                */
-  S_ST( 'i',   3,      571,     0 ), /*   570 mon               */
-  S_ST( 't',   3,      572,     0 ), /*   571 moni              */
-  S_ST( 'o',   3,      362,     0 ), /*   572 monit             */
-  S_ST( 't',   3,      363,   570 ), /*   573 mon               */
-  S_ST( 'r',   3,      364,   567 ), /*   574 m                 */
-  S_ST( 's',   3,      576,   574 ), /*   575 m                 */
-  S_ST( 's',   3,      577,     0 ), /*   576 ms                */
-  S_ST( 'n',   3,      578,     0 ), /*   577 mss               */
-  S_ST( 't',   3,      332,     0 ), /*   578 mssn              */
-  S_ST( 'u',   3,      580,   575 ), /*   579 m                 */
-  S_ST( 'l',   3,      581,     0 ), /*   580 mu                */
-  S_ST( 't',   3,      582,     0 ), /*   581 mul               */
-  S_ST( 'i',   3,      583,     0 ), /*   582 mult              */
-  S_ST( 'c',   3,      584,     0 ), /*   583 multi             */
-  S_ST( 'a',   3,      585,     0 ), /*   584 multic            */
-  S_ST( 's',   3,      586,     0 ), /*   585 multica           */
-  S_ST( 't',   3,      587,     0 ), /*   586 multicas          */
-  S_ST( 'c',   3,      588,     0 ), /*   587 multicast         */
-  S_ST( 'l',   3,      589,     0 ), /*   588 multicastc        */
-  S_ST( 'i',   3,      590,     0 ), /*   589 multicastcl       */
-  S_ST( 'e',   3,      591,     0 ), /*   590 multicastcli      */
-  S_ST( 'n',   3,      365,     0 ), /*   591 multicastclie     */
-  S_ST( 'n',   3,      639,   498 ), /*   592                   */
-  S_ST( 'i',   3,      366,     0 ), /*   593 n                 */
-  S_ST( 'o',   3,      634,   593 ), /*   594 n                 */
-  S_ST( 'e',   3,      596,     0 ), /*   595 no                */
-  S_ST( 'p',   3,      597,     0 ), /*   596 noe               */
-  S_ST( 'e',   3,      598,     0 ), /*   597 noep              */
-  S_ST( 'e',   3,      372,     0 ), /*   598 noepe             */
-  S_ST( 'l',   3,      600,   595 ), /*   599 no                */
-  S_ST( 'i',   3,      601,     0 ), /*   600 nol               */
-  S_ST( 'n',   3,      367,     0 ), /*   601 noli              */
-  S_ST( 'm',   3,      607,   599 ), /*   602 no                */
-  S_ST( 'o',   3,      604,     0 ), /*   603 nom               */
-  S_ST( 'd',   3,      605,     0 ), /*   604 nomo              */
-  S_ST( 'i',   3,      606,     0 ), /*   605 nomod             */
-  S_ST( 'f',   3,      368,     0 ), /*   606 nomodi            */
-  S_ST( 'r',   3,      608,   603 ), /*   607 nom               */
-  S_ST( 'u',   3,      609,     0 ), /*   608 nomr              */
-  S_ST( 'l',   3,      610,     0 ), /*   609 nomru             */
-  S_ST( 'i',   3,      611,     0 ), /*   610 nomrul            */
-  S_ST( 's',   3,      369,     0 ), /*   611 nomruli           */
-  S_ST( 'n',   3,      613,   602 ), /*   612 no                */
-  S_ST( 'v',   3,      614,   370 ), /*   613 non               */
-  S_ST( 'o',   3,      615,     0 ), /*   614 nonv              */
-  S_ST( 'l',   3,      616,     0 ), /*   615 nonvo             */
-  S_ST( 'a',   3,      617,     0 ), /*   616 nonvol            */
-  S_ST( 't',   3,      618,     0 ), /*   617 nonvola           */
-  S_ST( 'i',   3,      619,     0 ), /*   618 nonvolat          */
-  S_ST( 'l',   3,      371,     0 ), /*   619 nonvolati         */
-  S_ST( 'p',   3,      621,   612 ), /*   620 no                */
-  S_ST( 'e',   3,      622,     0 ), /*   621 nop               */
-  S_ST( 'e',   3,      373,     0 ), /*   622 nope              */
-  S_ST( 'q',   3,      624,   620 ), /*   623 no                */
-  S_ST( 'u',   3,      625,     0 ), /*   624 noq               */
-  S_ST( 'e',   3,      626,     0 ), /*   625 noqu              */
-  S_ST( 'r',   3,      374,     0 ), /*   626 noque             */
-  S_ST( 's',   3,      628,   623 ), /*   627 no                */
-  S_ST( 'e',   3,      632,     0 ), /*   628 nos               */
-  S_ST( 'l',   3,      630,     0 ), /*   629 nose              */
-  S_ST( 'e',   3,      631,     0 ), /*   630 nosel             */
-  S_ST( 'c',   3,      375,     0 ), /*   631 nosele            */
-  S_ST( 'r',   3,      633,   629 ), /*   632 nose              */
-  S_ST( 'v',   3,      376,     0 ), /*   633 noser             */
-  S_ST( 't',   3,      635,   627 ), /*   634 no                */
-  S_ST( 'r',   3,      637,     0 ), /*   635 not               */
-  S_ST( 'a',   3,      377,     0 ), /*   636 notr              */
-  S_ST( 'u',   3,      638,   636 ), /*   637 notr              */
-  S_ST( 's',   3,      378,     0 ), /*   638 notru             */
-  S_ST( 't',   3,      379,   594 ), /*   639 n                 */
-  S_ST( 'p',   3,      641,     0 ), /*   640 ntp               */
-  S_ST( 'o',   3,      642,     0 ), /*   641 ntpp              */
-  S_ST( 'r',   3,      380,     0 ), /*   642 ntppo             */
-  S_ST( 's',   3,      644,   640 ), /*   643 ntp               */
-  S_ST( 'i',   3,      645,     0 ), /*   644 ntps              */
-  S_ST( 'g',   3,      646,     0 ), /*   645 ntpsi             */
-  S_ST( 'n',   3,      647,     0 ), /*   646 ntpsig            */
-  S_ST( 'd',   3,      648,     0 ), /*   647 ntpsign           */
-  S_ST( 's',   3,      649,     0 ), /*   648 ntpsignd          */
-  S_ST( 'o',   3,      650,     0 ), /*   649 ntpsignds         */
-  S_ST( 'c',   3,      651,     0 ), /*   650 ntpsigndso        */
-  S_ST( 'k',   3,      652,     0 ), /*   651 ntpsigndsoc       */
-  S_ST( 'e',   3,      381,     0 ), /*   652 ntpsigndsock      */
-  S_ST( 'o',   3,      654,   592 ), /*   653                   */
-  S_ST( 'r',   3,      655,     0 ), /*   654 o                 */
-  S_ST( 'p',   3,      656,     0 ), /*   655 or                */
-  S_ST( 'h',   3,      657,     0 ), /*   656 orp               */
-  S_ST( 'a',   3,      382,     0 ), /*   657 orph              */
-  S_ST( 'w',   3,      659,     0 ), /*   658 orphan            */
-  S_ST( 'a',   3,      660,     0 ), /*   659 orphanw           */
-  S_ST( 'i',   3,      383,     0 ), /*   660 orphanwa          */
-  S_ST( 'p',   3,      396,   653 ), /*   661                   */
-  S_ST( 'a',   3,      663,     0 ), /*   662 p                 */
-  S_ST( 'n',   3,      664,     0 ), /*   663 pa                */
-  S_ST( 'i',   3,      385,     0 ), /*   664 pan               */
-  S_ST( 'e',   3,      666,   662 ), /*   665 p                 */
-  S_ST( 'e',   3,      386,     0 ), /*   666 pe                */
-  S_ST( '_',   3,      668,     0 ), /*   667 peer              */
-  S_ST( 'c',   3,      669,     0 ), /*   668 peer_             */
-  S_ST( 'l',   3,      670,     0 ), /*   669 peer_c            */
-  S_ST( 'e',   3,      671,     0 ), /*   670 peer_cl           */
-  S_ST( 'a',   3,      672,     0 ), /*   671 peer_cle          */
-  S_ST( 'r',   3,      673,     0 ), /*   672 peer_clea         */
-  S_ST( '_',   3,      674,     0 ), /*   673 peer_clear        */
-  S_ST( 'd',   3,      675,     0 ), /*   674 peer_clear_       */
-  S_ST( 'i',   3,      676,     0 ), /*   675 peer_clear_d      */
-  S_ST( 'g',   3,      677,     0 ), /*   676 peer_clear_di     */
-  S_ST( 'e',   3,      678,     0 ), /*   677 peer_clear_dig    */
-  S_ST( 's',   3,      679,     0 ), /*   678 peer_clear_dige   */
-  S_ST( 't',   3,      680,     0 ), /*   679 peer_clear_diges  */
-  S_ST( '_',   3,      681,     0 ), /*   680 peer_clear_digest */
-  S_ST( 'e',   3,      682,     0 ), /*   681 peer_clear_digest_ */
-  S_ST( 'a',   3,      683,     0 ), /*   682 peer_clear_digest_e */
-  S_ST( 'r',   3,      684,     0 ), /*   683 peer_clear_digest_ea */
-  S_ST( 'l',   3,      384,     0 ), /*   684 peer_clear_digest_ear */
-  S_ST( 's',   3,      686,   667 ), /*   685 peer              */
-  S_ST( 't',   3,      687,     0 ), /*   686 peers             */
-  S_ST( 'a',   3,      688,     0 ), /*   687 peerst            */
-  S_ST( 't',   3,      387,     0 ), /*   688 peersta           */
-  S_ST( 'h',   3,      690,   665 ), /*   689 p                 */
-  S_ST( 'o',   3,      691,     0 ), /*   690 ph                */
-  S_ST( 'n',   3,      388,     0 ), /*   691 pho               */
-  S_ST( 'i',   3,      389,   689 ), /*   692 p                 */
-  S_ST( 'f',   3,      694,     0 ), /*   693 pid               */
-  S_ST( 'i',   3,      695,     0 ), /*   694 pidf              */
-  S_ST( 'l',   3,      390,     0 ), /*   695 pidfi             */
-  S_ST( 'o',   3,      698,   692 ), /*   696 p                 */
-  S_ST( 'o',   3,      391,     0 ), /*   697 po                */
-  S_ST( 'r',   3,      392,   697 ), /*   698 po                */
-  S_ST( 'r',   3,      706,   696 ), /*   699 p                 */
-  S_ST( 'e',   3,      704,     0 ), /*   700 pr                */
-  S_ST( 'e',   3,      702,     0 ), /*   701 pre               */
-  S_ST( 'm',   3,      703,     0 ), /*   702 pree              */
-  S_ST( 'p',   3,      393,     0 ), /*   703 preem             */
-  S_ST( 'f',   3,      705,   701 ), /*   704 pre               */
-  S_ST( 'e',   3,      394,     0 ), /*   705 pref              */
-  S_ST( 'o',   3,      719,   700 ), /*   706 pr                */
-  S_ST( 'c',   3,      708,     0 ), /*   707 pro               */
-  S_ST( '_',   3,      709,     0 ), /*   708 proc              */
-  S_ST( 'd',   3,      710,     0 ), /*   709 proc_             */
-  S_ST( 'e',   3,      711,     0 ), /*   710 proc_d            */
-  S_ST( 'l',   3,      712,     0 ), /*   711 proc_de           */
-  S_ST( 'a',   3,      456,     0 ), /*   712 proc_del          */
-  S_ST( 'p',   3,      714,   707 ), /*   713 pro               */
-  S_ST( '_',   3,      715,     0 ), /*   714 prop              */
-  S_ST( 'd',   3,      716,     0 ), /*   715 prop_             */
-  S_ST( 'e',   3,      717,     0 ), /*   716 prop_d            */
-  S_ST( 'l',   3,      718,     0 ), /*   717 prop_de           */
-  S_ST( 'a',   3,      455,     0 ), /*   718 prop_del          */
-  S_ST( 't',   3,      720,   713 ), /*   719 pro               */
-  S_ST( 'o',   3,      721,     0 ), /*   720 prot              */
-  S_ST( 's',   3,      722,     0 ), /*   721 proto             */
-  S_ST( 't',   3,      723,     0 ), /*   722 protos            */
-  S_ST( 'a',   3,      724,     0 ), /*   723 protost           */
-  S_ST( 't',   3,      395,     0 ), /*   724 protosta          */
-  S_ST( 'r',   3,      756,   661 ), /*   725                   */
-  S_ST( 'a',   3,      732,     0 ), /*   726 r                 */
-  S_ST( 'n',   3,      728,     0 ), /*   727 ra                */
-  S_ST( 'd',   3,      729,     0 ), /*   728 ran               */
-  S_ST( 'f',   3,      730,     0 ), /*   729 rand              */
-  S_ST( 'i',   3,      731,     0 ), /*   730 randf             */
-  S_ST( 'l',   3,      397,     0 ), /*   731 randfi            */
-  S_ST( 'w',   3,      733,   727 ), /*   732 ra                */
-  S_ST( 's',   3,      734,     0 ), /*   733 raw               */
-  S_ST( 't',   3,      735,     0 ), /*   734 raws              */
-  S_ST( 'a',   3,      736,     0 ), /*   735 rawst             */
-  S_ST( 't',   3,      398,     0 ), /*   736 rawsta            */
-  S_ST( 'e',   3,      753,   726 ), /*   737 r                 */
-  S_ST( 'f',   3,      739,     0 ), /*   738 re                */
-  S_ST( 'i',   3,      399,     0 ), /*   739 ref               */
-  S_ST( 'q',   3,      741,   738 ), /*   740 re                */
-  S_ST( 'u',   3,      742,     0 ), /*   741 req               */
-  S_ST( 'e',   3,      743,     0 ), /*   742 requ              */
-  S_ST( 's',   3,      744,     0 ), /*   743 reque             */
-  S_ST( 't',   3,      745,     0 ), /*   744 reques            */
-  S_ST( 'k',   3,      746,     0 ), /*   745 request           */
-  S_ST( 'e',   3,      400,     0 ), /*   746 requestk          */
-  S_ST( 's',   3,      749,   740 ), /*   747 re                */
-  S_ST( 'e',   3,      401,     0 ), /*   748 res               */
-  S_ST( 't',   3,      750,   748 ), /*   749 res               */
-  S_ST( 'r',   3,      751,     0 ), /*   750 rest              */
-  S_ST( 'i',   3,      752,     0 ), /*   751 restr             */
-  S_ST( 'c',   3,      402,     0 ), /*   752 restri            */
-  S_ST( 'v',   3,      754,   747 ), /*   753 re                */
-  S_ST( 'o',   3,      755,     0 ), /*   754 rev               */
-  S_ST( 'k',   3,      403,     0 ), /*   755 revo              */
-  S_ST( 'l',   3,      757,   737 ), /*   756 r                 */
-  S_ST( 'i',   3,      758,     0 ), /*   757 rl                */
-  S_ST( 'm',   3,      759,     0 ), /*   758 rli               */
-  S_ST( 'i',   3,      404,     0 ), /*   759 rlim              */
-  S_ST( 's',   3,      833,   725 ), /*   760                   */
-  S_ST( 'a',   3,      762,     0 ), /*   761 s                 */
-  S_ST( 'v',   3,      763,     0 ), /*   762 sa                */
-  S_ST( 'e',   3,      764,     0 ), /*   763 sav               */
-  S_ST( 'c',   3,      765,     0 ), /*   764 save              */
-  S_ST( 'o',   3,      766,     0 ), /*   765 savec             */
-  S_ST( 'n',   3,      767,     0 ), /*   766 saveco            */
-  S_ST( 'f',   3,      768,     0 ), /*   767 savecon           */
-  S_ST( 'i',   3,      769,     0 ), /*   768 saveconf          */
-  S_ST( 'g',   3,      770,     0 ), /*   769 saveconfi         */
-  S_ST( 'd',   3,      771,     0 ), /*   770 saveconfig        */
-  S_ST( 'i',   3,      405,     0 ), /*   771 saveconfigd       */
-  S_ST( 'e',   3,      782,   761 ), /*   772 s                 */
-  S_ST( 'r',   3,      774,     0 ), /*   773 se                */
-  S_ST( 'v',   3,      775,     0 ), /*   774 ser               */
-  S_ST( 'e',   3,      406,     0 ), /*   775 serv              */
-  S_ST( '_',   3,      777,     0 ), /*   776 server            */
-  S_ST( 'o',   3,      778,     0 ), /*   777 server_           */
-  S_ST( 'f',   3,      779,     0 ), /*   778 server_o          */
-  S_ST( 'f',   3,      780,     0 ), /*   779 server_of         */
-  S_ST( 's',   3,      781,     0 ), /*   780 server_off        */
-  S_ST( 'e',   3,      450,     0 ), /*   781 server_offs       */
-  S_ST( 't',   3,      783,   773 ), /*   782 se                */
-  S_ST( 'v',   3,      784,     0 ), /*   783 set               */
-  S_ST( 'a',   3,      407,     0 ), /*   784 setv              */
-  S_ST( 'i',   3,      786,   772 ), /*   785 s                 */
-  S_ST( 'm',   3,      787,     0 ), /*   786 si                */
-  S_ST( 'u',   3,      788,     0 ), /*   787 sim               */
-  S_ST( 'l',   3,      789,     0 ), /*   788 simu              */
-  S_ST( 'a',   3,      790,     0 ), /*   789 simul             */
-  S_ST( 't',   3,      791,     0 ), /*   790 simula            */
-  S_ST( 'i',   3,      792,   447 ), /*   791 simulat           */
-  S_ST( 'o',   3,      793,     0 ), /*   792 simulati          */
-  S_ST( 'n',   3,      794,     0 ), /*   793 simulatio         */
-  S_ST( '_',   3,      795,     0 ), /*   794 simulation        */
-  S_ST( 'd',   3,      796,     0 ), /*   795 simulation_       */
-  S_ST( 'u',   3,      797,     0 ), /*   796 simulation_d      */
-  S_ST( 'r',   3,      798,     0 ), /*   797 simulation_du     */
-  S_ST( 'a',   3,      799,     0 ), /*   798 simulation_dur    */
-  S_ST( 't',   3,      800,     0 ), /*   799 simulation_dura   */
-  S_ST( 'i',   3,      801,     0 ), /*   800 simulation_durat  */
-  S_ST( 'o',   3,      449,     0 ), /*   801 simulation_durati */
-  S_ST( 'o',   3,      803,   785 ), /*   802 s                 */
-  S_ST( 'u',   3,      804,     0 ), /*   803 so                */
-  S_ST( 'r',   3,      805,     0 ), /*   804 sou               */
-  S_ST( 'c',   3,      408,     0 ), /*   805 sour              */
-  S_ST( 't',   3,      829,   802 ), /*   806 s                 */
-  S_ST( 'a',   3,      813,     0 ), /*   807 st                */
-  S_ST( 'c',   3,      809,     0 ), /*   808 sta               */
-  S_ST( 'k',   3,      810,     0 ), /*   809 stac              */
-  S_ST( 's',   3,      811,     0 ), /*   810 stack             */
-  S_ST( 'i',   3,      812,     0 ), /*   811 stacks            */
-  S_ST( 'z',   3,      409,     0 ), /*   812 stacksi           */
-  S_ST( 't',   3,      411,   808 ), /*   813 sta               */
-  S_ST( 'i',   3,      815,     0 ), /*   814 stat              */
-  S_ST( 's',   3,      816,     0 ), /*   815 stati             */
-  S_ST( 't',   3,      817,     0 ), /*   816 statis            */
-  S_ST( 'i',   3,      818,     0 ), /*   817 statist           */
-  S_ST( 'c',   3,      410,     0 ), /*   818 statisti          */
-  S_ST( 'd',   3,      820,     0 ), /*   819 stats             */
-  S_ST( 'i',   3,      412,     0 ), /*   820 statsd            */
-  S_ST( 'e',   3,      413,   807 ), /*   821 st                */
-  S_ST( 'b',   3,      823,     0 ), /*   822 step              */
-  S_ST( 'a',   3,      824,     0 ), /*   823 stepb             */
-  S_ST( 'c',   3,      414,     0 ), /*   824 stepba            */
-  S_ST( 'f',   3,      826,   822 ), /*   825 step              */
-  S_ST( 'w',   3,      415,     0 ), /*   826 stepf             */
-  S_ST( 'o',   3,      828,   825 ), /*   827 step              */
-  S_ST( 'u',   3,      416,     0 ), /*   828 stepo             */
-  S_ST( 'r',   3,      830,   821 ), /*   829 st                */
-  S_ST( 'a',   3,      831,     0 ), /*   830 str               */
-  S_ST( 't',   3,      832,     0 ), /*   831 stra              */
-  S_ST( 'u',   3,      417,     0 ), /*   832 strat             */
-  S_ST( 'y',   3,      419,   806 ), /*   833 s                 */
-  S_ST( 's',   3,      835,     0 ), /*   834 sys               */
-  S_ST( 't',   3,      836,     0 ), /*   835 syss              */
-  S_ST( 'a',   3,      837,     0 ), /*   836 sysst             */
-  S_ST( 't',   3,      420,     0 ), /*   837 syssta            */
-  S_ST( 't',   3,      864,   760 ), /*   838                   */
-  S_ST( 'i',   3,      850,     0 ), /*   839 t                 */
-  S_ST( 'c',   3,      421,     0 ), /*   840 ti                */
-  S_ST( 'm',   3,      843,   840 ), /*   841 ti                */
-  S_ST( 'e',   3,      424,     0 ), /*   842 tim               */
-  S_ST( 'i',   3,      844,   842 ), /*   843 tim               */
-  S_ST( 'n',   3,      845,     0 ), /*   844 timi              */
-  S_ST( 'g',   3,      846,     0 ), /*   845 timin             */
-  S_ST( 's',   3,      847,     0 ), /*   846 timing            */
-  S_ST( 't',   3,      848,     0 ), /*   847 timings           */
-  S_ST( 'a',   3,      849,     0 ), /*   848 timingst          */
-  S_ST( 't',   3,      425,     0 ), /*   849 timingsta         */
-  S_ST( 'n',   3,      851,   841 ), /*   850 ti                */
-  S_ST( 'k',   3,      852,     0 ), /*   851 tin               */
-  S_ST( 'e',   3,      426,     0 ), /*   852 tink              */
-  S_ST( 'o',   3,      427,   839 ), /*   853 t                 */
-  S_ST( 'r',   3,      856,   853 ), /*   854 t                 */
-  S_ST( 'a',   3,      428,     0 ), /*   855 tr                */
-  S_ST( 'u',   3,      857,   855 ), /*   856 tr                */
-  S_ST( 's',   3,      858,   429 ), /*   857 tru               */
-  S_ST( 't',   3,      859,     0 ), /*   858 trus              */
-  S_ST( 'e',   3,      860,     0 ), /*   859 trust             */
-  S_ST( 'd',   3,      861,     0 ), /*   860 truste            */
-  S_ST( 'k',   3,      862,     0 ), /*   861 trusted           */
-  S_ST( 'e',   3,      430,     0 ), /*   862 trustedk          */
-  S_ST( 't',   3,      431,   854 ), /*   863 t                 */
-  S_ST( 'y',   3,      865,   863 ), /*   864 t                 */
-  S_ST( 'p',   3,      432,     0 ), /*   865 ty                */
-  S_ST( 'u',   3,      867,   838 ), /*   866                   */
-  S_ST( 'n',   3,      873,     0 ), /*   867 u                 */
-  S_ST( 'c',   3,      869,     0 ), /*   868 un                */
-  S_ST( 'o',   3,      870,     0 ), /*   869 unc               */
-  S_ST( 'n',   3,      871,     0 ), /*   870 unco              */
-  S_ST( 'f',   3,      872,     0 ), /*   871 uncon             */
-  S_ST( 'i',   3,      437,     0 ), /*   872 unconf            */
-  S_ST( 'p',   3,      874,   868 ), /*   873 un                */
-  S_ST( 'e',   3,      875,     0 ), /*   874 unp               */
-  S_ST( 'e',   3,      438,     0 ), /*   875 unpe              */
-  S_ST( '_',   3,      896,     0 ), /*   876 unpeer            */
-  S_ST( 'c',   3,      878,     0 ), /*   877 unpeer_           */
-  S_ST( 'r',   3,      879,     0 ), /*   878 unpeer_c          */
-  S_ST( 'y',   3,      880,     0 ), /*   879 unpeer_cr         */
-  S_ST( 'p',   3,      881,     0 ), /*   880 unpeer_cry        */
-  S_ST( 't',   3,      882,     0 ), /*   881 unpeer_cryp       */
-  S_ST( 'o',   3,      883,     0 ), /*   882 unpeer_crypt      */
-  S_ST( '_',   3,      888,     0 ), /*   883 unpeer_crypto     */
-  S_ST( 'e',   3,      885,     0 ), /*   884 unpeer_crypto_    */
-  S_ST( 'a',   3,      886,     0 ), /*   885 unpeer_crypto_e   */
-  S_ST( 'r',   3,      887,     0 ), /*   886 unpeer_crypto_ea  */
-  S_ST( 'l',   3,      434,     0 ), /*   887 unpeer_crypto_ear */
-  S_ST( 'n',   3,      889,   884 ), /*   888 unpeer_crypto_    */
-  S_ST( 'a',   3,      890,     0 ), /*   889 unpeer_crypto_n   */
-  S_ST( 'k',   3,      891,     0 ), /*   890 unpeer_crypto_na  */
-  S_ST( '_',   3,      892,     0 ), /*   891 unpeer_crypto_nak */
-  S_ST( 'e',   3,      893,     0 ), /*   892 unpeer_crypto_nak_ */
-  S_ST( 'a',   3,      894,     0 ), /*   893 unpeer_crypto_nak_e */
-  S_ST( 'r',   3,      895,     0 ), /*   894 unpeer_crypto_nak_ea */
-  S_ST( 'l',   3,      435,     0 ), /*   895 unpeer_crypto_nak_ear */
-  S_ST( 'd',   3,      897,   877 ), /*   896 unpeer_           */
-  S_ST( 'i',   3,      898,     0 ), /*   897 unpeer_d          */
-  S_ST( 'g',   3,      899,     0 ), /*   898 unpeer_di         */
-  S_ST( 'e',   3,      900,     0 ), /*   899 unpeer_dig        */
-  S_ST( 's',   3,      901,     0 ), /*   900 unpeer_dige       */
-  S_ST( 't',   3,      902,     0 ), /*   901 unpeer_diges      */
-  S_ST( '_',   3,      903,     0 ), /*   902 unpeer_digest     */
-  S_ST( 'e',   3,      904,     0 ), /*   903 unpeer_digest_    */
-  S_ST( 'a',   3,      905,     0 ), /*   904 unpeer_digest_e   */
-  S_ST( 'r',   3,      906,     0 ), /*   905 unpeer_digest_ea  */
-  S_ST( 'l',   3,      436,     0 ), /*   906 unpeer_digest_ear */
-  S_ST( 'v',   3,      908,   866 ), /*   907                   */
-  S_ST( 'e',   3,      909,     0 ), /*   908 v                 */
-  S_ST( 'r',   3,      910,     0 ), /*   909 ve                */
-  S_ST( 's',   3,      911,     0 ), /*   910 ver               */
-  S_ST( 'i',   3,      912,     0 ), /*   911 vers              */
-  S_ST( 'o',   3,      439,     0 ), /*   912 versi             */
-  S_ST( 'w',   3,      920,   907 ), /*   913                   */
-  S_ST( 'a',   3,      915,     0 ), /*   914 w                 */
-  S_ST( 'n',   3,      916,     0 ), /*   915 wa                */
-  S_ST( 'd',   3,      917,     0 ), /*   916 wan               */
-  S_ST( 'e',   3,      453,     0 ), /*   917 wand              */
-  S_ST( 'e',   3,      919,   914 ), /*   918 w                 */
-  S_ST( 'e',   3,      441,     0 ), /*   919 we                */
-  S_ST( 'i',   3,      921,   918 ), /*   920 w                 */
-  S_ST( 'l',   3,      922,     0 ), /*   921 wi                */
-  S_ST( 'd',   3,      923,     0 ), /*   922 wil               */
-  S_ST( 'c',   3,      924,     0 ), /*   923 wild              */
-  S_ST( 'a',   3,      925,     0 ), /*   924 wildc             */
-  S_ST( 'r',   3,      442,     0 ), /*   925 wildca            */
-  S_ST( 'x',   3,      927,   913 ), /*   926                   */
-  S_ST( 'l',   3,      928,     0 ), /*   927 x                 */
-  S_ST( 'e',   3,      929,     0 ), /*   928 xl                */
-  S_ST( 'a',   3,      930,     0 ), /*   929 xle               */
-  S_ST( 'v',   3,      443,     0 ), /*   930 xlea              */
-  S_ST( 'y',   3,      932,   926 ), /*   931 [initial state]   */
-  S_ST( 'e',   3,      933,     0 ), /*   932 y                 */
-  S_ST( 'a',   3,      444,     0 )  /*   933 ye                */
+  S_ST( 't',   0,        0,     0 ), /*   323 T_Ippeerlimit     */
+  S_ST( '4',   0,        0,     0 ), /*   324 T_Ipv4            */
+  S_ST( '4',   0,        0,     0 ), /*   325 T_Ipv4_flag       */
+  S_ST( '6',   0,        0,   324 ), /*   326 T_Ipv6            */
+  S_ST( '6',   0,        0,   325 ), /*   327 T_Ipv6_flag       */
+  S_ST( 'l',   0,        0,     0 ), /*   328 T_Kernel          */
+  S_ST( 'y',   0,      330,   289 ), /*   329 T_Key             */
+  S_ST( 's',   1,      321,     0 ), /*   330 T_Keys            */
+  S_ST( 'r',   1,        0,     0 ), /*   331 T_Keysdir         */
+  S_ST( 'd',   0,        0,     0 ), /*   332 T_Kod             */
+  S_ST( 'p',   0,        0,     0 ), /*   333 T_Mssntp          */
+  S_ST( 'e',   1,        0,     0 ), /*   334 T_Leapfile        */
+  S_ST( 'l',   0,        0,     0 ), /*   335 T_Leapsmearinterval */
+  S_ST( 'd',   0,        0,     0 ), /*   336 T_Limited         */
+  S_ST( 'k',   0,        0,     0 ), /*   337 T_Link            */
+  S_ST( 'n',   0,        0,     0 ), /*   338 T_Listen          */
+  S_ST( 'g',   2,        0,     0 ), /*   339 T_Logconfig       */
+  S_ST( 'e',   1,        0,     0 ), /*   340 T_Logfile         */
+  S_ST( 's',   0,        0,     0 ), /*   341 T_Loopstats       */
+  S_ST( 'p',   0,        0,     0 ), /*   342 T_Lowpriotrap     */
+  S_ST( 't',   1,        0,     0 ), /*   343 T_Manycastclient  */
+  S_ST( 'r',   2,        0,     0 ), /*   344 T_Manycastserver  */
+  S_ST( 'k',   0,        0,     0 ), /*   345 T_Mask            */
+  S_ST( 'e',   0,        0,     0 ), /*   346 T_Maxage          */
+  S_ST( 'k',   0,        0,     0 ), /*   347 T_Maxclock        */
+  S_ST( 'h',   0,        0,     0 ), /*   348 T_Maxdepth        */
+  S_ST( 't',   0,        0,     0 ), /*   349 T_Maxdist         */
+  S_ST( 'm',   0,        0,     0 ), /*   350 T_Maxmem          */
+  S_ST( 'l',   0,        0,     0 ), /*   351 T_Maxpoll         */
+  S_ST( 's',   0,        0,     0 ), /*   352 T_Mdnstries       */
+  S_ST( 'm',   0,      552,     0 ), /*   353 T_Mem             */
+  S_ST( 'k',   0,        0,     0 ), /*   354 T_Memlock         */
+  S_ST( 'k',   0,        0,     0 ), /*   355 T_Minclock        */
+  S_ST( 'h',   0,        0,     0 ), /*   356 T_Mindepth        */
+  S_ST( 't',   0,        0,     0 ), /*   357 T_Mindist         */
+  S_ST( 'm',   0,        0,     0 ), /*   358 T_Minimum         */
+  S_ST( 'l',   0,        0,     0 ), /*   359 T_Minpoll         */
+  S_ST( 'e',   0,        0,     0 ), /*   360 T_Minsane         */
+  S_ST( 'e',   0,      362,     0 ), /*   361 T_Mode            */
+  S_ST( '7',   0,        0,     0 ), /*   362 T_Mode7           */
+  S_ST( 'r',   0,        0,     0 ), /*   363 T_Monitor         */
+  S_ST( 'h',   0,        0,     0 ), /*   364 T_Month           */
+  S_ST( 'u',   0,        0,     0 ), /*   365 T_Mru             */
+  S_ST( 't',   2,        0,     0 ), /*   366 T_Multicastclient */
+  S_ST( 'c',   0,        0,     0 ), /*   367 T_Nic             */
+  S_ST( 'k',   0,        0,     0 ), /*   368 T_Nolink          */
+  S_ST( 'y',   0,        0,     0 ), /*   369 T_Nomodify        */
+  S_ST( 't',   0,        0,     0 ), /*   370 T_Nomrulist       */
+  S_ST( 'e',   0,        0,     0 ), /*   371 T_None            */
+  S_ST( 'e',   0,        0,     0 ), /*   372 T_Nonvolatile     */
+  S_ST( 'r',   0,        0,     0 ), /*   373 T_Noepeer         */
+  S_ST( 'r',   0,        0,     0 ), /*   374 T_Nopeer          */
+  S_ST( 'y',   0,        0,     0 ), /*   375 T_Noquery         */
+  S_ST( 't',   0,        0,     0 ), /*   376 T_Noselect        */
+  S_ST( 'e',   0,        0,     0 ), /*   377 T_Noserve         */
+  S_ST( 'p',   0,        0,     0 ), /*   378 T_Notrap          */
+  S_ST( 't',   0,        0,     0 ), /*   379 T_Notrust         */
+  S_ST( 'p',   0,      652,     0 ), /*   380 T_Ntp             */
+  S_ST( 't',   0,        0,     0 ), /*   381 T_Ntpport         */
+  S_ST( 't',   1,        0,     0 ), /*   382 T_NtpSignDsocket  */
+  S_ST( 'n',   0,      667,     0 ), /*   383 T_Orphan          */
+  S_ST( 't',   0,        0,     0 ), /*   384 T_Orphanwait      */
+  S_ST( 'y',   0,        0,     0 ), /*   385 T_PCEdigest       */
+  S_ST( 'c',   0,        0,     0 ), /*   386 T_Panic           */
+  S_ST( 'r',   1,      694,     0 ), /*   387 T_Peer            */
+  S_ST( 's',   0,        0,     0 ), /*   388 T_Peerstats       */
+  S_ST( 'e',   2,        0,     0 ), /*   389 T_Phone           */
+  S_ST( 'd',   0,      702,     0 ), /*   390 T_Pid             */
+  S_ST( 'e',   1,        0,     0 ), /*   391 T_Pidfile         */
+  S_ST( 'l',   1,        0,     0 ), /*   392 T_Pool            */
+  S_ST( 't',   0,        0,     0 ), /*   393 T_Port            */
+  S_ST( 't',   0,        0,     0 ), /*   394 T_Preempt         */
+  S_ST( 'r',   0,        0,     0 ), /*   395 T_Prefer          */
+  S_ST( 's',   0,        0,     0 ), /*   396 T_Protostats      */
+  S_ST( 'w',   1,        0,   708 ), /*   397 T_Pw              */
+  S_ST( 'e',   1,        0,     0 ), /*   398 T_Randfile        */
+  S_ST( 's',   0,        0,     0 ), /*   399 T_Rawstats        */
+  S_ST( 'd',   1,        0,     0 ), /*   400 T_Refid           */
+  S_ST( 'y',   0,        0,     0 ), /*   401 T_Requestkey      */
+  S_ST( 't',   0,        0,     0 ), /*   402 T_Reset           */
+  S_ST( 't',   0,        0,     0 ), /*   403 T_Restrict        */
+  S_ST( 'e',   0,        0,     0 ), /*   404 T_Revoke          */
+  S_ST( 't',   0,        0,     0 ), /*   405 T_Rlimit          */
+  S_ST( 'r',   1,        0,     0 ), /*   406 T_Saveconfigdir   */
+  S_ST( 'r',   1,      785,     0 ), /*   407 T_Server          */
+  S_ST( 'r',   1,        0,     0 ), /*   408 T_Setvar          */
+  S_ST( 'e',   0,        0,     0 ), /*   409 T_Source          */
+  S_ST( 'e',   0,        0,     0 ), /*   410 T_Stacksize       */
+  S_ST( 's',   0,        0,     0 ), /*   411 T_Statistics      */
+  S_ST( 's',   0,      828,   823 ), /*   412 T_Stats           */
+  S_ST( 'r',   1,        0,     0 ), /*   413 T_Statsdir        */
+  S_ST( 'p',   0,      836,     0 ), /*   414 T_Step            */
+  S_ST( 'k',   0,        0,     0 ), /*   415 T_Stepback        */
+  S_ST( 'd',   0,        0,     0 ), /*   416 T_Stepfwd         */
+  S_ST( 't',   0,        0,     0 ), /*   417 T_Stepout         */
+  S_ST( 'm',   0,        0,     0 ), /*   418 T_Stratum         */
+  S_ST( 'i',   3,      331,     0 ), /*   419 keysd             */
+  S_ST( 's',   0,      843,     0 ), /*   420 T_Sys             */
+  S_ST( 's',   0,        0,     0 ), /*   421 T_Sysstats        */
+  S_ST( 'k',   0,        0,     0 ), /*   422 T_Tick            */
+  S_ST( '1',   0,        0,     0 ), /*   423 T_Time1           */
+  S_ST( '2',   0,        0,   423 ), /*   424 T_Time2           */
+  S_ST( 'r',   0,        0,   424 ), /*   425 T_Timer           */
+  S_ST( 's',   0,        0,     0 ), /*   426 T_Timingstats     */
+  S_ST( 'r',   0,        0,     0 ), /*   427 T_Tinker          */
+  S_ST( 's',   0,        0,     0 ), /*   428 T_Tos             */
+  S_ST( 'p',   1,        0,     0 ), /*   429 T_Trap            */
+  S_ST( 'e',   0,        0,     0 ), /*   430 T_True            */
+  S_ST( 'y',   0,        0,     0 ), /*   431 T_Trustedkey      */
+  S_ST( 'l',   0,        0,     0 ), /*   432 T_Ttl             */
+  S_ST( 'e',   0,        0,     0 ), /*   433 T_Type            */
+  S_ST( 'o',   3,      332,   257 ), /*   434 k                 */
+  S_ST( 'y',   0,        0,     0 ), /*   435 T_UEcrypto        */
+  S_ST( 'y',   0,        0,     0 ), /*   436 T_UEcryptonak     */
+  S_ST( 'y',   0,        0,     0 ), /*   437 T_UEdigest        */
+  S_ST( 'g',   1,        0,     0 ), /*   438 T_Unconfig        */
+  S_ST( 'r',   1,      885,     0 ), /*   439 T_Unpeer          */
+  S_ST( 'n',   0,        0,     0 ), /*   440 T_Version         */
+  S_ST( 'l',   3,      483,   256 ), /*   441                   */
+  S_ST( 'k',   0,        0,     0 ), /*   442 T_Week            */
+  S_ST( 'd',   0,        0,     0 ), /*   443 T_Wildcard        */
+  S_ST( 'e',   0,        0,     0 ), /*   444 T_Xleave          */
+  S_ST( 'r',   0,        0,     0 ), /*   445 T_Year            */
+  S_ST( 'e',   3,      447,     0 ), /*   446 l                 */
+  S_ST( 'a',   3,      458,     0 ), /*   447 le                */
+  S_ST( 'e',   0,        0,     0 ), /*   448 T_Simulate        */
+  S_ST( 'y',   0,        0,     0 ), /*   449 T_Beep_Delay      */
+  S_ST( 'n',   0,        0,     0 ), /*   450 T_Sim_Duration    */
+  S_ST( 't',   0,        0,     0 ), /*   451 T_Server_Offset   */
+  S_ST( 'n',   0,        0,     0 ), /*   452 T_Duration        */
+  S_ST( 't',   0,        0,     0 ), /*   453 T_Freq_Offset     */
+  S_ST( 'r',   0,        0,     0 ), /*   454 T_Wander          */
+  S_ST( 'r',   0,        0,     0 ), /*   455 T_Jitter          */
+  S_ST( 'y',   0,        0,     0 ), /*   456 T_Prop_Delay      */
+  S_ST( 'y',   0,        0,     0 ), /*   457 T_Proc_Delay      */
+  S_ST( 'p',   3,      462,     0 ), /*   458 lea               */
+  S_ST( 'f',   3,      460,     0 ), /*   459 leap              */
+  S_ST( 'i',   3,      461,     0 ), /*   460 leapf             */
+  S_ST( 'l',   3,      334,     0 ), /*   461 leapfi            */
+  S_ST( 's',   3,      463,   459 ), /*   462 leap              */
+  S_ST( 'm',   3,      464,     0 ), /*   463 leaps             */
+  S_ST( 'e',   3,      465,     0 ), /*   464 leapsm            */
+  S_ST( 'a',   3,      466,     0 ), /*   465 leapsme           */
+  S_ST( 'r',   3,      467,     0 ), /*   466 leapsmea          */
+  S_ST( 'i',   3,      468,     0 ), /*   467 leapsmear         */
+  S_ST( 'n',   3,      469,     0 ), /*   468 leapsmeari        */
+  S_ST( 't',   3,      470,     0 ), /*   469 leapsmearin       */
+  S_ST( 'e',   3,      471,     0 ), /*   470 leapsmearint      */
+  S_ST( 'r',   3,      472,     0 ), /*   471 leapsmearinte     */
+  S_ST( 'v',   3,      473,     0 ), /*   472 leapsmearinter    */
+  S_ST( 'a',   3,      335,     0 ), /*   473 leapsmearinterv   */
+  S_ST( 'i',   3,      480,   446 ), /*   474 l                 */
+  S_ST( 'm',   3,      476,     0 ), /*   475 li                */
+  S_ST( 'i',   3,      477,     0 ), /*   476 lim               */
+  S_ST( 't',   3,      478,     0 ), /*   477 limi              */
+  S_ST( 'e',   3,      336,     0 ), /*   478 limit             */
+  S_ST( 'n',   3,      337,   475 ), /*   479 li                */
+  S_ST( 's',   3,      481,   479 ), /*   480 li                */
+  S_ST( 't',   3,      482,     0 ), /*   481 lis               */
+  S_ST( 'e',   3,      338,     0 ), /*   482 list              */
+  S_ST( 'o',   3,      499,   474 ), /*   483 l                 */
+  S_ST( 'g',   3,      490,     0 ), /*   484 lo                */
+  S_ST( 'c',   3,      486,     0 ), /*   485 log               */
+  S_ST( 'o',   3,      487,     0 ), /*   486 logc              */
+  S_ST( 'n',   3,      488,     0 ), /*   487 logco             */
+  S_ST( 'f',   3,      489,     0 ), /*   488 logcon            */
+  S_ST( 'i',   3,      339,     0 ), /*   489 logconf           */
+  S_ST( 'f',   3,      491,   485 ), /*   490 log               */
+  S_ST( 'i',   3,      492,     0 ), /*   491 logf              */
+  S_ST( 'l',   3,      340,     0 ), /*   492 logfi             */
+  S_ST( 'o',   3,      494,   484 ), /*   493 lo                */
+  S_ST( 'p',   3,      495,     0 ), /*   494 loo               */
+  S_ST( 's',   3,      496,     0 ), /*   495 loop              */
+  S_ST( 't',   3,      497,     0 ), /*   496 loops             */
+  S_ST( 'a',   3,      498,     0 ), /*   497 loopst            */
+  S_ST( 't',   3,      341,     0 ), /*   498 loopsta           */
+  S_ST( 'w',   3,      500,   493 ), /*   499 lo                */
+  S_ST( 'p',   3,      501,     0 ), /*   500 low               */
+  S_ST( 'r',   3,      502,     0 ), /*   501 lowp              */
+  S_ST( 'i',   3,      503,     0 ), /*   502 lowpr             */
+  S_ST( 'o',   3,      504,     0 ), /*   503 lowpri            */
+  S_ST( 't',   3,      505,     0 ), /*   504 lowprio           */
+  S_ST( 'r',   3,      506,     0 ), /*   505 lowpriot          */
+  S_ST( 'a',   3,      342,     0 ), /*   506 lowpriotr         */
+  S_ST( 'm',   3,      588,   441 ), /*   507                   */
+  S_ST( 'a',   3,      526,     0 ), /*   508 m                 */
+  S_ST( 'n',   3,      510,     0 ), /*   509 ma                */
+  S_ST( 'y',   3,      511,     0 ), /*   510 man               */
+  S_ST( 'c',   3,      512,     0 ), /*   511 many              */
+  S_ST( 'a',   3,      513,     0 ), /*   512 manyc             */
+  S_ST( 's',   3,      514,     0 ), /*   513 manyca            */
+  S_ST( 't',   3,      520,     0 ), /*   514 manycas           */
+  S_ST( 'c',   3,      516,     0 ), /*   515 manycast          */
+  S_ST( 'l',   3,      517,     0 ), /*   516 manycastc         */
+  S_ST( 'i',   3,      518,     0 ), /*   517 manycastcl        */
+  S_ST( 'e',   3,      519,     0 ), /*   518 manycastcli       */
+  S_ST( 'n',   3,      343,     0 ), /*   519 manycastclie      */
+  S_ST( 's',   3,      521,   515 ), /*   520 manycast          */
+  S_ST( 'e',   3,      522,     0 ), /*   521 manycasts         */
+  S_ST( 'r',   3,      523,     0 ), /*   522 manycastse        */
+  S_ST( 'v',   3,      524,     0 ), /*   523 manycastser       */
+  S_ST( 'e',   3,      344,     0 ), /*   524 manycastserv      */
+  S_ST( 's',   3,      345,   509 ), /*   525 ma                */
+  S_ST( 'x',   3,      541,   525 ), /*   526 ma                */
+  S_ST( 'a',   3,      528,     0 ), /*   527 max               */
+  S_ST( 'g',   3,      346,     0 ), /*   528 maxa              */
+  S_ST( 'c',   3,      530,   527 ), /*   529 max               */
+  S_ST( 'l',   3,      531,     0 ), /*   530 maxc              */
+  S_ST( 'o',   3,      532,     0 ), /*   531 maxcl             */
+  S_ST( 'c',   3,      347,     0 ), /*   532 maxclo            */
+  S_ST( 'd',   3,      537,   529 ), /*   533 max               */
+  S_ST( 'e',   3,      535,     0 ), /*   534 maxd              */
+  S_ST( 'p',   3,      536,     0 ), /*   535 maxde             */
+  S_ST( 't',   3,      348,     0 ), /*   536 maxdep            */
+  S_ST( 'i',   3,      538,   534 ), /*   537 maxd              */
+  S_ST( 's',   3,      349,     0 ), /*   538 maxdi             */
+  S_ST( 'm',   3,      540,   533 ), /*   539 max               */
+  S_ST( 'e',   3,      350,     0 ), /*   540 maxm              */
+  S_ST( 'p',   3,      542,   539 ), /*   541 max               */
+  S_ST( 'o',   3,      543,     0 ), /*   542 maxp              */
+  S_ST( 'l',   3,      351,     0 ), /*   543 maxpo             */
+  S_ST( 'd',   3,      545,   508 ), /*   544 m                 */
+  S_ST( 'n',   3,      546,     0 ), /*   545 md                */
+  S_ST( 's',   3,      547,     0 ), /*   546 mdn               */
+  S_ST( 't',   3,      548,     0 ), /*   547 mdns              */
+  S_ST( 'r',   3,      549,     0 ), /*   548 mdnst             */
+  S_ST( 'i',   3,      550,     0 ), /*   549 mdnstr            */
+  S_ST( 'e',   3,      352,     0 ), /*   550 mdnstri           */
+  S_ST( 'e',   3,      353,   544 ), /*   551 m                 */
+  S_ST( 'l',   3,      553,     0 ), /*   552 mem               */
+  S_ST( 'o',   3,      554,     0 ), /*   553 meml              */
+  S_ST( 'c',   3,      354,     0 ), /*   554 memlo             */
+  S_ST( 'i',   3,      556,   551 ), /*   555 m                 */
+  S_ST( 'n',   3,      573,     0 ), /*   556 mi                */
+  S_ST( 'c',   3,      558,     0 ), /*   557 min               */
+  S_ST( 'l',   3,      559,     0 ), /*   558 minc              */
+  S_ST( 'o',   3,      560,     0 ), /*   559 mincl             */
+  S_ST( 'c',   3,      355,     0 ), /*   560 minclo            */
+  S_ST( 'd',   3,      565,   557 ), /*   561 min               */
+  S_ST( 'e',   3,      563,     0 ), /*   562 mind              */
+  S_ST( 'p',   3,      564,     0 ), /*   563 minde             */
+  S_ST( 't',   3,      356,     0 ), /*   564 mindep            */
+  S_ST( 'i',   3,      566,   562 ), /*   565 mind              */
+  S_ST( 's',   3,      357,     0 ), /*   566 mindi             */
+  S_ST( 'i',   3,      568,   561 ), /*   567 min               */
+  S_ST( 'm',   3,      569,     0 ), /*   568 mini              */
+  S_ST( 'u',   3,      358,     0 ), /*   569 minim             */
+  S_ST( 'p',   3,      571,   567 ), /*   570 min               */
+  S_ST( 'o',   3,      572,     0 ), /*   571 minp              */
+  S_ST( 'l',   3,      359,     0 ), /*   572 minpo             */
+  S_ST( 's',   3,      574,   570 ), /*   573 min               */
+  S_ST( 'a',   3,      575,     0 ), /*   574 mins              */
+  S_ST( 'n',   3,      360,     0 ), /*   575 minsa             */
+  S_ST( 'o',   3,      578,   555 ), /*   576 m                 */
+  S_ST( 'd',   3,      361,     0 ), /*   577 mo                */
+  S_ST( 'n',   3,      582,   577 ), /*   578 mo                */
+  S_ST( 'i',   3,      580,     0 ), /*   579 mon               */
+  S_ST( 't',   3,      581,     0 ), /*   580 moni              */
+  S_ST( 'o',   3,      363,     0 ), /*   581 monit             */
+  S_ST( 't',   3,      364,   579 ), /*   582 mon               */
+  S_ST( 'r',   3,      365,   576 ), /*   583 m                 */
+  S_ST( 's',   3,      585,   583 ), /*   584 m                 */
+  S_ST( 's',   3,      586,     0 ), /*   585 ms                */
+  S_ST( 'n',   3,      587,     0 ), /*   586 mss               */
+  S_ST( 't',   3,      333,     0 ), /*   587 mssn              */
+  S_ST( 'u',   3,      589,   584 ), /*   588 m                 */
+  S_ST( 'l',   3,      590,     0 ), /*   589 mu                */
+  S_ST( 't',   3,      591,     0 ), /*   590 mul               */
+  S_ST( 'i',   3,      592,     0 ), /*   591 mult              */
+  S_ST( 'c',   3,      593,     0 ), /*   592 multi             */
+  S_ST( 'a',   3,      594,     0 ), /*   593 multic            */
+  S_ST( 's',   3,      595,     0 ), /*   594 multica           */
+  S_ST( 't',   3,      596,     0 ), /*   595 multicas          */
+  S_ST( 'c',   3,      597,     0 ), /*   596 multicast         */
+  S_ST( 'l',   3,      598,     0 ), /*   597 multicastc        */
+  S_ST( 'i',   3,      599,     0 ), /*   598 multicastcl       */
+  S_ST( 'e',   3,      600,     0 ), /*   599 multicastcli      */
+  S_ST( 'n',   3,      366,     0 ), /*   600 multicastclie     */
+  S_ST( 'n',   3,      648,   507 ), /*   601                   */
+  S_ST( 'i',   3,      367,     0 ), /*   602 n                 */
+  S_ST( 'o',   3,      643,   602 ), /*   603 n                 */
+  S_ST( 'e',   3,      605,     0 ), /*   604 no                */
+  S_ST( 'p',   3,      606,     0 ), /*   605 noe               */
+  S_ST( 'e',   3,      607,     0 ), /*   606 noep              */
+  S_ST( 'e',   3,      373,     0 ), /*   607 noepe             */
+  S_ST( 'l',   3,      609,   604 ), /*   608 no                */
+  S_ST( 'i',   3,      610,     0 ), /*   609 nol               */
+  S_ST( 'n',   3,      368,     0 ), /*   610 noli              */
+  S_ST( 'm',   3,      616,   608 ), /*   611 no                */
+  S_ST( 'o',   3,      613,     0 ), /*   612 nom               */
+  S_ST( 'd',   3,      614,     0 ), /*   613 nomo              */
+  S_ST( 'i',   3,      615,     0 ), /*   614 nomod             */
+  S_ST( 'f',   3,      369,     0 ), /*   615 nomodi            */
+  S_ST( 'r',   3,      617,   612 ), /*   616 nom               */
+  S_ST( 'u',   3,      618,     0 ), /*   617 nomr              */
+  S_ST( 'l',   3,      619,     0 ), /*   618 nomru             */
+  S_ST( 'i',   3,      620,     0 ), /*   619 nomrul            */
+  S_ST( 's',   3,      370,     0 ), /*   620 nomruli           */
+  S_ST( 'n',   3,      622,   611 ), /*   621 no                */
+  S_ST( 'v',   3,      623,   371 ), /*   622 non               */
+  S_ST( 'o',   3,      624,     0 ), /*   623 nonv              */
+  S_ST( 'l',   3,      625,     0 ), /*   624 nonvo             */
+  S_ST( 'a',   3,      626,     0 ), /*   625 nonvol            */
+  S_ST( 't',   3,      627,     0 ), /*   626 nonvola           */
+  S_ST( 'i',   3,      628,     0 ), /*   627 nonvolat          */
+  S_ST( 'l',   3,      372,     0 ), /*   628 nonvolati         */
+  S_ST( 'p',   3,      630,   621 ), /*   629 no                */
+  S_ST( 'e',   3,      631,     0 ), /*   630 nop               */
+  S_ST( 'e',   3,      374,     0 ), /*   631 nope              */
+  S_ST( 'q',   3,      633,   629 ), /*   632 no                */
+  S_ST( 'u',   3,      634,     0 ), /*   633 noq               */
+  S_ST( 'e',   3,      635,     0 ), /*   634 noqu              */
+  S_ST( 'r',   3,      375,     0 ), /*   635 noque             */
+  S_ST( 's',   3,      637,   632 ), /*   636 no                */
+  S_ST( 'e',   3,      641,     0 ), /*   637 nos               */
+  S_ST( 'l',   3,      639,     0 ), /*   638 nose              */
+  S_ST( 'e',   3,      640,     0 ), /*   639 nosel             */
+  S_ST( 'c',   3,      376,     0 ), /*   640 nosele            */
+  S_ST( 'r',   3,      642,   638 ), /*   641 nose              */
+  S_ST( 'v',   3,      377,     0 ), /*   642 noser             */
+  S_ST( 't',   3,      644,   636 ), /*   643 no                */
+  S_ST( 'r',   3,      646,     0 ), /*   644 not               */
+  S_ST( 'a',   3,      378,     0 ), /*   645 notr              */
+  S_ST( 'u',   3,      647,   645 ), /*   646 notr              */
+  S_ST( 's',   3,      379,     0 ), /*   647 notru             */
+  S_ST( 't',   3,      380,   603 ), /*   648 n                 */
+  S_ST( 'p',   3,      650,     0 ), /*   649 ntp               */
+  S_ST( 'o',   3,      651,     0 ), /*   650 ntpp              */
+  S_ST( 'r',   3,      381,     0 ), /*   651 ntppo             */
+  S_ST( 's',   3,      653,   649 ), /*   652 ntp               */
+  S_ST( 'i',   3,      654,     0 ), /*   653 ntps              */
+  S_ST( 'g',   3,      655,     0 ), /*   654 ntpsi             */
+  S_ST( 'n',   3,      656,     0 ), /*   655 ntpsig            */
+  S_ST( 'd',   3,      657,     0 ), /*   656 ntpsign           */
+  S_ST( 's',   3,      658,     0 ), /*   657 ntpsignd          */
+  S_ST( 'o',   3,      659,     0 ), /*   658 ntpsignds         */
+  S_ST( 'c',   3,      660,     0 ), /*   659 ntpsigndso        */
+  S_ST( 'k',   3,      661,     0 ), /*   660 ntpsigndsoc       */
+  S_ST( 'e',   3,      382,     0 ), /*   661 ntpsigndsock      */
+  S_ST( 'o',   3,      663,   601 ), /*   662                   */
+  S_ST( 'r',   3,      664,     0 ), /*   663 o                 */
+  S_ST( 'p',   3,      665,     0 ), /*   664 or                */
+  S_ST( 'h',   3,      666,     0 ), /*   665 orp               */
+  S_ST( 'a',   3,      383,     0 ), /*   666 orph              */
+  S_ST( 'w',   3,      668,     0 ), /*   667 orphan            */
+  S_ST( 'a',   3,      669,     0 ), /*   668 orphanw           */
+  S_ST( 'i',   3,      384,     0 ), /*   669 orphanwa          */
+  S_ST( 'p',   3,      397,   662 ), /*   670                   */
+  S_ST( 'a',   3,      672,     0 ), /*   671 p                 */
+  S_ST( 'n',   3,      673,     0 ), /*   672 pa                */
+  S_ST( 'i',   3,      386,     0 ), /*   673 pan               */
+  S_ST( 'e',   3,      675,   671 ), /*   674 p                 */
+  S_ST( 'e',   3,      387,     0 ), /*   675 pe                */
+  S_ST( '_',   3,      677,     0 ), /*   676 peer              */
+  S_ST( 'c',   3,      678,     0 ), /*   677 peer_             */
+  S_ST( 'l',   3,      679,     0 ), /*   678 peer_c            */
+  S_ST( 'e',   3,      680,     0 ), /*   679 peer_cl           */
+  S_ST( 'a',   3,      681,     0 ), /*   680 peer_cle          */
+  S_ST( 'r',   3,      682,     0 ), /*   681 peer_clea         */
+  S_ST( '_',   3,      683,     0 ), /*   682 peer_clear        */
+  S_ST( 'd',   3,      684,     0 ), /*   683 peer_clear_       */
+  S_ST( 'i',   3,      685,     0 ), /*   684 peer_clear_d      */
+  S_ST( 'g',   3,      686,     0 ), /*   685 peer_clear_di     */
+  S_ST( 'e',   3,      687,     0 ), /*   686 peer_clear_dig    */
+  S_ST( 's',   3,      688,     0 ), /*   687 peer_clear_dige   */
+  S_ST( 't',   3,      689,     0 ), /*   688 peer_clear_diges  */
+  S_ST( '_',   3,      690,     0 ), /*   689 peer_clear_digest */
+  S_ST( 'e',   3,      691,     0 ), /*   690 peer_clear_digest_ */
+  S_ST( 'a',   3,      692,     0 ), /*   691 peer_clear_digest_e */
+  S_ST( 'r',   3,      693,     0 ), /*   692 peer_clear_digest_ea */
+  S_ST( 'l',   3,      385,     0 ), /*   693 peer_clear_digest_ear */
+  S_ST( 's',   3,      695,   676 ), /*   694 peer              */
+  S_ST( 't',   3,      696,     0 ), /*   695 peers             */
+  S_ST( 'a',   3,      697,     0 ), /*   696 peerst            */
+  S_ST( 't',   3,      388,     0 ), /*   697 peersta           */
+  S_ST( 'h',   3,      699,   674 ), /*   698 p                 */
+  S_ST( 'o',   3,      700,     0 ), /*   699 ph                */
+  S_ST( 'n',   3,      389,     0 ), /*   700 pho               */
+  S_ST( 'i',   3,      390,   698 ), /*   701 p                 */
+  S_ST( 'f',   3,      703,     0 ), /*   702 pid               */
+  S_ST( 'i',   3,      704,     0 ), /*   703 pidf              */
+  S_ST( 'l',   3,      391,     0 ), /*   704 pidfi             */
+  S_ST( 'o',   3,      707,   701 ), /*   705 p                 */
+  S_ST( 'o',   3,      392,     0 ), /*   706 po                */
+  S_ST( 'r',   3,      393,   706 ), /*   707 po                */
+  S_ST( 'r',   3,      715,   705 ), /*   708 p                 */
+  S_ST( 'e',   3,      713,     0 ), /*   709 pr                */
+  S_ST( 'e',   3,      711,     0 ), /*   710 pre               */
+  S_ST( 'm',   3,      712,     0 ), /*   711 pree              */
+  S_ST( 'p',   3,      394,     0 ), /*   712 preem             */
+  S_ST( 'f',   3,      714,   710 ), /*   713 pre               */
+  S_ST( 'e',   3,      395,     0 ), /*   714 pref              */
+  S_ST( 'o',   3,      728,   709 ), /*   715 pr                */
+  S_ST( 'c',   3,      717,     0 ), /*   716 pro               */
+  S_ST( '_',   3,      718,     0 ), /*   717 proc              */
+  S_ST( 'd',   3,      719,     0 ), /*   718 proc_             */
+  S_ST( 'e',   3,      720,     0 ), /*   719 proc_d            */
+  S_ST( 'l',   3,      721,     0 ), /*   720 proc_de           */
+  S_ST( 'a',   3,      457,     0 ), /*   721 proc_del          */
+  S_ST( 'p',   3,      723,   716 ), /*   722 pro               */
+  S_ST( '_',   3,      724,     0 ), /*   723 prop              */
+  S_ST( 'd',   3,      725,     0 ), /*   724 prop_             */
+  S_ST( 'e',   3,      726,     0 ), /*   725 prop_d            */
+  S_ST( 'l',   3,      727,     0 ), /*   726 prop_de           */
+  S_ST( 'a',   3,      456,     0 ), /*   727 prop_del          */
+  S_ST( 't',   3,      729,   722 ), /*   728 pro               */
+  S_ST( 'o',   3,      730,     0 ), /*   729 prot              */
+  S_ST( 's',   3,      731,     0 ), /*   730 proto             */
+  S_ST( 't',   3,      732,     0 ), /*   731 protos            */
+  S_ST( 'a',   3,      733,     0 ), /*   732 protost           */
+  S_ST( 't',   3,      396,     0 ), /*   733 protosta          */
+  S_ST( 'r',   3,      765,   670 ), /*   734                   */
+  S_ST( 'a',   3,      741,     0 ), /*   735 r                 */
+  S_ST( 'n',   3,      737,     0 ), /*   736 ra                */
+  S_ST( 'd',   3,      738,     0 ), /*   737 ran               */
+  S_ST( 'f',   3,      739,     0 ), /*   738 rand              */
+  S_ST( 'i',   3,      740,     0 ), /*   739 randf             */
+  S_ST( 'l',   3,      398,     0 ), /*   740 randfi            */
+  S_ST( 'w',   3,      742,   736 ), /*   741 ra                */
+  S_ST( 's',   3,      743,     0 ), /*   742 raw               */
+  S_ST( 't',   3,      744,     0 ), /*   743 raws              */
+  S_ST( 'a',   3,      745,     0 ), /*   744 rawst             */
+  S_ST( 't',   3,      399,     0 ), /*   745 rawsta            */
+  S_ST( 'e',   3,      762,   735 ), /*   746 r                 */
+  S_ST( 'f',   3,      748,     0 ), /*   747 re                */
+  S_ST( 'i',   3,      400,     0 ), /*   748 ref               */
+  S_ST( 'q',   3,      750,   747 ), /*   749 re                */
+  S_ST( 'u',   3,      751,     0 ), /*   750 req               */
+  S_ST( 'e',   3,      752,     0 ), /*   751 requ              */
+  S_ST( 's',   3,      753,     0 ), /*   752 reque             */
+  S_ST( 't',   3,      754,     0 ), /*   753 reques            */
+  S_ST( 'k',   3,      755,     0 ), /*   754 request           */
+  S_ST( 'e',   3,      401,     0 ), /*   755 requestk          */
+  S_ST( 's',   3,      758,   749 ), /*   756 re                */
+  S_ST( 'e',   3,      402,     0 ), /*   757 res               */
+  S_ST( 't',   3,      759,   757 ), /*   758 res               */
+  S_ST( 'r',   3,      760,     0 ), /*   759 rest              */
+  S_ST( 'i',   3,      761,     0 ), /*   760 restr             */
+  S_ST( 'c',   3,      403,     0 ), /*   761 restri            */
+  S_ST( 'v',   3,      763,   756 ), /*   762 re                */
+  S_ST( 'o',   3,      764,     0 ), /*   763 rev               */
+  S_ST( 'k',   3,      404,     0 ), /*   764 revo              */
+  S_ST( 'l',   3,      766,   746 ), /*   765 r                 */
+  S_ST( 'i',   3,      767,     0 ), /*   766 rl                */
+  S_ST( 'm',   3,      768,     0 ), /*   767 rli               */
+  S_ST( 'i',   3,      405,     0 ), /*   768 rlim              */
+  S_ST( 's',   3,      842,   734 ), /*   769                   */
+  S_ST( 'a',   3,      771,     0 ), /*   770 s                 */
+  S_ST( 'v',   3,      772,     0 ), /*   771 sa                */
+  S_ST( 'e',   3,      773,     0 ), /*   772 sav               */
+  S_ST( 'c',   3,      774,     0 ), /*   773 save              */
+  S_ST( 'o',   3,      775,     0 ), /*   774 savec             */
+  S_ST( 'n',   3,      776,     0 ), /*   775 saveco            */
+  S_ST( 'f',   3,      777,     0 ), /*   776 savecon           */
+  S_ST( 'i',   3,      778,     0 ), /*   777 saveconf          */
+  S_ST( 'g',   3,      779,     0 ), /*   778 saveconfi         */
+  S_ST( 'd',   3,      780,     0 ), /*   779 saveconfig        */
+  S_ST( 'i',   3,      406,     0 ), /*   780 saveconfigd       */
+  S_ST( 'e',   3,      791,   770 ), /*   781 s                 */
+  S_ST( 'r',   3,      783,     0 ), /*   782 se                */
+  S_ST( 'v',   3,      784,     0 ), /*   783 ser               */
+  S_ST( 'e',   3,      407,     0 ), /*   784 serv              */
+  S_ST( '_',   3,      786,     0 ), /*   785 server            */
+  S_ST( 'o',   3,      787,     0 ), /*   786 server_           */
+  S_ST( 'f',   3,      788,     0 ), /*   787 server_o          */
+  S_ST( 'f',   3,      789,     0 ), /*   788 server_of         */
+  S_ST( 's',   3,      790,     0 ), /*   789 server_off        */
+  S_ST( 'e',   3,      451,     0 ), /*   790 server_offs       */
+  S_ST( 't',   3,      792,   782 ), /*   791 se                */
+  S_ST( 'v',   3,      793,     0 ), /*   792 set               */
+  S_ST( 'a',   3,      408,     0 ), /*   793 setv              */
+  S_ST( 'i',   3,      795,   781 ), /*   794 s                 */
+  S_ST( 'm',   3,      796,     0 ), /*   795 si                */
+  S_ST( 'u',   3,      797,     0 ), /*   796 sim               */
+  S_ST( 'l',   3,      798,     0 ), /*   797 simu              */
+  S_ST( 'a',   3,      799,     0 ), /*   798 simul             */
+  S_ST( 't',   3,      800,     0 ), /*   799 simula            */
+  S_ST( 'i',   3,      801,   448 ), /*   800 simulat           */
+  S_ST( 'o',   3,      802,     0 ), /*   801 simulati          */
+  S_ST( 'n',   3,      803,     0 ), /*   802 simulatio         */
+  S_ST( '_',   3,      804,     0 ), /*   803 simulation        */
+  S_ST( 'd',   3,      805,     0 ), /*   804 simulation_       */
+  S_ST( 'u',   3,      806,     0 ), /*   805 simulation_d      */
+  S_ST( 'r',   3,      807,     0 ), /*   806 simulation_du     */
+  S_ST( 'a',   3,      808,     0 ), /*   807 simulation_dur    */
+  S_ST( 't',   3,      809,     0 ), /*   808 simulation_dura   */
+  S_ST( 'i',   3,      810,     0 ), /*   809 simulation_durat  */
+  S_ST( 'o',   3,      450,     0 ), /*   810 simulation_durati */
+  S_ST( 'o',   3,      812,   794 ), /*   811 s                 */
+  S_ST( 'u',   3,      813,     0 ), /*   812 so                */
+  S_ST( 'r',   3,      814,     0 ), /*   813 sou               */
+  S_ST( 'c',   3,      409,     0 ), /*   814 sour              */
+  S_ST( 't',   3,      838,   811 ), /*   815 s                 */
+  S_ST( 'a',   3,      822,     0 ), /*   816 st                */
+  S_ST( 'c',   3,      818,     0 ), /*   817 sta               */
+  S_ST( 'k',   3,      819,     0 ), /*   818 stac              */
+  S_ST( 's',   3,      820,     0 ), /*   819 stack             */
+  S_ST( 'i',   3,      821,     0 ), /*   820 stacks            */
+  S_ST( 'z',   3,      410,     0 ), /*   821 stacksi           */
+  S_ST( 't',   3,      412,   817 ), /*   822 sta               */
+  S_ST( 'i',   3,      824,     0 ), /*   823 stat              */
+  S_ST( 's',   3,      825,     0 ), /*   824 stati             */
+  S_ST( 't',   3,      826,     0 ), /*   825 statis            */
+  S_ST( 'i',   3,      827,     0 ), /*   826 statist           */
+  S_ST( 'c',   3,      411,     0 ), /*   827 statisti          */
+  S_ST( 'd',   3,      829,     0 ), /*   828 stats             */
+  S_ST( 'i',   3,      413,     0 ), /*   829 statsd            */
+  S_ST( 'e',   3,      414,   816 ), /*   830 st                */
+  S_ST( 'b',   3,      832,     0 ), /*   831 step              */
+  S_ST( 'a',   3,      833,     0 ), /*   832 stepb             */
+  S_ST( 'c',   3,      415,     0 ), /*   833 stepba            */
+  S_ST( 'f',   3,      835,   831 ), /*   834 step              */
+  S_ST( 'w',   3,      416,     0 ), /*   835 stepf             */
+  S_ST( 'o',   3,      837,   834 ), /*   836 step              */
+  S_ST( 'u',   3,      417,     0 ), /*   837 stepo             */
+  S_ST( 'r',   3,      839,   830 ), /*   838 st                */
+  S_ST( 'a',   3,      840,     0 ), /*   839 str               */
+  S_ST( 't',   3,      841,     0 ), /*   840 stra              */
+  S_ST( 'u',   3,      418,     0 ), /*   841 strat             */
+  S_ST( 'y',   3,      420,   815 ), /*   842 s                 */
+  S_ST( 's',   3,      844,     0 ), /*   843 sys               */
+  S_ST( 't',   3,      845,     0 ), /*   844 syss              */
+  S_ST( 'a',   3,      846,     0 ), /*   845 sysst             */
+  S_ST( 't',   3,      421,     0 ), /*   846 syssta            */
+  S_ST( 't',   3,      873,   769 ), /*   847                   */
+  S_ST( 'i',   3,      859,     0 ), /*   848 t                 */
+  S_ST( 'c',   3,      422,     0 ), /*   849 ti                */
+  S_ST( 'm',   3,      852,   849 ), /*   850 ti                */
+  S_ST( 'e',   3,      425,     0 ), /*   851 tim               */
+  S_ST( 'i',   3,      853,   851 ), /*   852 tim               */
+  S_ST( 'n',   3,      854,     0 ), /*   853 timi              */
+  S_ST( 'g',   3,      855,     0 ), /*   854 timin             */
+  S_ST( 's',   3,      856,     0 ), /*   855 timing            */
+  S_ST( 't',   3,      857,     0 ), /*   856 timings           */
+  S_ST( 'a',   3,      858,     0 ), /*   857 timingst          */
+  S_ST( 't',   3,      426,     0 ), /*   858 timingsta         */
+  S_ST( 'n',   3,      860,   850 ), /*   859 ti                */
+  S_ST( 'k',   3,      861,     0 ), /*   860 tin               */
+  S_ST( 'e',   3,      427,     0 ), /*   861 tink              */
+  S_ST( 'o',   3,      428,   848 ), /*   862 t                 */
+  S_ST( 'r',   3,      865,   862 ), /*   863 t                 */
+  S_ST( 'a',   3,      429,     0 ), /*   864 tr                */
+  S_ST( 'u',   3,      866,   864 ), /*   865 tr                */
+  S_ST( 's',   3,      867,   430 ), /*   866 tru               */
+  S_ST( 't',   3,      868,     0 ), /*   867 trus              */
+  S_ST( 'e',   3,      869,     0 ), /*   868 trust             */
+  S_ST( 'd',   3,      870,     0 ), /*   869 truste            */
+  S_ST( 'k',   3,      871,     0 ), /*   870 trusted           */
+  S_ST( 'e',   3,      431,     0 ), /*   871 trustedk          */
+  S_ST( 't',   3,      432,   863 ), /*   872 t                 */
+  S_ST( 'y',   3,      874,   872 ), /*   873 t                 */
+  S_ST( 'p',   3,      433,     0 ), /*   874 ty                */
+  S_ST( 'u',   3,      876,   847 ), /*   875                   */
+  S_ST( 'n',   3,      882,     0 ), /*   876 u                 */
+  S_ST( 'c',   3,      878,     0 ), /*   877 un                */
+  S_ST( 'o',   3,      879,     0 ), /*   878 unc               */
+  S_ST( 'n',   3,      880,     0 ), /*   879 unco              */
+  S_ST( 'f',   3,      881,     0 ), /*   880 uncon             */
+  S_ST( 'i',   3,      438,     0 ), /*   881 unconf            */
+  S_ST( 'p',   3,      883,   877 ), /*   882 un                */
+  S_ST( 'e',   3,      884,     0 ), /*   883 unp               */
+  S_ST( 'e',   3,      439,     0 ), /*   884 unpe              */
+  S_ST( '_',   3,      905,     0 ), /*   885 unpeer            */
+  S_ST( 'c',   3,      887,     0 ), /*   886 unpeer_           */
+  S_ST( 'r',   3,      888,     0 ), /*   887 unpeer_c          */
+  S_ST( 'y',   3,      889,     0 ), /*   888 unpeer_cr         */
+  S_ST( 'p',   3,      890,     0 ), /*   889 unpeer_cry        */
+  S_ST( 't',   3,      891,     0 ), /*   890 unpeer_cryp       */
+  S_ST( 'o',   3,      892,     0 ), /*   891 unpeer_crypt      */
+  S_ST( '_',   3,      897,     0 ), /*   892 unpeer_crypto     */
+  S_ST( 'e',   3,      894,     0 ), /*   893 unpeer_crypto_    */
+  S_ST( 'a',   3,      895,     0 ), /*   894 unpeer_crypto_e   */
+  S_ST( 'r',   3,      896,     0 ), /*   895 unpeer_crypto_ea  */
+  S_ST( 'l',   3,      435,     0 ), /*   896 unpeer_crypto_ear */
+  S_ST( 'n',   3,      898,   893 ), /*   897 unpeer_crypto_    */
+  S_ST( 'a',   3,      899,     0 ), /*   898 unpeer_crypto_n   */
+  S_ST( 'k',   3,      900,     0 ), /*   899 unpeer_crypto_na  */
+  S_ST( '_',   3,      901,     0 ), /*   900 unpeer_crypto_nak */
+  S_ST( 'e',   3,      902,     0 ), /*   901 unpeer_crypto_nak_ */
+  S_ST( 'a',   3,      903,     0 ), /*   902 unpeer_crypto_nak_e */
+  S_ST( 'r',   3,      904,     0 ), /*   903 unpeer_crypto_nak_ea */
+  S_ST( 'l',   3,      436,     0 ), /*   904 unpeer_crypto_nak_ear */
+  S_ST( 'd',   3,      906,   886 ), /*   905 unpeer_           */
+  S_ST( 'i',   3,      907,     0 ), /*   906 unpeer_d          */
+  S_ST( 'g',   3,      908,     0 ), /*   907 unpeer_di         */
+  S_ST( 'e',   3,      909,     0 ), /*   908 unpeer_dig        */
+  S_ST( 's',   3,      910,     0 ), /*   909 unpeer_dige       */
+  S_ST( 't',   3,      911,     0 ), /*   910 unpeer_diges      */
+  S_ST( '_',   3,      912,     0 ), /*   911 unpeer_digest     */
+  S_ST( 'e',   3,      913,     0 ), /*   912 unpeer_digest_    */
+  S_ST( 'a',   3,      914,     0 ), /*   913 unpeer_digest_e   */
+  S_ST( 'r',   3,      915,     0 ), /*   914 unpeer_digest_ea  */
+  S_ST( 'l',   3,      437,     0 ), /*   915 unpeer_digest_ear */
+  S_ST( 'v',   3,      917,   875 ), /*   916                   */
+  S_ST( 'e',   3,      918,     0 ), /*   917 v                 */
+  S_ST( 'r',   3,      919,     0 ), /*   918 ve                */
+  S_ST( 's',   3,      920,     0 ), /*   919 ver               */
+  S_ST( 'i',   3,      921,     0 ), /*   920 vers              */
+  S_ST( 'o',   3,      440,     0 ), /*   921 versi             */
+  S_ST( 'w',   3,      929,   916 ), /*   922                   */
+  S_ST( 'a',   3,      924,     0 ), /*   923 w                 */
+  S_ST( 'n',   3,      925,     0 ), /*   924 wa                */
+  S_ST( 'd',   3,      926,     0 ), /*   925 wan               */
+  S_ST( 'e',   3,      454,     0 ), /*   926 wand              */
+  S_ST( 'e',   3,      928,   923 ), /*   927 w                 */
+  S_ST( 'e',   3,      442,     0 ), /*   928 we                */
+  S_ST( 'i',   3,      930,   927 ), /*   929 w                 */
+  S_ST( 'l',   3,      931,     0 ), /*   930 wi                */
+  S_ST( 'd',   3,      932,     0 ), /*   931 wil               */
+  S_ST( 'c',   3,      933,     0 ), /*   932 wild              */
+  S_ST( 'a',   3,      934,     0 ), /*   933 wildc             */
+  S_ST( 'r',   3,      443,     0 ), /*   934 wildca            */
+  S_ST( 'x',   3,      936,   922 ), /*   935                   */
+  S_ST( 'l',   3,      937,     0 ), /*   936 x                 */
+  S_ST( 'e',   3,      938,     0 ), /*   937 xl                */
+  S_ST( 'a',   3,      939,     0 ), /*   938 xle               */
+  S_ST( 'v',   3,      444,     0 ), /*   939 xlea              */
+  S_ST( 'y',   3,      941,   935 ), /*   940 [initial state]   */
+  S_ST( 'e',   3,      942,     0 ), /*   941 y                 */
+  S_ST( 'a',   3,      445,     0 )  /*   942 ye                */
 };
 
index a8a8c20c48b3462c8ccfa4cc45a1fe59938a99aa..f2d54f32e16724f19b6a607f864f2e99643cfff1 100644 (file)
@@ -96,7 +96,7 @@
   #  define ONLY_SIM(a)        NULL
   #endif
 
-#line 100 "../../ntpd/ntp_parser.c" /* yacc.c:339  */
+#line 100 "ntp_parser.c" /* yacc.c:339  */
 
 # ifndef YY_NULLPTR
 #  if defined __cplusplus && 201103L <= __cplusplus
 
 /* In a future release of Bison, this section will be replaced
    by #include "y.tab.h".  */
-#ifndef YY_YY_Y_TAB_H_INCLUDED
-# define YY_YY_Y_TAB_H_INCLUDED
+#ifndef YY_YY_NTP_PARSER_H_INCLUDED
+# define YY_YY_NTP_PARSER_H_INCLUDED
 /* Debug traces.  */
 #ifndef YYDEBUG
 # define YYDEBUG 1
@@ -196,140 +196,141 @@ extern int yydebug;
     T_Interface = 320,
     T_Intrange = 321,
     T_Io = 322,
-    T_Ipv4 = 323,
-    T_Ipv4_flag = 324,
-    T_Ipv6 = 325,
-    T_Ipv6_flag = 326,
-    T_Kernel = 327,
-    T_Key = 328,
-    T_Keys = 329,
-    T_Keysdir = 330,
-    T_Kod = 331,
-    T_Mssntp = 332,
-    T_Leapfile = 333,
-    T_Leapsmearinterval = 334,
-    T_Limited = 335,
-    T_Link = 336,
-    T_Listen = 337,
-    T_Logconfig = 338,
-    T_Logfile = 339,
-    T_Loopstats = 340,
-    T_Lowpriotrap = 341,
-    T_Manycastclient = 342,
-    T_Manycastserver = 343,
-    T_Mask = 344,
-    T_Maxage = 345,
-    T_Maxclock = 346,
-    T_Maxdepth = 347,
-    T_Maxdist = 348,
-    T_Maxmem = 349,
-    T_Maxpoll = 350,
-    T_Mdnstries = 351,
-    T_Mem = 352,
-    T_Memlock = 353,
-    T_Minclock = 354,
-    T_Mindepth = 355,
-    T_Mindist = 356,
-    T_Minimum = 357,
-    T_Minpoll = 358,
-    T_Minsane = 359,
-    T_Mode = 360,
-    T_Mode7 = 361,
-    T_Monitor = 362,
-    T_Month = 363,
-    T_Mru = 364,
-    T_Multicastclient = 365,
-    T_Nic = 366,
-    T_Nolink = 367,
-    T_Nomodify = 368,
-    T_Nomrulist = 369,
-    T_None = 370,
-    T_Nonvolatile = 371,
-    T_Noepeer = 372,
-    T_Nopeer = 373,
-    T_Noquery = 374,
-    T_Noselect = 375,
-    T_Noserve = 376,
-    T_Notrap = 377,
-    T_Notrust = 378,
-    T_Ntp = 379,
-    T_Ntpport = 380,
-    T_NtpSignDsocket = 381,
-    T_Orphan = 382,
-    T_Orphanwait = 383,
-    T_PCEdigest = 384,
-    T_Panic = 385,
-    T_Peer = 386,
-    T_Peerstats = 387,
-    T_Phone = 388,
-    T_Pid = 389,
-    T_Pidfile = 390,
-    T_Pool = 391,
-    T_Port = 392,
-    T_Preempt = 393,
-    T_Prefer = 394,
-    T_Protostats = 395,
-    T_Pw = 396,
-    T_Randfile = 397,
-    T_Rawstats = 398,
-    T_Refid = 399,
-    T_Requestkey = 400,
-    T_Reset = 401,
-    T_Restrict = 402,
-    T_Revoke = 403,
-    T_Rlimit = 404,
-    T_Saveconfigdir = 405,
-    T_Server = 406,
-    T_Setvar = 407,
-    T_Source = 408,
-    T_Stacksize = 409,
-    T_Statistics = 410,
-    T_Stats = 411,
-    T_Statsdir = 412,
-    T_Step = 413,
-    T_Stepback = 414,
-    T_Stepfwd = 415,
-    T_Stepout = 416,
-    T_Stratum = 417,
-    T_String = 418,
-    T_Sys = 419,
-    T_Sysstats = 420,
-    T_Tick = 421,
-    T_Time1 = 422,
-    T_Time2 = 423,
-    T_Timer = 424,
-    T_Timingstats = 425,
-    T_Tinker = 426,
-    T_Tos = 427,
-    T_Trap = 428,
-    T_True = 429,
-    T_Trustedkey = 430,
-    T_Ttl = 431,
-    T_Type = 432,
-    T_U_int = 433,
-    T_UEcrypto = 434,
-    T_UEcryptonak = 435,
-    T_UEdigest = 436,
-    T_Unconfig = 437,
-    T_Unpeer = 438,
-    T_Version = 439,
-    T_WanderThreshold = 440,
-    T_Week = 441,
-    T_Wildcard = 442,
-    T_Xleave = 443,
-    T_Year = 444,
-    T_Flag = 445,
-    T_EOC = 446,
-    T_Simulate = 447,
-    T_Beep_Delay = 448,
-    T_Sim_Duration = 449,
-    T_Server_Offset = 450,
-    T_Duration = 451,
-    T_Freq_Offset = 452,
-    T_Wander = 453,
-    T_Jitter = 454,
-    T_Prop_Delay = 455,
-    T_Proc_Delay = 456
+    T_Ippeerlimit = 323,
+    T_Ipv4 = 324,
+    T_Ipv4_flag = 325,
+    T_Ipv6 = 326,
+    T_Ipv6_flag = 327,
+    T_Kernel = 328,
+    T_Key = 329,
+    T_Keys = 330,
+    T_Keysdir = 331,
+    T_Kod = 332,
+    T_Mssntp = 333,
+    T_Leapfile = 334,
+    T_Leapsmearinterval = 335,
+    T_Limited = 336,
+    T_Link = 337,
+    T_Listen = 338,
+    T_Logconfig = 339,
+    T_Logfile = 340,
+    T_Loopstats = 341,
+    T_Lowpriotrap = 342,
+    T_Manycastclient = 343,
+    T_Manycastserver = 344,
+    T_Mask = 345,
+    T_Maxage = 346,
+    T_Maxclock = 347,
+    T_Maxdepth = 348,
+    T_Maxdist = 349,
+    T_Maxmem = 350,
+    T_Maxpoll = 351,
+    T_Mdnstries = 352,
+    T_Mem = 353,
+    T_Memlock = 354,
+    T_Minclock = 355,
+    T_Mindepth = 356,
+    T_Mindist = 357,
+    T_Minimum = 358,
+    T_Minpoll = 359,
+    T_Minsane = 360,
+    T_Mode = 361,
+    T_Mode7 = 362,
+    T_Monitor = 363,
+    T_Month = 364,
+    T_Mru = 365,
+    T_Multicastclient = 366,
+    T_Nic = 367,
+    T_Nolink = 368,
+    T_Nomodify = 369,
+    T_Nomrulist = 370,
+    T_None = 371,
+    T_Nonvolatile = 372,
+    T_Noepeer = 373,
+    T_Nopeer = 374,
+    T_Noquery = 375,
+    T_Noselect = 376,
+    T_Noserve = 377,
+    T_Notrap = 378,
+    T_Notrust = 379,
+    T_Ntp = 380,
+    T_Ntpport = 381,
+    T_NtpSignDsocket = 382,
+    T_Orphan = 383,
+    T_Orphanwait = 384,
+    T_PCEdigest = 385,
+    T_Panic = 386,
+    T_Peer = 387,
+    T_Peerstats = 388,
+    T_Phone = 389,
+    T_Pid = 390,
+    T_Pidfile = 391,
+    T_Pool = 392,
+    T_Port = 393,
+    T_Preempt = 394,
+    T_Prefer = 395,
+    T_Protostats = 396,
+    T_Pw = 397,
+    T_Randfile = 398,
+    T_Rawstats = 399,
+    T_Refid = 400,
+    T_Requestkey = 401,
+    T_Reset = 402,
+    T_Restrict = 403,
+    T_Revoke = 404,
+    T_Rlimit = 405,
+    T_Saveconfigdir = 406,
+    T_Server = 407,
+    T_Setvar = 408,
+    T_Source = 409,
+    T_Stacksize = 410,
+    T_Statistics = 411,
+    T_Stats = 412,
+    T_Statsdir = 413,
+    T_Step = 414,
+    T_Stepback = 415,
+    T_Stepfwd = 416,
+    T_Stepout = 417,
+    T_Stratum = 418,
+    T_String = 419,
+    T_Sys = 420,
+    T_Sysstats = 421,
+    T_Tick = 422,
+    T_Time1 = 423,
+    T_Time2 = 424,
+    T_Timer = 425,
+    T_Timingstats = 426,
+    T_Tinker = 427,
+    T_Tos = 428,
+    T_Trap = 429,
+    T_True = 430,
+    T_Trustedkey = 431,
+    T_Ttl = 432,
+    T_Type = 433,
+    T_U_int = 434,
+    T_UEcrypto = 435,
+    T_UEcryptonak = 436,
+    T_UEdigest = 437,
+    T_Unconfig = 438,
+    T_Unpeer = 439,
+    T_Version = 440,
+    T_WanderThreshold = 441,
+    T_Week = 442,
+    T_Wildcard = 443,
+    T_Xleave = 444,
+    T_Year = 445,
+    T_Flag = 446,
+    T_EOC = 447,
+    T_Simulate = 448,
+    T_Beep_Delay = 449,
+    T_Sim_Duration = 450,
+    T_Server_Offset = 451,
+    T_Duration = 452,
+    T_Freq_Offset = 453,
+    T_Wander = 454,
+    T_Jitter = 455,
+    T_Prop_Delay = 456,
+    T_Proc_Delay = 457
   };
 #endif
 /* Tokens.  */
@@ -398,140 +399,141 @@ extern int yydebug;
 #define T_Interface 320
 #define T_Intrange 321
 #define T_Io 322
-#define T_Ipv4 323
-#define T_Ipv4_flag 324
-#define T_Ipv6 325
-#define T_Ipv6_flag 326
-#define T_Kernel 327
-#define T_Key 328
-#define T_Keys 329
-#define T_Keysdir 330
-#define T_Kod 331
-#define T_Mssntp 332
-#define T_Leapfile 333
-#define T_Leapsmearinterval 334
-#define T_Limited 335
-#define T_Link 336
-#define T_Listen 337
-#define T_Logconfig 338
-#define T_Logfile 339
-#define T_Loopstats 340
-#define T_Lowpriotrap 341
-#define T_Manycastclient 342
-#define T_Manycastserver 343
-#define T_Mask 344
-#define T_Maxage 345
-#define T_Maxclock 346
-#define T_Maxdepth 347
-#define T_Maxdist 348
-#define T_Maxmem 349
-#define T_Maxpoll 350
-#define T_Mdnstries 351
-#define T_Mem 352
-#define T_Memlock 353
-#define T_Minclock 354
-#define T_Mindepth 355
-#define T_Mindist 356
-#define T_Minimum 357
-#define T_Minpoll 358
-#define T_Minsane 359
-#define T_Mode 360
-#define T_Mode7 361
-#define T_Monitor 362
-#define T_Month 363
-#define T_Mru 364
-#define T_Multicastclient 365
-#define T_Nic 366
-#define T_Nolink 367
-#define T_Nomodify 368
-#define T_Nomrulist 369
-#define T_None 370
-#define T_Nonvolatile 371
-#define T_Noepeer 372
-#define T_Nopeer 373
-#define T_Noquery 374
-#define T_Noselect 375
-#define T_Noserve 376
-#define T_Notrap 377
-#define T_Notrust 378
-#define T_Ntp 379
-#define T_Ntpport 380
-#define T_NtpSignDsocket 381
-#define T_Orphan 382
-#define T_Orphanwait 383
-#define T_PCEdigest 384
-#define T_Panic 385
-#define T_Peer 386
-#define T_Peerstats 387
-#define T_Phone 388
-#define T_Pid 389
-#define T_Pidfile 390
-#define T_Pool 391
-#define T_Port 392
-#define T_Preempt 393
-#define T_Prefer 394
-#define T_Protostats 395
-#define T_Pw 396
-#define T_Randfile 397
-#define T_Rawstats 398
-#define T_Refid 399
-#define T_Requestkey 400
-#define T_Reset 401
-#define T_Restrict 402
-#define T_Revoke 403
-#define T_Rlimit 404
-#define T_Saveconfigdir 405
-#define T_Server 406
-#define T_Setvar 407
-#define T_Source 408
-#define T_Stacksize 409
-#define T_Statistics 410
-#define T_Stats 411
-#define T_Statsdir 412
-#define T_Step 413
-#define T_Stepback 414
-#define T_Stepfwd 415
-#define T_Stepout 416
-#define T_Stratum 417
-#define T_String 418
-#define T_Sys 419
-#define T_Sysstats 420
-#define T_Tick 421
-#define T_Time1 422
-#define T_Time2 423
-#define T_Timer 424
-#define T_Timingstats 425
-#define T_Tinker 426
-#define T_Tos 427
-#define T_Trap 428
-#define T_True 429
-#define T_Trustedkey 430
-#define T_Ttl 431
-#define T_Type 432
-#define T_U_int 433
-#define T_UEcrypto 434
-#define T_UEcryptonak 435
-#define T_UEdigest 436
-#define T_Unconfig 437
-#define T_Unpeer 438
-#define T_Version 439
-#define T_WanderThreshold 440
-#define T_Week 441
-#define T_Wildcard 442
-#define T_Xleave 443
-#define T_Year 444
-#define T_Flag 445
-#define T_EOC 446
-#define T_Simulate 447
-#define T_Beep_Delay 448
-#define T_Sim_Duration 449
-#define T_Server_Offset 450
-#define T_Duration 451
-#define T_Freq_Offset 452
-#define T_Wander 453
-#define T_Jitter 454
-#define T_Prop_Delay 455
-#define T_Proc_Delay 456
+#define T_Ippeerlimit 323
+#define T_Ipv4 324
+#define T_Ipv4_flag 325
+#define T_Ipv6 326
+#define T_Ipv6_flag 327
+#define T_Kernel 328
+#define T_Key 329
+#define T_Keys 330
+#define T_Keysdir 331
+#define T_Kod 332
+#define T_Mssntp 333
+#define T_Leapfile 334
+#define T_Leapsmearinterval 335
+#define T_Limited 336
+#define T_Link 337
+#define T_Listen 338
+#define T_Logconfig 339
+#define T_Logfile 340
+#define T_Loopstats 341
+#define T_Lowpriotrap 342
+#define T_Manycastclient 343
+#define T_Manycastserver 344
+#define T_Mask 345
+#define T_Maxage 346
+#define T_Maxclock 347
+#define T_Maxdepth 348
+#define T_Maxdist 349
+#define T_Maxmem 350
+#define T_Maxpoll 351
+#define T_Mdnstries 352
+#define T_Mem 353
+#define T_Memlock 354
+#define T_Minclock 355
+#define T_Mindepth 356
+#define T_Mindist 357
+#define T_Minimum 358
+#define T_Minpoll 359
+#define T_Minsane 360
+#define T_Mode 361
+#define T_Mode7 362
+#define T_Monitor 363
+#define T_Month 364
+#define T_Mru 365
+#define T_Multicastclient 366
+#define T_Nic 367
+#define T_Nolink 368
+#define T_Nomodify 369
+#define T_Nomrulist 370
+#define T_None 371
+#define T_Nonvolatile 372
+#define T_Noepeer 373
+#define T_Nopeer 374
+#define T_Noquery 375
+#define T_Noselect 376
+#define T_Noserve 377
+#define T_Notrap 378
+#define T_Notrust 379
+#define T_Ntp 380
+#define T_Ntpport 381
+#define T_NtpSignDsocket 382
+#define T_Orphan 383
+#define T_Orphanwait 384
+#define T_PCEdigest 385
+#define T_Panic 386
+#define T_Peer 387
+#define T_Peerstats 388
+#define T_Phone 389
+#define T_Pid 390
+#define T_Pidfile 391
+#define T_Pool 392
+#define T_Port 393
+#define T_Preempt 394
+#define T_Prefer 395
+#define T_Protostats 396
+#define T_Pw 397
+#define T_Randfile 398
+#define T_Rawstats 399
+#define T_Refid 400
+#define T_Requestkey 401
+#define T_Reset 402
+#define T_Restrict 403
+#define T_Revoke 404
+#define T_Rlimit 405
+#define T_Saveconfigdir 406
+#define T_Server 407
+#define T_Setvar 408
+#define T_Source 409
+#define T_Stacksize 410
+#define T_Statistics 411
+#define T_Stats 412
+#define T_Statsdir 413
+#define T_Step 414
+#define T_Stepback 415
+#define T_Stepfwd 416
+#define T_Stepout 417
+#define T_Stratum 418
+#define T_String 419
+#define T_Sys 420
+#define T_Sysstats 421
+#define T_Tick 422
+#define T_Time1 423
+#define T_Time2 424
+#define T_Timer 425
+#define T_Timingstats 426
+#define T_Tinker 427
+#define T_Tos 428
+#define T_Trap 429
+#define T_True 430
+#define T_Trustedkey 431
+#define T_Ttl 432
+#define T_Type 433
+#define T_U_int 434
+#define T_UEcrypto 435
+#define T_UEcryptonak 436
+#define T_UEdigest 437
+#define T_Unconfig 438
+#define T_Unpeer 439
+#define T_Version 440
+#define T_WanderThreshold 441
+#define T_Week 442
+#define T_Wildcard 443
+#define T_Xleave 444
+#define T_Year 445
+#define T_Flag 446
+#define T_EOC 447
+#define T_Simulate 448
+#define T_Beep_Delay 449
+#define T_Sim_Duration 450
+#define T_Server_Offset 451
+#define T_Duration 452
+#define T_Freq_Offset 453
+#define T_Wander 454
+#define T_Jitter 455
+#define T_Prop_Delay 456
+#define T_Proc_Delay 457
 
 /* Value type.  */
 #if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED
@@ -557,7 +559,7 @@ union YYSTYPE
        script_info *           Sim_script;
        script_info_fifo *      Sim_script_fifo;
 
-#line 561 "../../ntpd/ntp_parser.c" /* yacc.c:355  */
+#line 563 "ntp_parser.c" /* yacc.c:355  */
 };
 
 typedef union YYSTYPE YYSTYPE;
@@ -570,11 +572,11 @@ extern YYSTYPE yylval;
 
 int yyparse (void);
 
-#endif /* !YY_YY_Y_TAB_H_INCLUDED  */
+#endif /* !YY_YY_NTP_PARSER_H_INCLUDED  */
 
 /* Copy the second part of user declarations.  */
 
-#line 578 "../../ntpd/ntp_parser.c" /* yacc.c:358  */
+#line 580 "ntp_parser.c" /* yacc.c:358  */
 
 #ifdef short
 # undef short
@@ -816,21 +818,21 @@ union yyalloc
 /* YYFINAL -- State number of the termination state.  */
 #define YYFINAL  216
 /* YYLAST -- Last index in YYTABLE.  */
-#define YYLAST   656
+#define YYLAST   662
 
 /* YYNTOKENS -- Number of terminals.  */
-#define YYNTOKENS  207
+#define YYNTOKENS  208
 /* YYNNTS -- Number of nonterminals.  */
-#define YYNNTS  106
+#define YYNNTS  107
 /* YYNRULES -- Number of rules.  */
-#define YYNRULES  322
+#define YYNRULES  324
 /* YYNSTATES -- Number of states.  */
-#define YYNSTATES  428
+#define YYNSTATES  436
 
 /* YYTRANSLATE[YYX] -- Symbol number corresponding to YYX as returned
    by yylex, with out-of-bounds checking.  */
 #define YYUNDEFTOK  2
-#define YYMAXUTOK   456
+#define YYMAXUTOK   457
 
 #define YYTRANSLATE(YYX)                                                \
   ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK)
@@ -843,15 +845,15 @@ static const yytype_uint8 yytranslate[] =
        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
-     203,   204,     2,     2,     2,     2,     2,     2,     2,     2,
+     204,   205,     2,     2,     2,     2,     2,     2,     2,     2,
        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
-       2,   202,     2,     2,     2,     2,     2,     2,     2,     2,
+       2,   203,     2,     2,     2,     2,     2,     2,     2,     2,
        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
-       2,     2,     2,   205,     2,   206,     2,     2,     2,     2,
+       2,     2,     2,   206,     2,   207,     2,     2,     2,     2,
        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
@@ -884,46 +886,46 @@ static const yytype_uint8 yytranslate[] =
      165,   166,   167,   168,   169,   170,   171,   172,   173,   174,
      175,   176,   177,   178,   179,   180,   181,   182,   183,   184,
      185,   186,   187,   188,   189,   190,   191,   192,   193,   194,
-     195,   196,   197,   198,   199,   200,   201
+     195,   196,   197,   198,   199,   200,   201,   202
 };
 
 #if YYDEBUG
   /* YYRLINE[YYN] -- Source line where rule number YYN was defined.  */
 static const yytype_uint16 yyrline[] =
 {
-       0,   375,   375,   379,   380,   381,   396,   397,   398,   399,
-     400,   401,   402,   403,   404,   405,   406,   407,   408,   409,
-     417,   427,   428,   429,   430,   431,   435,   436,   441,   446,
-     448,   454,   455,   463,   464,   465,   469,   474,   475,   476,
-     477,   478,   479,   480,   481,   485,   487,   492,   493,   494,
-     495,   496,   497,   501,   506,   515,   525,   526,   536,   538,
-     540,   542,   553,   560,   562,   567,   569,   571,   573,   575,
-     585,   591,   592,   600,   602,   614,   615,   616,   617,   618,
-     627,   632,   637,   645,   647,   649,   651,   656,   657,   658,
-     659,   660,   661,   662,   663,   664,   668,   669,   678,   680,
-     689,   699,   704,   712,   713,   714,   715,   716,   717,   718,
-     719,   724,   725,   733,   743,   752,   767,   772,   773,   777,
-     778,   782,   783,   784,   785,   786,   787,   788,   797,   801,
-     805,   813,   821,   829,   844,   859,   872,   873,   881,   882,
-     883,   884,   885,   886,   887,   888,   889,   890,   891,   892,
-     893,   894,   895,   896,   897,   901,   906,   914,   919,   920,
-     921,   925,   930,   938,   943,   944,   945,   946,   947,   948,
-     949,   950,   958,   968,   973,   981,   983,   985,   994,   996,
-    1001,  1002,  1006,  1007,  1008,  1009,  1017,  1022,  1027,  1035,
-    1040,  1041,  1042,  1051,  1053,  1058,  1063,  1071,  1073,  1090,
-    1091,  1092,  1093,  1094,  1095,  1099,  1100,  1101,  1102,  1103,
-    1104,  1112,  1117,  1122,  1130,  1135,  1136,  1137,  1138,  1139,
-    1140,  1141,  1142,  1143,  1144,  1153,  1154,  1155,  1162,  1169,
-    1176,  1192,  1211,  1213,  1215,  1217,  1219,  1221,  1228,  1233,
-    1234,  1235,  1239,  1243,  1252,  1253,  1257,  1258,  1259,  1263,
-    1274,  1288,  1300,  1305,  1307,  1312,  1313,  1321,  1323,  1331,
-    1336,  1344,  1369,  1376,  1386,  1387,  1391,  1392,  1393,  1394,
-    1398,  1399,  1400,  1404,  1409,  1414,  1422,  1423,  1424,  1425,
-    1426,  1427,  1428,  1438,  1443,  1451,  1456,  1464,  1466,  1470,
-    1475,  1480,  1488,  1493,  1501,  1510,  1511,  1515,  1516,  1520,
-    1528,  1546,  1550,  1555,  1563,  1568,  1569,  1573,  1578,  1586,
-    1591,  1596,  1601,  1606,  1614,  1619,  1624,  1632,  1637,  1638,
-    1639,  1640,  1641
+       0,   377,   377,   381,   382,   383,   398,   399,   400,   401,
+     402,   403,   404,   405,   406,   407,   408,   409,   410,   411,
+     419,   429,   430,   431,   432,   433,   437,   438,   443,   448,
+     450,   456,   457,   465,   466,   467,   471,   476,   477,   478,
+     479,   480,   481,   482,   483,   487,   489,   494,   495,   496,
+     497,   498,   499,   503,   508,   517,   527,   528,   538,   540,
+     542,   544,   555,   562,   564,   569,   571,   573,   575,   577,
+     587,   593,   594,   602,   604,   616,   617,   618,   619,   620,
+     629,   634,   639,   647,   649,   651,   653,   658,   659,   660,
+     661,   662,   663,   664,   665,   666,   670,   671,   680,   682,
+     691,   701,   706,   714,   715,   716,   717,   718,   719,   720,
+     721,   726,   727,   735,   745,   754,   769,   774,   775,   779,
+     780,   784,   785,   786,   787,   788,   789,   790,   799,   803,
+     807,   815,   823,   831,   846,   861,   874,   875,   895,   896,
+     904,   905,   906,   907,   908,   909,   910,   911,   912,   913,
+     914,   915,   916,   917,   918,   919,   920,   924,   929,   937,
+     942,   943,   944,   948,   953,   961,   966,   967,   968,   969,
+     970,   971,   972,   973,   981,   991,   996,  1004,  1006,  1008,
+    1017,  1019,  1024,  1025,  1029,  1030,  1031,  1032,  1040,  1045,
+    1050,  1058,  1063,  1064,  1065,  1074,  1076,  1081,  1086,  1094,
+    1096,  1113,  1114,  1115,  1116,  1117,  1118,  1122,  1123,  1124,
+    1125,  1126,  1127,  1135,  1140,  1145,  1153,  1158,  1159,  1160,
+    1161,  1162,  1163,  1164,  1165,  1166,  1167,  1176,  1177,  1178,
+    1185,  1192,  1199,  1215,  1234,  1236,  1238,  1240,  1242,  1244,
+    1251,  1256,  1257,  1258,  1262,  1266,  1275,  1276,  1280,  1281,
+    1282,  1286,  1297,  1311,  1323,  1328,  1330,  1335,  1336,  1344,
+    1346,  1354,  1359,  1367,  1392,  1399,  1409,  1410,  1414,  1415,
+    1416,  1417,  1421,  1422,  1423,  1427,  1432,  1437,  1445,  1446,
+    1447,  1448,  1449,  1450,  1451,  1461,  1466,  1474,  1479,  1487,
+    1489,  1493,  1498,  1503,  1511,  1516,  1524,  1533,  1534,  1538,
+    1539,  1543,  1551,  1569,  1573,  1578,  1586,  1591,  1592,  1596,
+    1601,  1609,  1614,  1619,  1624,  1629,  1637,  1642,  1647,  1655,
+    1660,  1661,  1662,  1663,  1664
 };
 #endif
 
@@ -944,21 +946,21 @@ static const char *const yytname[] =
   "T_Flag4", "T_Flake", "T_Floor", "T_Freq", "T_Fudge", "T_Host",
   "T_Huffpuff", "T_Iburst", "T_Ident", "T_Ignore", "T_Incalloc",
   "T_Incmem", "T_Initalloc", "T_Initmem", "T_Includefile", "T_Integer",
-  "T_Interface", "T_Intrange", "T_Io", "T_Ipv4", "T_Ipv4_flag", "T_Ipv6",
-  "T_Ipv6_flag", "T_Kernel", "T_Key", "T_Keys", "T_Keysdir", "T_Kod",
-  "T_Mssntp", "T_Leapfile", "T_Leapsmearinterval", "T_Limited", "T_Link",
-  "T_Listen", "T_Logconfig", "T_Logfile", "T_Loopstats", "T_Lowpriotrap",
-  "T_Manycastclient", "T_Manycastserver", "T_Mask", "T_Maxage",
-  "T_Maxclock", "T_Maxdepth", "T_Maxdist", "T_Maxmem", "T_Maxpoll",
-  "T_Mdnstries", "T_Mem", "T_Memlock", "T_Minclock", "T_Mindepth",
-  "T_Mindist", "T_Minimum", "T_Minpoll", "T_Minsane", "T_Mode", "T_Mode7",
-  "T_Monitor", "T_Month", "T_Mru", "T_Multicastclient", "T_Nic",
-  "T_Nolink", "T_Nomodify", "T_Nomrulist", "T_None", "T_Nonvolatile",
-  "T_Noepeer", "T_Nopeer", "T_Noquery", "T_Noselect", "T_Noserve",
-  "T_Notrap", "T_Notrust", "T_Ntp", "T_Ntpport", "T_NtpSignDsocket",
-  "T_Orphan", "T_Orphanwait", "T_PCEdigest", "T_Panic", "T_Peer",
-  "T_Peerstats", "T_Phone", "T_Pid", "T_Pidfile", "T_Pool", "T_Port",
-  "T_Preempt", "T_Prefer", "T_Protostats", "T_Pw", "T_Randfile",
+  "T_Interface", "T_Intrange", "T_Io", "T_Ippeerlimit", "T_Ipv4",
+  "T_Ipv4_flag", "T_Ipv6", "T_Ipv6_flag", "T_Kernel", "T_Key", "T_Keys",
+  "T_Keysdir", "T_Kod", "T_Mssntp", "T_Leapfile", "T_Leapsmearinterval",
+  "T_Limited", "T_Link", "T_Listen", "T_Logconfig", "T_Logfile",
+  "T_Loopstats", "T_Lowpriotrap", "T_Manycastclient", "T_Manycastserver",
+  "T_Mask", "T_Maxage", "T_Maxclock", "T_Maxdepth", "T_Maxdist",
+  "T_Maxmem", "T_Maxpoll", "T_Mdnstries", "T_Mem", "T_Memlock",
+  "T_Minclock", "T_Mindepth", "T_Mindist", "T_Minimum", "T_Minpoll",
+  "T_Minsane", "T_Mode", "T_Mode7", "T_Monitor", "T_Month", "T_Mru",
+  "T_Multicastclient", "T_Nic", "T_Nolink", "T_Nomodify", "T_Nomrulist",
+  "T_None", "T_Nonvolatile", "T_Noepeer", "T_Nopeer", "T_Noquery",
+  "T_Noselect", "T_Noserve", "T_Notrap", "T_Notrust", "T_Ntp", "T_Ntpport",
+  "T_NtpSignDsocket", "T_Orphan", "T_Orphanwait", "T_PCEdigest", "T_Panic",
+  "T_Peer", "T_Peerstats", "T_Phone", "T_Pid", "T_Pidfile", "T_Pool",
+  "T_Port", "T_Preempt", "T_Prefer", "T_Protostats", "T_Pw", "T_Randfile",
   "T_Rawstats", "T_Refid", "T_Requestkey", "T_Reset", "T_Restrict",
   "T_Revoke", "T_Rlimit", "T_Saveconfigdir", "T_Server", "T_Setvar",
   "T_Source", "T_Stacksize", "T_Statistics", "T_Stats", "T_Statsdir",
@@ -981,13 +983,14 @@ static const char *const yytname[] =
   "tos_option", "tos_option_int_keyword", "tos_option_dbl_keyword",
   "monitoring_command", "stats_list", "stat", "filegen_option_list",
   "filegen_option", "link_nolink", "enable_disable", "filegen_type",
-  "access_control_command", "ac_flag_list", "access_control_flag",
-  "discard_option_list", "discard_option", "discard_option_keyword",
-  "mru_option_list", "mru_option", "mru_option_keyword", "fudge_command",
-  "fudge_factor_list", "fudge_factor", "fudge_factor_dbl_keyword",
-  "fudge_factor_bool_keyword", "rlimit_command", "rlimit_option_list",
-  "rlimit_option", "rlimit_option_keyword", "system_option_command",
-  "system_option_list", "system_option", "system_option_flag_keyword",
+  "access_control_command", "res_ippeerlimit", "ac_flag_list",
+  "access_control_flag", "discard_option_list", "discard_option",
+  "discard_option_keyword", "mru_option_list", "mru_option",
+  "mru_option_keyword", "fudge_command", "fudge_factor_list",
+  "fudge_factor", "fudge_factor_dbl_keyword", "fudge_factor_bool_keyword",
+  "rlimit_command", "rlimit_option_list", "rlimit_option",
+  "rlimit_option_keyword", "system_option_command", "system_option_list",
+  "system_option", "system_option_flag_keyword",
   "system_option_local_flag_keyword", "tinker_command",
   "tinker_option_list", "tinker_option", "tinker_option_keyword",
   "miscellaneous_command", "misc_cmd_dbl_keyword", "misc_cmd_int_keyword",
@@ -1031,14 +1034,14 @@ static const yytype_uint16 yytoknum[] =
      425,   426,   427,   428,   429,   430,   431,   432,   433,   434,
      435,   436,   437,   438,   439,   440,   441,   442,   443,   444,
      445,   446,   447,   448,   449,   450,   451,   452,   453,   454,
-     455,   456,    61,    40,    41,   123,   125
+     455,   456,   457,    61,    40,    41,   123,   125
 };
 # endif
 
-#define YYPACT_NINF -187
+#define YYPACT_NINF -215
 
 #define yypact_value_is_default(Yystate) \
-  (!!((Yystate) == (-187)))
+  (!!((Yystate) == (-215)))
 
 #define YYTABLE_NINF -7
 
@@ -1049,49 +1052,50 @@ static const yytype_uint16 yytoknum[] =
      STATE-NUM.  */
 static const yytype_int16 yypact[] =
 {
-      11,  -174,   -42,  -187,  -187,  -187,   -31,  -187,   397,    12,
-    -137,  -187,   397,  -187,    84,   -37,  -187,  -119,  -187,  -106,
-    -104,  -187,  -187,   -98,  -187,  -187,   -37,     3,   331,   -37,
-    -187,  -187,   -97,  -187,   -92,  -187,  -187,    13,   235,   -13,
-      15,   -26,  -187,  -187,   -90,    84,   -88,  -187,    48,   528,
-     -81,   -58,    24,  -187,  -187,  -187,    93,   194,   -95,  -187,
-     -37,  -187,   -37,  -187,  -187,  -187,  -187,  -187,  -187,  -187,
-    -187,  -187,  -187,     5,    37,   -61,   -59,  -187,     2,  -187,
-    -187,  -100,  -187,  -187,  -187,   241,  -187,  -187,  -187,  -187,
-    -187,  -187,  -187,  -187,  -187,  -187,  -187,  -187,   397,  -187,
-    -187,  -187,  -187,  -187,  -187,    12,  -187,    47,    78,  -187,
-     397,  -187,  -187,  -187,  -187,  -187,  -187,  -187,  -187,  -187,
-    -187,  -187,  -187,   267,  -187,   -50,   363,  -187,  -187,  -187,
-     -98,  -187,  -187,   -37,  -187,  -187,  -187,  -187,  -187,  -187,
-    -187,  -187,  -187,   331,  -187,    51,   -37,  -187,  -187,   -47,
-    -187,  -187,  -187,  -187,  -187,  -187,  -187,  -187,   235,  -187,
-    -187,    94,   100,  -187,    41,  -187,  -187,  -187,  -187,   -26,
-    -187,    68,   -69,  -187,    84,  -187,  -187,  -187,  -187,  -187,
-    -187,  -187,  -187,  -187,  -187,  -187,  -187,    48,  -187,     5,
-     -28,  -187,  -187,  -187,   -33,  -187,  -187,  -187,  -187,  -187,
-    -187,  -187,  -187,   528,  -187,    70,     5,  -187,  -187,  -187,
-      74,   -58,  -187,  -187,  -187,    75,  -187,   -27,  -187,  -187,
-    -187,  -187,  -187,  -187,  -187,  -187,  -187,  -187,  -187,  -187,
-      10,  -132,  -187,  -187,  -187,  -187,  -187,    85,  -187,     4,
-    -187,  -187,  -187,  -187,   -29,     7,  -187,  -187,  -187,  -187,
-       8,   101,  -187,  -187,   267,  -187,     5,   -33,  -187,  -187,
-    -187,  -187,  -187,  -187,  -187,  -187,   447,  -187,  -187,   447,
-     -81,   447,  -187,  -187,    16,  -187,  -187,  -187,  -187,  -187,
-    -187,  -187,  -187,  -187,  -187,  -187,   -40,   134,  -187,  -187,
-    -187,   180,  -187,  -187,  -187,  -187,  -187,  -187,  -187,  -187,
-    -102,   -17,   -22,  -187,  -187,  -187,  -187,    22,  -187,  -187,
-       9,  -187,  -187,  -187,  -187,  -187,  -187,  -187,  -187,  -187,
-    -187,  -187,  -187,  -187,  -187,  -187,  -187,  -187,  -187,  -187,
-    -187,  -187,  -187,  -187,  -187,  -187,  -187,  -187,   447,   447,
-    -187,   146,   -81,   112,  -187,   126,  -187,  -187,  -187,  -187,
-    -187,  -187,  -187,  -187,  -187,  -187,  -187,  -187,  -187,  -187,
-    -187,  -187,  -187,  -187,  -187,   -53,  -187,    28,   -10,    14,
-    -143,  -187,    -9,  -187,     5,  -187,  -187,  -187,  -187,  -187,
-    -187,  -187,  -187,  -187,   447,  -187,  -187,  -187,  -187,    -4,
-    -187,  -187,  -187,   -37,  -187,  -187,  -187,     6,  -187,  -187,
-    -187,    18,    17,     5,    21,  -166,  -187,    39,     5,  -187,
-    -187,  -187,    23,   -46,  -187,  -187,  -187,  -187,  -187,   255,
-      44,    30,  -187,    49,  -187,     5,  -187,  -187
+      11,  -175,     2,  -215,  -215,  -215,     3,  -215,    93,     9,
+    -138,  -215,    93,  -215,    66,   -40,  -215,   -93,  -215,   -87,
+     -82,  -215,  -215,   -81,  -215,  -215,   -40,    20,   210,   -40,
+    -215,  -215,   -70,  -215,   -67,  -215,  -215,    34,     6,   -13,
+      47,    -6,  -215,  -215,   -48,    66,   -45,  -215,   412,   483,
+     -39,   -60,    62,  -215,  -215,  -215,   127,   203,   -63,  -215,
+     -40,  -215,   -40,  -215,  -215,  -215,  -215,  -215,  -215,  -215,
+    -215,  -215,  -215,   -11,    75,   -24,   -22,  -215,   -18,  -215,
+    -215,   -53,  -215,  -215,  -215,    48,  -215,  -215,  -215,  -215,
+    -215,  -215,  -215,  -215,  -215,  -215,  -215,  -215,    93,  -215,
+    -215,  -215,  -215,  -215,  -215,     9,  -215,    82,   120,  -215,
+      93,  -215,  -215,  -215,  -215,  -215,  -215,  -215,  -215,  -215,
+    -215,  -215,  -215,    86,  -215,     4,   373,  -215,  -215,  -215,
+     -81,  -215,  -215,   -40,  -215,  -215,  -215,  -215,  -215,  -215,
+    -215,  -215,  -215,   210,  -215,   106,   -40,  -215,  -215,    15,
+    -215,  -215,  -215,  -215,  -215,  -215,  -215,  -215,     6,  -215,
+     105,   146,   151,   105,   -30,  -215,  -215,  -215,  -215,    -6,
+    -215,   117,   -21,  -215,    66,  -215,  -215,  -215,  -215,  -215,
+    -215,  -215,  -215,  -215,  -215,  -215,  -215,   412,  -215,   -11,
+      22,  -215,  -215,  -215,   -20,  -215,  -215,  -215,  -215,  -215,
+    -215,  -215,  -215,   483,  -215,   128,   -11,  -215,  -215,  -215,
+     129,   -60,  -215,  -215,  -215,   132,  -215,    10,  -215,  -215,
+    -215,  -215,  -215,  -215,  -215,  -215,  -215,  -215,  -215,  -215,
+       1,  -133,  -215,  -215,  -215,  -215,  -215,   134,  -215,    41,
+    -215,  -215,  -215,  -215,   -28,    42,  -215,  -215,  -215,  -215,
+      45,   148,  -215,  -215,    86,  -215,   -11,   -20,  -215,  -215,
+    -215,  -215,  -215,  -215,  -215,  -215,   150,  -215,   105,   105,
+    -215,   -39,  -215,  -215,  -215,    51,  -215,  -215,  -215,  -215,
+    -215,  -215,  -215,  -215,  -215,  -215,  -215,   -57,   178,  -215,
+    -215,  -215,   288,  -215,  -215,  -215,  -215,  -215,  -215,  -215,
+    -215,  -115,    25,    23,  -215,  -215,  -215,  -215,    61,  -215,
+    -215,    21,  -215,  -215,  -215,  -215,  -215,  -215,  -215,  -215,
+    -215,  -215,   477,  -215,  -215,   477,   105,   477,   201,   -39,
+     169,  -215,   172,  -215,  -215,  -215,  -215,  -215,  -215,  -215,
+    -215,  -215,  -215,  -215,  -215,  -215,  -215,  -215,  -215,  -215,
+    -215,  -215,   -59,  -215,    77,    36,    52,  -100,  -215,    39,
+    -215,   -11,  -215,  -215,  -215,  -215,  -215,  -215,  -215,  -215,
+    -215,  -215,  -215,  -215,  -215,  -215,  -215,  -215,  -215,  -215,
+    -215,  -215,  -215,  -215,  -215,  -215,  -215,  -215,  -215,   477,
+     477,  -215,  -215,  -215,  -215,  -215,    43,  -215,  -215,  -215,
+     -40,  -215,  -215,  -215,    55,  -215,   477,  -215,  -215,    49,
+      56,   -11,    54,  -166,  -215,    67,   -11,  -215,  -215,  -215,
+      70,    63,  -215,  -215,  -215,  -215,  -215,   124,    85,    64,
+    -215,    89,  -215,   -11,  -215,  -215
 };
 
   /* YYDEFACT[STATE-NUM] -- Default reduction number in state STATE-NUM.
@@ -1099,81 +1103,82 @@ static const yytype_int16 yypact[] =
      means the default is an error.  */
 static const yytype_uint16 yydefact[] =
 {
-       0,     0,     0,    24,    58,   239,     0,    71,     0,     0,
-     251,   242,     0,   232,     0,     0,   244,     0,   264,     0,
-       0,   245,   243,     0,   246,    25,     0,     0,     0,     0,
-     265,   240,     0,    23,     0,   247,    22,     0,     0,     0,
-       0,     0,   248,    21,     0,     0,     0,   241,     0,     0,
-       0,     0,     0,    56,    57,   301,     0,     2,     0,     7,
+       0,     0,     0,    24,    58,   241,     0,    71,     0,     0,
+     253,   244,     0,   234,     0,     0,   246,     0,   266,     0,
+       0,   247,   245,     0,   248,    25,     0,     0,     0,     0,
+     267,   242,     0,    23,     0,   249,    22,     0,     0,     0,
+       0,     0,   250,    21,     0,     0,     0,   243,     0,     0,
+       0,     0,     0,    56,    57,   303,     0,     2,     0,     7,
        0,     8,     0,     9,    10,    13,    11,    12,    14,    15,
-      16,    17,    18,     0,     0,     0,     0,   225,     0,   226,
-      19,     0,     5,    62,    63,    64,   199,   200,   201,   202,
-     205,   203,   204,   206,   207,   208,   209,   210,   194,   196,
-     197,   198,   158,   159,   160,   128,   156,     0,   249,   233,
-     193,   103,   104,   105,   106,   110,   107,   108,   109,   111,
-      29,    30,    28,     0,    26,     0,     6,    65,    66,   261,
-     234,   260,   293,    59,    61,   164,   165,   166,   167,   168,
-     169,   170,   171,   129,   162,     0,    60,    70,   291,   235,
-      67,   276,   277,   278,   279,   280,   281,   282,   273,   275,
-     136,    29,    30,   136,   136,    68,   192,   190,   191,   186,
-     188,     0,     0,   236,    98,   102,    99,   215,   216,   217,
-     218,   219,   220,   221,   222,   223,   224,   211,   213,     0,
+      16,    17,    18,     0,     0,     0,     0,   227,     0,   228,
+      19,     0,     5,    62,    63,    64,   201,   202,   203,   204,
+     207,   205,   206,   208,   209,   210,   211,   212,   196,   198,
+     199,   200,   160,   161,   162,   128,   158,     0,   251,   235,
+     195,   103,   104,   105,   106,   110,   107,   108,   109,   111,
+      29,    30,    28,     0,    26,     0,     6,    65,    66,   263,
+     236,   262,   295,    59,    61,   166,   167,   168,   169,   170,
+     171,   172,   173,   129,   164,     0,    60,    70,   293,   237,
+      67,   278,   279,   280,   281,   282,   283,   284,   275,   277,
+     136,    29,    30,   136,   136,    68,   194,   192,   193,   188,
+     190,     0,     0,   238,    98,   102,    99,   217,   218,   219,
+     220,   221,   222,   223,   224,   225,   226,   213,   215,     0,
        0,    87,    88,    89,     0,    90,    91,    97,    92,    96,
-      93,    94,    95,    80,    82,     0,     0,    86,   255,   287,
-       0,    69,   286,   288,   284,   238,     1,     0,     4,    31,
-      55,   298,   297,   227,   228,   229,   230,   272,   271,   270,
+      93,    94,    95,    80,    82,     0,     0,    86,   257,   289,
+       0,    69,   288,   290,   286,   240,     1,     0,     4,    31,
+      55,   300,   299,   229,   230,   231,   232,   274,   273,   272,
        0,     0,    79,    75,    76,    77,    78,     0,    72,     0,
-     195,   155,   157,   250,   100,     0,   182,   183,   184,   185,
-       0,     0,   180,   181,   172,   174,     0,     0,    27,   231,
-     259,   292,   161,   163,   290,   274,   132,   136,   136,   135,
-       0,   130,   187,   189,     0,   101,   212,   214,   299,   296,
-     294,   295,    85,    81,    83,    84,   237,     0,   285,   283,
-       3,    20,   266,   267,   268,   263,   269,   262,   305,   306,
-       0,     0,     0,    74,    73,   120,   119,     0,   117,   118,
-       0,   112,   115,   116,   178,   179,   177,   173,   175,   176,
-     138,   139,   140,   141,   142,   143,   144,   146,   147,   145,
-     148,   149,   150,   151,   152,   153,   154,   137,   133,   134,
-     136,   254,     0,     0,   256,     0,    37,    38,    39,    54,
-      47,    49,    48,    51,    40,    41,    42,    43,    50,    52,
-      44,    32,    33,    36,    34,     0,    35,     0,     0,     0,
-       0,   308,     0,   303,     0,   113,   127,   123,   125,   121,
-     122,   124,   126,   114,   131,   253,   252,   258,   257,     0,
-      45,    46,    53,     0,   302,   300,   307,     0,   304,   289,
-     311,     0,     0,     0,     0,     0,   313,     0,     0,   309,
-     312,   310,     0,     0,   318,   319,   320,   321,   322,     0,
-       0,     0,   314,     0,   316,     0,   315,   317
+     197,   157,   159,   252,   100,     0,   184,   185,   186,   187,
+       0,     0,   182,   183,   174,   176,     0,     0,    27,   233,
+     261,   294,   163,   165,   292,   276,     0,   138,   136,   136,
+     138,     0,   138,   189,   191,     0,   101,   214,   216,   301,
+     298,   296,   297,    85,    81,    83,    84,   239,     0,   287,
+     285,     3,    20,   268,   269,   270,   265,   271,   264,   307,
+     308,     0,     0,     0,    74,    73,   120,   119,     0,   117,
+     118,     0,   112,   115,   116,   180,   181,   179,   175,   177,
+     178,   137,   132,   138,   138,   135,   136,   130,   256,     0,
+       0,   258,     0,    37,    38,    39,    54,    47,    49,    48,
+      51,    40,    41,    42,    43,    50,    52,    44,    32,    33,
+      36,    34,     0,    35,     0,     0,     0,     0,   310,     0,
+     305,     0,   113,   127,   123,   125,   121,   122,   124,   126,
+     114,   140,   141,   142,   143,   144,   145,   146,   148,   149,
+     147,   150,   151,   152,   153,   154,   155,   156,   139,   133,
+     134,   138,   255,   254,   260,   259,     0,    45,    46,    53,
+       0,   304,   302,   309,     0,   306,   131,   291,   313,     0,
+       0,     0,     0,     0,   315,     0,     0,   311,   314,   312,
+       0,     0,   320,   321,   322,   323,   324,     0,     0,     0,
+     316,     0,   318,     0,   317,   319
 };
 
   /* YYPGOTO[NTERM-NUM].  */
 static const yytype_int16 yypgoto[] =
 {
-    -187,  -187,  -187,   -39,  -187,  -187,   -15,   -49,  -187,  -187,
-    -187,  -187,  -187,  -187,  -187,  -187,  -187,  -187,  -187,  -187,
-    -187,  -187,  -187,  -187,  -187,  -187,    38,  -187,  -187,  -187,
-    -187,   -38,  -187,  -187,  -187,  -187,  -187,  -187,  -159,  -187,
-    -187,   110,  -187,  -187,   102,  -187,  -187,  -187,    -8,  -187,
-    -187,  -187,  -187,    79,  -187,  -187,   232,   -57,  -187,  -187,
-    -187,  -187,    63,  -187,  -187,  -187,  -187,  -187,  -187,  -187,
-    -187,  -187,  -187,  -187,  -187,   122,  -187,  -187,  -187,  -187,
-    -187,  -187,    97,  -187,  -187,    45,  -187,  -187,   229,    19,
-    -186,  -187,  -187,  -187,  -187,   -36,  -187,  -187,  -110,  -187,
-    -187,  -187,  -144,  -187,  -156,  -187
+    -215,  -215,  -215,   -23,  -215,  -215,   -15,   -49,  -215,  -215,
+    -215,  -215,  -215,  -215,  -215,  -215,  -215,  -215,  -215,  -215,
+    -215,  -215,  -215,  -215,  -215,  -215,    81,  -215,  -215,  -215,
+    -215,   -38,  -215,  -215,  -215,  -215,  -215,  -215,  -154,  -214,
+    -215,  -215,   153,  -215,  -215,   142,  -215,  -215,  -215,    32,
+    -215,  -215,  -215,  -215,   121,  -215,  -215,   277,   -35,  -215,
+    -215,  -215,  -215,   107,  -215,  -215,  -215,  -215,  -215,  -215,
+    -215,  -215,  -215,  -215,  -215,  -215,   163,  -215,  -215,  -215,
+    -215,  -215,  -215,   137,  -215,  -215,    87,  -215,  -215,   267,
+      53,  -187,  -215,  -215,  -215,  -215,    -2,  -215,  -215,   -55,
+    -215,  -215,  -215,  -109,  -215,  -121,  -215
 };
 
   /* YYDEFGOTO[NTERM-NUM].  */
 static const yytype_int16 yydefgoto[] =
 {
-      -1,    56,    57,    58,    59,    60,   132,   124,   125,   291,
-     361,   362,   363,   364,   365,   366,   367,    61,    62,    63,
+      -1,    56,    57,    58,    59,    60,   132,   124,   125,   292,
+     348,   349,   350,   351,   352,   353,   354,    61,    62,    63,
       64,    85,   238,   239,    65,   203,   204,   205,   206,    66,
-     174,   119,   244,   311,   312,   313,   383,    67,   266,   337,
-     105,   106,   107,   143,   144,   145,    68,   254,   255,   256,
-     257,    69,   169,   170,   171,    70,    98,    99,   100,   101,
-      71,   187,   188,   189,    72,    73,    74,    75,    76,   109,
-     173,   386,   286,   344,   130,   131,    77,    78,   297,   230,
-      79,   158,   159,   215,   211,   212,   213,   149,   133,   282,
-     223,   207,    80,    81,   300,   301,   302,   370,   371,   402,
-     372,   405,   406,   419,   420,   421
+     174,   119,   244,   312,   313,   314,   370,    67,   267,   322,
+     388,   105,   106,   107,   143,   144,   145,    68,   254,   255,
+     256,   257,    69,   169,   170,   171,    70,    98,    99,   100,
+     101,    71,   187,   188,   189,    72,    73,    74,    75,    76,
+     109,   173,   393,   287,   331,   130,   131,    77,    78,   298,
+     230,    79,   158,   159,   215,   211,   212,   213,   149,   133,
+     283,   223,   207,    80,    81,   301,   302,   303,   357,   358,
+     410,   359,   413,   414,   427,   428,   429
 };
 
   /* YYTABLE[YYPACT[STATE-NUM]] -- What to do in state STATE-NUM.  If
@@ -1181,142 +1186,144 @@ static const yytype_int16 yydefgoto[] =
      number is the opposite.  If YYTABLE_NINF, syntax error.  */
 static const yytype_int16 yytable[] =
 {
-     123,   208,   305,   277,   269,   271,   209,   175,   368,   279,
-     306,   390,     1,   376,   307,   292,   160,    82,   217,   166,
-     285,     2,    83,   102,   164,   342,   108,     3,     4,     5,
-     404,   280,   120,    84,   121,     6,     7,   377,   227,   221,
-     409,   240,     8,     9,   126,   219,    10,   220,    11,   368,
-      12,    13,   308,   240,   177,    14,   161,   127,   162,   128,
-     228,   298,   299,   395,    15,   129,   147,   134,    16,   222,
-     318,   148,   167,   172,    17,   176,    18,   150,   293,   165,
-     294,   178,   122,   309,   229,    19,    20,   259,   214,    21,
-      22,   298,   299,   216,    23,    24,   218,   343,    25,    26,
-     179,   224,   225,   180,   226,   231,   111,    27,   338,   339,
-     112,   242,   243,   258,   103,   263,   264,   378,   261,   104,
-      28,    29,    30,   267,   379,   391,   122,    31,   168,   268,
-     270,   261,   273,   274,   284,   278,   275,    32,   287,   289,
-     163,   281,    33,   380,    34,   210,    35,    36,   310,   303,
-     122,   414,   415,   416,   417,   418,    37,    38,    39,    40,
-      41,    42,    43,    44,   290,   316,    45,   304,    46,   113,
-     314,   315,   345,   295,   373,   385,   388,    47,   181,   341,
-     374,   384,    48,    49,    50,   375,    51,    52,   398,   346,
-     389,   392,   393,    53,    54,   381,   397,   296,   382,   347,
-     399,   401,    -6,    55,     2,   394,   182,   183,   184,   185,
-       3,     4,     5,   404,   186,   241,   114,   407,     6,     7,
-     403,   340,   412,   408,   115,     8,     9,   116,   413,    10,
-     411,    11,   425,    12,    13,   424,   348,   349,    14,   427,
-     426,   283,   151,   152,   110,   262,   317,    15,   272,   117,
-     276,    16,   260,   350,   118,   265,   288,    17,   146,    18,
-     396,   410,   153,   423,   369,     0,     0,     0,    19,    20,
-     245,   232,    21,    22,     0,   351,   319,    23,    24,     0,
-       0,    25,    26,   352,     0,   353,     0,     0,     0,     0,
-      27,     0,     0,   387,     0,   233,     0,     0,   234,     0,
-     354,     0,   154,    28,    29,    30,     0,     0,     0,     0,
-      31,     0,     0,   246,   247,   248,   249,     0,   355,   356,
-      32,     0,     0,     0,     0,    33,     0,    34,     0,    35,
-      36,     0,   155,     0,     0,     0,     0,     0,     0,    37,
+     123,   208,   278,   306,   209,   397,   293,   175,   329,   270,
+     272,   307,     1,   151,   152,   308,   160,    82,   227,   286,
+     102,     2,   280,   221,   164,   363,   108,     3,     4,     5,
+     120,   412,   121,   153,   217,     6,     7,   355,   266,   166,
+     228,   417,     8,     9,   281,   219,    10,   220,    11,   364,
+      12,    13,   355,   222,   309,    14,   325,   161,   327,   162,
+     271,   299,   300,   240,    15,   229,    83,    84,    16,   319,
+     294,   126,   295,   154,    17,   240,    18,   127,   232,   299,
+     300,   330,   128,   129,   134,   310,    19,    20,   111,   245,
+      21,    22,   112,   167,   147,    23,    24,   148,   150,    25,
+      26,    86,   233,   259,   155,   234,    87,   402,    27,   389,
+     390,   165,   103,    88,   323,   324,   172,   104,   261,   176,
+     398,    28,    29,    30,   122,   122,   214,   216,    31,   218,
+     365,   261,   246,   247,   248,   249,   276,   366,    32,   224,
+     225,   163,   226,    33,   210,    34,   242,    35,    36,   168,
+     311,   122,   113,   231,   243,   282,   367,    37,    38,    39,
+      40,    41,    42,    43,    44,   296,    89,    45,   258,    46,
+     263,   156,   391,   266,   405,   268,   157,   406,    47,   264,
+     269,   274,   275,    48,    49,    50,   279,    51,    52,   297,
+     235,   236,   285,   288,    53,    54,   290,   237,   304,   114,
+      90,    91,   291,    -6,    55,   305,   315,   115,   368,   316,
+     116,   369,   317,     2,   321,   328,   332,   360,    92,     3,
+       4,     5,   326,    93,   415,   362,   361,     6,     7,   420,
+     392,   250,   117,   395,     8,     9,   396,   118,    10,   400,
+      11,   399,    12,    13,   401,   404,   435,    14,   407,   251,
+      94,   409,   411,   412,   252,   253,    15,   416,   241,   419,
+      16,   422,   423,   424,   425,   426,    17,   433,    18,   135,
+     136,   137,   138,    95,    96,    97,   421,   432,    19,    20,
+     394,   434,    21,    22,   284,   262,   318,    23,    24,   110,
+     273,    25,    26,   260,   277,   265,   146,   333,   289,   356,
+      27,   139,   403,   140,   418,   141,   431,   334,     0,     0,
+     320,   142,     0,    28,    29,    30,     0,     0,     0,     0,
+      31,     0,   422,   423,   424,   425,   426,     0,     0,     0,
+      32,   430,     0,     0,     0,    33,     0,    34,     0,    35,
+      36,     0,     0,     0,   335,   336,     0,     0,     0,    37,
       38,    39,    40,    41,    42,    43,    44,     0,     0,    45,
-       0,    46,     0,     0,   357,     0,   358,     0,     0,     0,
-      47,     0,     0,     0,   359,    48,    49,    50,   360,    51,
-      52,     0,     0,     2,     0,     0,    53,    54,   400,     3,
-       4,     5,   235,   236,     0,    -6,    55,     6,     7,   237,
-     135,   136,   137,   138,     8,     9,     0,     0,    10,   156,
-      11,     0,    12,    13,   157,    86,     0,    14,     0,     0,
-      87,   250,     0,     0,     0,     0,    15,    88,     0,     0,
-      16,   139,     0,   140,     0,   141,    17,     0,    18,   251,
-       0,   142,     0,     0,   252,   253,     0,    19,    20,     0,
-       0,    21,    22,     0,     0,     0,    23,    24,     0,     0,
-      25,    26,   414,   415,   416,   417,   418,     0,     0,    27,
-       0,   422,     0,     0,     0,     0,     0,     0,     0,    89,
-       0,     0,    28,    29,    30,     0,     0,     0,     0,    31,
-       0,     0,     0,     0,     0,     0,     0,     0,   320,    32,
-       0,     0,     0,     0,    33,     0,    34,   321,    35,    36,
-       0,     0,     0,    90,    91,   322,     0,     0,    37,    38,
-      39,    40,    41,    42,    43,    44,     0,     0,    45,     0,
-      46,    92,     0,   323,   324,     0,    93,   325,     0,    47,
-       0,     0,     0,   326,    48,    49,    50,     0,    51,    52,
-     190,     0,   191,   192,     0,    53,    54,     0,     0,   193,
-       0,   194,     0,    94,     0,    55,     0,     0,     0,     0,
-     327,   328,     0,     0,   329,   330,   331,     0,   332,   333,
-     334,     0,   335,     0,     0,     0,    95,    96,    97,   195,
+       0,    46,   337,     0,     0,     0,     0,     0,     0,     0,
+      47,     0,     0,     0,     0,    48,    49,    50,     0,    51,
+      52,     0,     0,     2,   338,   408,    53,    54,     0,     3,
+       4,     5,   339,     0,   340,    -6,    55,     6,     7,     0,
+       0,     0,     0,     0,     8,     9,     0,     0,    10,   341,
+      11,     0,    12,    13,     0,     0,     0,    14,   177,     0,
+       0,     0,     0,     0,     0,     0,    15,   342,   343,     0,
+      16,     0,     0,     0,     0,     0,    17,     0,    18,     0,
+       0,     0,     0,     0,     0,   178,     0,     0,    19,    20,
+       0,     0,    21,    22,     0,     0,     0,    23,    24,     0,
+       0,    25,    26,   344,   179,   345,     0,   180,     0,     0,
+      27,     0,     0,   346,     0,     0,     0,   347,     0,     0,
+       0,     0,     0,    28,    29,    30,     0,     0,     0,     0,
+      31,     0,     0,     0,     0,   190,     0,   191,   192,     0,
+      32,     0,     0,     0,   193,    33,   194,    34,     0,    35,
+      36,     0,     0,     0,     0,     0,     0,     0,   371,    37,
+      38,    39,    40,    41,    42,    43,    44,   372,     0,    45,
+       0,    46,     0,     0,   195,   373,     0,     0,     0,     0,
+      47,     0,     0,   181,     0,    48,    49,    50,     0,    51,
+      52,     0,     0,     0,   374,   375,    53,    54,   376,     0,
+       0,     0,     0,     0,   377,     0,    55,     0,     0,     0,
+       0,   182,   183,   184,   185,   196,     0,   197,     0,   186,
+       0,     0,     0,   198,     0,   199,     0,     0,   200,     0,
+       0,   378,   379,     0,     0,   380,   381,   382,     0,   383,
+     384,   385,     0,   386,     0,     0,     0,     0,     0,     0,
+       0,   201,   202,     0,     0,     0,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,   196,
-       0,   197,     0,     0,     0,     0,     0,   198,     0,   199,
-       0,   336,   200,     0,     0,     0,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,   201,   202
+       0,     0,   387
 };
 
 static const yytype_int16 yycheck[] =
 {
-      15,    50,    31,   189,   163,   164,    64,    45,   151,    42,
-      39,    64,     1,     4,    43,     5,    29,   191,    57,    45,
-     206,    10,    64,    11,    39,    65,   163,    16,    17,    18,
-     196,    64,    69,    64,    71,    24,    25,    28,    36,    34,
-     206,    98,    31,    32,   163,    60,    35,    62,    37,   151,
-      39,    40,    81,   110,     6,    44,    69,   163,    71,   163,
-      58,   193,   194,   206,    53,   163,   163,    64,    57,    64,
-     256,   163,    98,   163,    63,   163,    65,    64,    68,    64,
-      70,    33,   163,   112,    82,    74,    75,   126,    64,    78,
-      79,   193,   194,     0,    83,    84,   191,   137,    87,    88,
-      52,    64,   163,    55,   163,   205,    22,    96,   267,   268,
-      26,    64,    34,   163,   102,    64,   163,   108,   133,   107,
-     109,   110,   111,    29,   115,   178,   163,   116,   154,    29,
-      89,   146,    64,   202,    64,   163,   174,   126,    64,    64,
-     153,   174,   131,   134,   133,   203,   135,   136,   177,    64,
-     163,   197,   198,   199,   200,   201,   145,   146,   147,   148,
-     149,   150,   151,   152,   191,    64,   155,   163,   157,    85,
-     163,   163,    38,   163,   191,    29,    64,   166,   130,   163,
-     202,   340,   171,   172,   173,   163,   175,   176,   374,     9,
-      64,   163,   202,   182,   183,   186,   205,   187,   189,    19,
-     204,   195,   191,   192,    10,   191,   158,   159,   160,   161,
-      16,    17,    18,   196,   166,   105,   132,   403,    24,    25,
-     202,   270,   408,   202,   140,    31,    32,   143,   205,    35,
-     191,    37,   202,    39,    40,   191,    56,    57,    44,   425,
-     191,   203,     7,     8,    12,   143,   254,    53,   169,   165,
-     187,    57,   130,    73,   170,   158,   211,    63,    29,    65,
-     370,   405,    27,   419,   300,    -1,    -1,    -1,    74,    75,
-       3,    30,    78,    79,    -1,    95,   257,    83,    84,    -1,
-      -1,    87,    88,   103,    -1,   105,    -1,    -1,    -1,    -1,
-      96,    -1,    -1,   342,    -1,    54,    -1,    -1,    57,    -1,
-     120,    -1,    67,   109,   110,   111,    -1,    -1,    -1,    -1,
-     116,    -1,    -1,    46,    47,    48,    49,    -1,   138,   139,
-     126,    -1,    -1,    -1,    -1,   131,    -1,   133,    -1,   135,
-     136,    -1,    97,    -1,    -1,    -1,    -1,    -1,    -1,   145,
-     146,   147,   148,   149,   150,   151,   152,    -1,    -1,   155,
-      -1,   157,    -1,    -1,   174,    -1,   176,    -1,    -1,    -1,
-     166,    -1,    -1,    -1,   184,   171,   172,   173,   188,   175,
-     176,    -1,    -1,    10,    -1,    -1,   182,   183,   393,    16,
-      17,    18,   141,   142,    -1,   191,   192,    24,    25,   148,
-      59,    60,    61,    62,    31,    32,    -1,    -1,    35,   164,
-      37,    -1,    39,    40,   169,     8,    -1,    44,    -1,    -1,
-      13,   144,    -1,    -1,    -1,    -1,    53,    20,    -1,    -1,
-      57,    90,    -1,    92,    -1,    94,    63,    -1,    65,   162,
-      -1,   100,    -1,    -1,   167,   168,    -1,    74,    75,    -1,
-      -1,    78,    79,    -1,    -1,    -1,    83,    84,    -1,    -1,
-      87,    88,   197,   198,   199,   200,   201,    -1,    -1,    96,
-      -1,   206,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    72,
-      -1,    -1,   109,   110,   111,    -1,    -1,    -1,    -1,   116,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    41,   126,
-      -1,    -1,    -1,    -1,   131,    -1,   133,    50,   135,   136,
-      -1,    -1,    -1,   106,   107,    58,    -1,    -1,   145,   146,
-     147,   148,   149,   150,   151,   152,    -1,    -1,   155,    -1,
-     157,   124,    -1,    76,    77,    -1,   129,    80,    -1,   166,
-      -1,    -1,    -1,    86,   171,   172,   173,    -1,   175,   176,
-      12,    -1,    14,    15,    -1,   182,   183,    -1,    -1,    21,
-      -1,    23,    -1,   156,    -1,   192,    -1,    -1,    -1,    -1,
-     113,   114,    -1,    -1,   117,   118,   119,    -1,   121,   122,
-     123,    -1,   125,    -1,    -1,    -1,   179,   180,   181,    51,
+      15,    50,   189,    31,    64,    64,     5,    45,    65,   163,
+     164,    39,     1,     7,     8,    43,    29,   192,    36,   206,
+      11,    10,    42,    34,    39,     4,   164,    16,    17,    18,
+      70,   197,    72,    27,    57,    24,    25,   152,    68,    45,
+      58,   207,    31,    32,    64,    60,    35,    62,    37,    28,
+      39,    40,   152,    64,    82,    44,   270,    70,   272,    72,
+      90,   194,   195,    98,    53,    83,    64,    64,    57,   256,
+      69,   164,    71,    67,    63,   110,    65,   164,    30,   194,
+     195,   138,   164,   164,    64,   113,    75,    76,    22,     3,
+      79,    80,    26,    99,   164,    84,    85,   164,    64,    88,
+      89,     8,    54,   126,    98,    57,    13,   207,    97,   323,
+     324,    64,   103,    20,   268,   269,   164,   108,   133,   164,
+     179,   110,   111,   112,   164,   164,    64,     0,   117,   192,
+     109,   146,    46,    47,    48,    49,   174,   116,   127,    64,
+     164,   154,   164,   132,   204,   134,    64,   136,   137,   155,
+     178,   164,    86,   206,    34,   175,   135,   146,   147,   148,
+     149,   150,   151,   152,   153,   164,    73,   156,   164,   158,
+      64,   165,   326,    68,   361,    29,   170,   391,   167,   164,
+      29,    64,   203,   172,   173,   174,   164,   176,   177,   188,
+     142,   143,    64,    64,   183,   184,    64,   149,    64,   133,
+     107,   108,   192,   192,   193,   164,   164,   141,   187,   164,
+     144,   190,    64,    10,    64,   164,    38,   192,   125,    16,
+      17,    18,   271,   130,   411,   164,   203,    24,    25,   416,
+      29,   145,   166,    64,    31,    32,    64,   171,    35,   203,
+      37,   164,    39,    40,   192,   206,   433,    44,   205,   163,
+     157,   196,   203,   197,   168,   169,    53,   203,   105,   192,
+      57,   198,   199,   200,   201,   202,    63,   203,    65,    59,
+      60,    61,    62,   180,   181,   182,   206,   192,    75,    76,
+     329,   192,    79,    80,   203,   143,   254,    84,    85,    12,
+     169,    88,    89,   130,   187,   158,    29,     9,   211,   301,
+      97,    91,   357,    93,   413,    95,   427,    19,    -1,    -1,
+     257,   101,    -1,   110,   111,   112,    -1,    -1,    -1,    -1,
+     117,    -1,   198,   199,   200,   201,   202,    -1,    -1,    -1,
+     127,   207,    -1,    -1,    -1,   132,    -1,   134,    -1,   136,
+     137,    -1,    -1,    -1,    56,    57,    -1,    -1,    -1,   146,
+     147,   148,   149,   150,   151,   152,   153,    -1,    -1,   156,
+      -1,   158,    74,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+     167,    -1,    -1,    -1,    -1,   172,   173,   174,    -1,   176,
+     177,    -1,    -1,    10,    96,   400,   183,   184,    -1,    16,
+      17,    18,   104,    -1,   106,   192,   193,    24,    25,    -1,
+      -1,    -1,    -1,    -1,    31,    32,    -1,    -1,    35,   121,
+      37,    -1,    39,    40,    -1,    -1,    -1,    44,     6,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    53,   139,   140,    -1,
+      57,    -1,    -1,    -1,    -1,    -1,    63,    -1,    65,    -1,
+      -1,    -1,    -1,    -1,    -1,    33,    -1,    -1,    75,    76,
+      -1,    -1,    79,    80,    -1,    -1,    -1,    84,    85,    -1,
+      -1,    88,    89,   175,    52,   177,    -1,    55,    -1,    -1,
+      97,    -1,    -1,   185,    -1,    -1,    -1,   189,    -1,    -1,
+      -1,    -1,    -1,   110,   111,   112,    -1,    -1,    -1,    -1,
+     117,    -1,    -1,    -1,    -1,    12,    -1,    14,    15,    -1,
+     127,    -1,    -1,    -1,    21,   132,    23,   134,    -1,   136,
+     137,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    41,   146,
+     147,   148,   149,   150,   151,   152,   153,    50,    -1,   156,
+      -1,   158,    -1,    -1,    51,    58,    -1,    -1,    -1,    -1,
+     167,    -1,    -1,   131,    -1,   172,   173,   174,    -1,   176,
+     177,    -1,    -1,    -1,    77,    78,   183,   184,    81,    -1,
+      -1,    -1,    -1,    -1,    87,    -1,   193,    -1,    -1,    -1,
+      -1,   159,   160,   161,   162,    92,    -1,    94,    -1,   167,
+      -1,    -1,    -1,   100,    -1,   102,    -1,    -1,   105,    -1,
+      -1,   114,   115,    -1,    -1,   118,   119,   120,    -1,   122,
+     123,   124,    -1,   126,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,   128,   129,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    91,
-      -1,    93,    -1,    -1,    -1,    -1,    -1,    99,    -1,   101,
-      -1,   184,   104,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,   127,   128
+      -1,    -1,   185
 };
 
   /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
@@ -1324,86 +1331,87 @@ static const yytype_int16 yycheck[] =
 static const yytype_uint16 yystos[] =
 {
        0,     1,    10,    16,    17,    18,    24,    25,    31,    32,
-      35,    37,    39,    40,    44,    53,    57,    63,    65,    74,
-      75,    78,    79,    83,    84,    87,    88,    96,   109,   110,
-     111,   116,   126,   131,   133,   135,   136,   145,   146,   147,
-     148,   149,   150,   151,   152,   155,   157,   166,   171,   172,
-     173,   175,   176,   182,   183,   192,   208,   209,   210,   211,
-     212,   224,   225,   226,   227,   231,   236,   244,   253,   258,
-     262,   267,   271,   272,   273,   274,   275,   283,   284,   287,
-     299,   300,   191,    64,    64,   228,     8,    13,    20,    72,
-     106,   107,   124,   129,   156,   179,   180,   181,   263,   264,
-     265,   266,    11,   102,   107,   247,   248,   249,   163,   276,
-     263,    22,    26,    85,   132,   140,   143,   165,   170,   238,
-      69,    71,   163,   213,   214,   215,   163,   163,   163,   163,
-     281,   282,   213,   295,    64,    59,    60,    61,    62,    90,
-      92,    94,   100,   250,   251,   252,   295,   163,   163,   294,
-      64,     7,     8,    27,    67,    97,   164,   169,   288,   289,
-      29,    69,    71,   153,   213,    64,    45,    98,   154,   259,
-     260,   261,   163,   277,   237,   238,   163,     6,    33,    52,
-      55,   130,   158,   159,   160,   161,   166,   268,   269,   270,
-      12,    14,    15,    21,    23,    51,    91,    93,    99,   101,
-     104,   127,   128,   232,   233,   234,   235,   298,   214,    64,
-     203,   291,   292,   293,    64,   290,     0,   210,   191,   213,
-     213,    34,    64,   297,    64,   163,   163,    36,    58,    82,
-     286,   205,    30,    54,    57,   141,   142,   148,   229,   230,
-     264,   248,    64,    34,   239,     3,    46,    47,    48,    49,
-     144,   162,   167,   168,   254,   255,   256,   257,   163,   210,
-     282,   213,   251,    64,   163,   289,   245,    29,    29,   245,
-      89,   245,   260,    64,   202,   238,   269,   297,   163,    42,
-      64,   174,   296,   233,    64,   297,   279,    64,   292,    64,
-     191,   216,     5,    68,    70,   163,   187,   285,   193,   194,
-     301,   302,   303,    64,   163,    31,    39,    43,    81,   112,
-     177,   240,   241,   242,   163,   163,    64,   255,   297,   296,
-      41,    50,    58,    76,    77,    80,    86,   113,   114,   117,
-     118,   119,   121,   122,   123,   125,   184,   246,   245,   245,
-     214,   163,    65,   137,   280,    38,     9,    19,    56,    57,
-      73,    95,   103,   105,   120,   138,   139,   174,   176,   184,
-     188,   217,   218,   219,   220,   221,   222,   223,   151,   302,
-     304,   305,   307,   191,   202,   163,     4,    28,   108,   115,
-     134,   186,   189,   243,   245,    29,   278,   214,    64,    64,
-      64,   178,   163,   202,   191,   206,   305,   205,   297,   204,
-     213,   195,   306,   202,   196,   308,   309,   297,   202,   206,
-     309,   191,   297,   205,   197,   198,   199,   200,   201,   310,
-     311,   312,   206,   311,   191,   202,   191,   297
+      35,    37,    39,    40,    44,    53,    57,    63,    65,    75,
+      76,    79,    80,    84,    85,    88,    89,    97,   110,   111,
+     112,   117,   127,   132,   134,   136,   137,   146,   147,   148,
+     149,   150,   151,   152,   153,   156,   158,   167,   172,   173,
+     174,   176,   177,   183,   184,   193,   209,   210,   211,   212,
+     213,   225,   226,   227,   228,   232,   237,   245,   255,   260,
+     264,   269,   273,   274,   275,   276,   277,   285,   286,   289,
+     301,   302,   192,    64,    64,   229,     8,    13,    20,    73,
+     107,   108,   125,   130,   157,   180,   181,   182,   265,   266,
+     267,   268,    11,   103,   108,   249,   250,   251,   164,   278,
+     265,    22,    26,    86,   133,   141,   144,   166,   171,   239,
+      70,    72,   164,   214,   215,   216,   164,   164,   164,   164,
+     283,   284,   214,   297,    64,    59,    60,    61,    62,    91,
+      93,    95,   101,   252,   253,   254,   297,   164,   164,   296,
+      64,     7,     8,    27,    67,    98,   165,   170,   290,   291,
+      29,    70,    72,   154,   214,    64,    45,    99,   155,   261,
+     262,   263,   164,   279,   238,   239,   164,     6,    33,    52,
+      55,   131,   159,   160,   161,   162,   167,   270,   271,   272,
+      12,    14,    15,    21,    23,    51,    92,    94,   100,   102,
+     105,   128,   129,   233,   234,   235,   236,   300,   215,    64,
+     204,   293,   294,   295,    64,   292,     0,   211,   192,   214,
+     214,    34,    64,   299,    64,   164,   164,    36,    58,    83,
+     288,   206,    30,    54,    57,   142,   143,   149,   230,   231,
+     266,   250,    64,    34,   240,     3,    46,    47,    48,    49,
+     145,   163,   168,   169,   256,   257,   258,   259,   164,   211,
+     284,   214,   253,    64,   164,   291,    68,   246,    29,    29,
+     246,    90,   246,   262,    64,   203,   239,   271,   299,   164,
+      42,    64,   175,   298,   234,    64,   299,   281,    64,   294,
+      64,   192,   217,     5,    69,    71,   164,   188,   287,   194,
+     195,   303,   304,   305,    64,   164,    31,    39,    43,    82,
+     113,   178,   241,   242,   243,   164,   164,    64,   257,   299,
+     298,    64,   247,   246,   246,   247,   215,   247,   164,    65,
+     138,   282,    38,     9,    19,    56,    57,    74,    96,   104,
+     106,   121,   139,   140,   175,   177,   185,   189,   218,   219,
+     220,   221,   222,   223,   224,   152,   304,   306,   307,   309,
+     192,   203,   164,     4,    28,   109,   116,   135,   187,   190,
+     244,    41,    50,    58,    77,    78,    81,    87,   114,   115,
+     118,   119,   120,   122,   123,   124,   126,   185,   248,   247,
+     247,   246,    29,   280,   215,    64,    64,    64,   179,   164,
+     203,   192,   207,   307,   206,   299,   247,   205,   214,   196,
+     308,   203,   197,   310,   311,   299,   203,   207,   311,   192,
+     299,   206,   198,   199,   200,   201,   202,   312,   313,   314,
+     207,   313,   192,   203,   192,   299
 };
 
   /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives.  */
 static const yytype_uint16 yyr1[] =
 {
-       0,   207,   208,   209,   209,   209,   210,   210,   210,   210,
-     210,   210,   210,   210,   210,   210,   210,   210,   210,   210,
-     211,   212,   212,   212,   212,   212,   213,   213,   214,   215,
-     215,   216,   216,   217,   217,   217,   218,   219,   219,   219,
-     219,   219,   219,   219,   219,   220,   220,   221,   221,   221,
-     221,   221,   221,   222,   223,   224,   225,   225,   226,   226,
-     226,   226,   227,   227,   227,   227,   227,   227,   227,   227,
-     227,   228,   228,   229,   229,   230,   230,   230,   230,   230,
-     231,   232,   232,   233,   233,   233,   233,   234,   234,   234,
-     234,   234,   234,   234,   234,   234,   235,   235,   236,   236,
-     236,   237,   237,   238,   238,   238,   238,   238,   238,   238,
-     238,   239,   239,   240,   240,   240,   240,   241,   241,   242,
-     242,   243,   243,   243,   243,   243,   243,   243,   244,   244,
-     244,   244,   244,   244,   244,   244,   245,   245,   246,   246,
-     246,   246,   246,   246,   246,   246,   246,   246,   246,   246,
-     246,   246,   246,   246,   246,   247,   247,   248,   249,   249,
-     249,   250,   250,   251,   252,   252,   252,   252,   252,   252,
-     252,   252,   253,   254,   254,   255,   255,   255,   255,   255,
-     256,   256,   257,   257,   257,   257,   258,   259,   259,   260,
-     261,   261,   261,   262,   262,   263,   263,   264,   264,   265,
-     265,   265,   265,   265,   265,   266,   266,   266,   266,   266,
-     266,   267,   268,   268,   269,   270,   270,   270,   270,   270,
-     270,   270,   270,   270,   270,   271,   271,   271,   271,   271,
-     271,   271,   271,   271,   271,   271,   271,   271,   271,   272,
-     272,   272,   273,   273,   274,   274,   275,   275,   275,   276,
-     276,   276,   277,   278,   278,   279,   279,   280,   280,   281,
-     281,   282,   283,   283,   284,   284,   285,   285,   285,   285,
-     286,   286,   286,   287,   288,   288,   289,   289,   289,   289,
-     289,   289,   289,   290,   290,   291,   291,   292,   292,   293,
-     294,   294,   295,   295,   296,   296,   296,   297,   297,   298,
-     299,   300,   301,   301,   302,   303,   303,   304,   304,   305,
-     306,   307,   308,   308,   309,   310,   310,   311,   312,   312,
-     312,   312,   312
+       0,   208,   209,   210,   210,   210,   211,   211,   211,   211,
+     211,   211,   211,   211,   211,   211,   211,   211,   211,   211,
+     212,   213,   213,   213,   213,   213,   214,   214,   215,   216,
+     216,   217,   217,   218,   218,   218,   219,   220,   220,   220,
+     220,   220,   220,   220,   220,   221,   221,   222,   222,   222,
+     222,   222,   222,   223,   224,   225,   226,   226,   227,   227,
+     227,   227,   228,   228,   228,   228,   228,   228,   228,   228,
+     228,   229,   229,   230,   230,   231,   231,   231,   231,   231,
+     232,   233,   233,   234,   234,   234,   234,   235,   235,   235,
+     235,   235,   235,   235,   235,   235,   236,   236,   237,   237,
+     237,   238,   238,   239,   239,   239,   239,   239,   239,   239,
+     239,   240,   240,   241,   241,   241,   241,   242,   242,   243,
+     243,   244,   244,   244,   244,   244,   244,   244,   245,   245,
+     245,   245,   245,   245,   245,   245,   246,   246,   247,   247,
+     248,   248,   248,   248,   248,   248,   248,   248,   248,   248,
+     248,   248,   248,   248,   248,   248,   248,   249,   249,   250,
+     251,   251,   251,   252,   252,   253,   254,   254,   254,   254,
+     254,   254,   254,   254,   255,   256,   256,   257,   257,   257,
+     257,   257,   258,   258,   259,   259,   259,   259,   260,   261,
+     261,   262,   263,   263,   263,   264,   264,   265,   265,   266,
+     266,   267,   267,   267,   267,   267,   267,   268,   268,   268,
+     268,   268,   268,   269,   270,   270,   271,   272,   272,   272,
+     272,   272,   272,   272,   272,   272,   272,   273,   273,   273,
+     273,   273,   273,   273,   273,   273,   273,   273,   273,   273,
+     273,   274,   274,   274,   275,   275,   276,   276,   277,   277,
+     277,   278,   278,   278,   279,   280,   280,   281,   281,   282,
+     282,   283,   283,   284,   285,   285,   286,   286,   287,   287,
+     287,   287,   288,   288,   288,   289,   290,   290,   291,   291,
+     291,   291,   291,   291,   291,   292,   292,   293,   293,   294,
+     294,   295,   296,   296,   297,   297,   298,   298,   298,   299,
+     299,   300,   301,   302,   303,   303,   304,   305,   305,   306,
+     306,   307,   308,   309,   310,   310,   311,   312,   312,   313,
+     314,   314,   314,   314,   314
 };
 
   /* YYR2[YYN] -- Number of symbols on the right hand side of rule YYN.  */
@@ -1422,26 +1430,26 @@ static const yytype_uint8 yyr2[] =
        3,     2,     1,     1,     1,     1,     1,     1,     1,     1,
        1,     0,     2,     2,     2,     1,     1,     1,     1,     1,
        1,     1,     1,     1,     1,     1,     1,     1,     2,     2,
-       3,     5,     3,     4,     4,     3,     0,     2,     1,     1,
+       4,     6,     4,     5,     5,     4,     0,     2,     0,     2,
        1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
-       1,     1,     1,     1,     1,     2,     1,     2,     1,     1,
-       1,     2,     1,     2,     1,     1,     1,     1,     1,     1,
-       1,     1,     3,     2,     1,     2,     2,     2,     2,     2,
-       1,     1,     1,     1,     1,     1,     2,     2,     1,     2,
-       1,     1,     1,     2,     2,     2,     1,     1,     1,     1,
-       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
-       1,     2,     2,     1,     2,     1,     1,     1,     1,     1,
-       1,     1,     1,     1,     1,     1,     1,     2,     2,     2,
-       2,     3,     1,     2,     2,     2,     2,     3,     2,     1,
+       1,     1,     1,     1,     1,     1,     1,     2,     1,     2,
+       1,     1,     1,     2,     1,     2,     1,     1,     1,     1,
+       1,     1,     1,     1,     3,     2,     1,     2,     2,     2,
+       2,     2,     1,     1,     1,     1,     1,     1,     2,     2,
+       1,     2,     1,     1,     1,     2,     2,     2,     1,     1,
        1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
-       2,     0,     4,     1,     0,     0,     2,     2,     2,     2,
-       1,     1,     3,     3,     1,     1,     1,     1,     1,     1,
-       1,     1,     1,     2,     2,     1,     1,     1,     1,     1,
-       1,     1,     1,     2,     1,     2,     1,     1,     1,     5,
-       2,     1,     2,     1,     1,     1,     1,     1,     1,     2,
-       5,     1,     3,     2,     3,     1,     1,     2,     1,     5,
-       4,     3,     2,     1,     6,     3,     2,     3,     1,     1,
-       1,     1,     1
+       1,     1,     1,     2,     2,     1,     2,     1,     1,     1,
+       1,     1,     1,     1,     1,     1,     1,     1,     1,     2,
+       2,     2,     2,     3,     1,     2,     2,     2,     2,     3,
+       2,     1,     1,     1,     1,     1,     1,     1,     1,     1,
+       1,     1,     2,     0,     4,     1,     0,     0,     2,     2,
+       2,     2,     1,     1,     3,     3,     1,     1,     1,     1,
+       1,     1,     1,     1,     1,     2,     2,     1,     1,     1,
+       1,     1,     1,     1,     1,     2,     1,     2,     1,     1,
+       1,     5,     2,     1,     2,     1,     1,     1,     1,     1,
+       1,     2,     5,     1,     3,     2,     3,     1,     1,     2,
+       1,     5,     4,     3,     2,     1,     6,     3,     2,     3,
+       1,     1,     1,     1,     1
 };
 
 
@@ -2118,7 +2126,7 @@ yyreduce:
   switch (yyn)
     {
         case 5:
-#line 382 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
+#line 384 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
     {
                        /* I will need to incorporate much more fine grained
                         * error messages. The following should suffice for
@@ -2131,85 +2139,85 @@ yyreduce:
                                ip_ctx->errpos.nline,
                                ip_ctx->errpos.ncol);
                }
-#line 2135 "../../ntpd/ntp_parser.c" /* yacc.c:1646  */
+#line 2143 "ntp_parser.c" /* yacc.c:1646  */
     break;
 
   case 20:
-#line 418 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
+#line 420 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
     {
                        peer_node *my_node;
 
                        my_node = create_peer_node((yyvsp[-2].Integer), (yyvsp[-1].Address_node), (yyvsp[0].Attr_val_fifo));
                        APPEND_G_FIFO(cfgt.peers, my_node);
                }
-#line 2146 "../../ntpd/ntp_parser.c" /* yacc.c:1646  */
+#line 2154 "ntp_parser.c" /* yacc.c:1646  */
     break;
 
   case 27:
-#line 437 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
+#line 439 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
     { (yyval.Address_node) = create_address_node((yyvsp[0].String), (yyvsp[-1].Integer)); }
-#line 2152 "../../ntpd/ntp_parser.c" /* yacc.c:1646  */
+#line 2160 "ntp_parser.c" /* yacc.c:1646  */
     break;
 
   case 28:
-#line 442 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
+#line 444 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
     { (yyval.Address_node) = create_address_node((yyvsp[0].String), AF_UNSPEC); }
-#line 2158 "../../ntpd/ntp_parser.c" /* yacc.c:1646  */
+#line 2166 "ntp_parser.c" /* yacc.c:1646  */
     break;
 
   case 29:
-#line 447 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
+#line 449 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
     { (yyval.Integer) = AF_INET; }
-#line 2164 "../../ntpd/ntp_parser.c" /* yacc.c:1646  */
+#line 2172 "ntp_parser.c" /* yacc.c:1646  */
     break;
 
   case 30:
-#line 449 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
+#line 451 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
     { (yyval.Integer) = AF_INET6; }
-#line 2170 "../../ntpd/ntp_parser.c" /* yacc.c:1646  */
+#line 2178 "ntp_parser.c" /* yacc.c:1646  */
     break;
 
   case 31:
-#line 454 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
+#line 456 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
     { (yyval.Attr_val_fifo) = NULL; }
-#line 2176 "../../ntpd/ntp_parser.c" /* yacc.c:1646  */
+#line 2184 "ntp_parser.c" /* yacc.c:1646  */
     break;
 
   case 32:
-#line 456 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
+#line 458 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
     {
                        (yyval.Attr_val_fifo) = (yyvsp[-1].Attr_val_fifo);
                        APPEND_G_FIFO((yyval.Attr_val_fifo), (yyvsp[0].Attr_val));
                }
-#line 2185 "../../ntpd/ntp_parser.c" /* yacc.c:1646  */
+#line 2193 "ntp_parser.c" /* yacc.c:1646  */
     break;
 
   case 36:
-#line 470 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
+#line 472 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
     { (yyval.Attr_val) = create_attr_ival(T_Flag, (yyvsp[0].Integer)); }
-#line 2191 "../../ntpd/ntp_parser.c" /* yacc.c:1646  */
+#line 2199 "ntp_parser.c" /* yacc.c:1646  */
     break;
 
   case 45:
-#line 486 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
+#line 488 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
     { (yyval.Attr_val) = create_attr_ival((yyvsp[-1].Integer), (yyvsp[0].Integer)); }
-#line 2197 "../../ntpd/ntp_parser.c" /* yacc.c:1646  */
+#line 2205 "ntp_parser.c" /* yacc.c:1646  */
     break;
 
   case 46:
-#line 488 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
+#line 490 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
     { (yyval.Attr_val) = create_attr_uval((yyvsp[-1].Integer), (yyvsp[0].Integer)); }
-#line 2203 "../../ntpd/ntp_parser.c" /* yacc.c:1646  */
+#line 2211 "ntp_parser.c" /* yacc.c:1646  */
     break;
 
   case 53:
-#line 502 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
+#line 504 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
     { (yyval.Attr_val) = create_attr_sval((yyvsp[-1].Integer), (yyvsp[0].String)); }
-#line 2209 "../../ntpd/ntp_parser.c" /* yacc.c:1646  */
+#line 2217 "ntp_parser.c" /* yacc.c:1646  */
     break;
 
   case 55:
-#line 516 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
+#line 518 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
     {
                        unpeer_node *my_node;
 
@@ -2217,85 +2225,85 @@ yyreduce:
                        if (my_node)
                                APPEND_G_FIFO(cfgt.unpeers, my_node);
                }
-#line 2221 "../../ntpd/ntp_parser.c" /* yacc.c:1646  */
+#line 2229 "ntp_parser.c" /* yacc.c:1646  */
     break;
 
   case 58:
-#line 537 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
+#line 539 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
     { cfgt.broadcastclient = 1; }
-#line 2227 "../../ntpd/ntp_parser.c" /* yacc.c:1646  */
+#line 2235 "ntp_parser.c" /* yacc.c:1646  */
     break;
 
   case 59:
-#line 539 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
+#line 541 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
     { CONCAT_G_FIFOS(cfgt.manycastserver, (yyvsp[0].Address_fifo)); }
-#line 2233 "../../ntpd/ntp_parser.c" /* yacc.c:1646  */
+#line 2241 "ntp_parser.c" /* yacc.c:1646  */
     break;
 
   case 60:
-#line 541 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
+#line 543 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
     { CONCAT_G_FIFOS(cfgt.multicastclient, (yyvsp[0].Address_fifo)); }
-#line 2239 "../../ntpd/ntp_parser.c" /* yacc.c:1646  */
+#line 2247 "ntp_parser.c" /* yacc.c:1646  */
     break;
 
   case 61:
-#line 543 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
+#line 545 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
     { cfgt.mdnstries = (yyvsp[0].Integer); }
-#line 2245 "../../ntpd/ntp_parser.c" /* yacc.c:1646  */
+#line 2253 "ntp_parser.c" /* yacc.c:1646  */
     break;
 
   case 62:
-#line 554 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
+#line 556 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
     {
                        attr_val *atrv;
 
                        atrv = create_attr_ival((yyvsp[-1].Integer), (yyvsp[0].Integer));
                        APPEND_G_FIFO(cfgt.vars, atrv);
                }
-#line 2256 "../../ntpd/ntp_parser.c" /* yacc.c:1646  */
+#line 2264 "ntp_parser.c" /* yacc.c:1646  */
     break;
 
   case 63:
-#line 561 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
+#line 563 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
     { cfgt.auth.control_key = (yyvsp[0].Integer); }
-#line 2262 "../../ntpd/ntp_parser.c" /* yacc.c:1646  */
+#line 2270 "ntp_parser.c" /* yacc.c:1646  */
     break;
 
   case 64:
-#line 563 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
+#line 565 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
     {
                        cfgt.auth.cryptosw++;
                        CONCAT_G_FIFOS(cfgt.auth.crypto_cmd_list, (yyvsp[0].Attr_val_fifo));
                }
-#line 2271 "../../ntpd/ntp_parser.c" /* yacc.c:1646  */
+#line 2279 "ntp_parser.c" /* yacc.c:1646  */
     break;
 
   case 65:
-#line 568 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
+#line 570 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
     { cfgt.auth.keys = (yyvsp[0].String); }
-#line 2277 "../../ntpd/ntp_parser.c" /* yacc.c:1646  */
+#line 2285 "ntp_parser.c" /* yacc.c:1646  */
     break;
 
   case 66:
-#line 570 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
+#line 572 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
     { cfgt.auth.keysdir = (yyvsp[0].String); }
-#line 2283 "../../ntpd/ntp_parser.c" /* yacc.c:1646  */
+#line 2291 "ntp_parser.c" /* yacc.c:1646  */
     break;
 
   case 67:
-#line 572 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
+#line 574 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
     { cfgt.auth.request_key = (yyvsp[0].Integer); }
-#line 2289 "../../ntpd/ntp_parser.c" /* yacc.c:1646  */
+#line 2297 "ntp_parser.c" /* yacc.c:1646  */
     break;
 
   case 68:
-#line 574 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
+#line 576 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
     { cfgt.auth.revoke = (yyvsp[0].Integer); }
-#line 2295 "../../ntpd/ntp_parser.c" /* yacc.c:1646  */
+#line 2303 "ntp_parser.c" /* yacc.c:1646  */
     break;
 
   case 69:
-#line 576 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
+#line 578 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
     {
                        /* [Bug 948] leaves it open if appending or
                         * replacing the trusted key list is the right
@@ -2305,38 +2313,38 @@ yyreduce:
                        DESTROY_G_FIFO(cfgt.auth.trusted_key_list, destroy_attr_val); /* remove for append */
                        CONCAT_G_FIFOS(cfgt.auth.trusted_key_list, (yyvsp[0].Attr_val_fifo));
                }
-#line 2309 "../../ntpd/ntp_parser.c" /* yacc.c:1646  */
+#line 2317 "ntp_parser.c" /* yacc.c:1646  */
     break;
 
   case 70:
-#line 586 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
+#line 588 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
     { cfgt.auth.ntp_signd_socket = (yyvsp[0].String); }
-#line 2315 "../../ntpd/ntp_parser.c" /* yacc.c:1646  */
+#line 2323 "ntp_parser.c" /* yacc.c:1646  */
     break;
 
   case 71:
-#line 591 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
+#line 593 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
     { (yyval.Attr_val_fifo) = NULL; }
-#line 2321 "../../ntpd/ntp_parser.c" /* yacc.c:1646  */
+#line 2329 "ntp_parser.c" /* yacc.c:1646  */
     break;
 
   case 72:
-#line 593 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
+#line 595 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
     {
                        (yyval.Attr_val_fifo) = (yyvsp[-1].Attr_val_fifo);
                        APPEND_G_FIFO((yyval.Attr_val_fifo), (yyvsp[0].Attr_val));
                }
-#line 2330 "../../ntpd/ntp_parser.c" /* yacc.c:1646  */
+#line 2338 "ntp_parser.c" /* yacc.c:1646  */
     break;
 
   case 73:
-#line 601 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
+#line 603 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
     { (yyval.Attr_val) = create_attr_sval((yyvsp[-1].Integer), (yyvsp[0].String)); }
-#line 2336 "../../ntpd/ntp_parser.c" /* yacc.c:1646  */
+#line 2344 "ntp_parser.c" /* yacc.c:1646  */
     break;
 
   case 74:
-#line 603 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
+#line 605 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
     {
                        (yyval.Attr_val) = NULL;
                        cfgt.auth.revoke = (yyvsp[0].Integer);
@@ -2345,65 +2353,65 @@ yyreduce:
                                "please use 'revoke %d' instead.",
                                cfgt.auth.revoke, cfgt.auth.revoke);
                }
-#line 2349 "../../ntpd/ntp_parser.c" /* yacc.c:1646  */
+#line 2357 "ntp_parser.c" /* yacc.c:1646  */
     break;
 
   case 80:
-#line 628 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
+#line 630 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
     { CONCAT_G_FIFOS(cfgt.orphan_cmds, (yyvsp[0].Attr_val_fifo)); }
-#line 2355 "../../ntpd/ntp_parser.c" /* yacc.c:1646  */
+#line 2363 "ntp_parser.c" /* yacc.c:1646  */
     break;
 
   case 81:
-#line 633 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
+#line 635 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
     {
                        (yyval.Attr_val_fifo) = (yyvsp[-1].Attr_val_fifo);
                        APPEND_G_FIFO((yyval.Attr_val_fifo), (yyvsp[0].Attr_val));
                }
-#line 2364 "../../ntpd/ntp_parser.c" /* yacc.c:1646  */
+#line 2372 "ntp_parser.c" /* yacc.c:1646  */
     break;
 
   case 82:
-#line 638 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
+#line 640 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
     {
                        (yyval.Attr_val_fifo) = NULL;
                        APPEND_G_FIFO((yyval.Attr_val_fifo), (yyvsp[0].Attr_val));
                }
-#line 2373 "../../ntpd/ntp_parser.c" /* yacc.c:1646  */
+#line 2381 "ntp_parser.c" /* yacc.c:1646  */
     break;
 
   case 83:
-#line 646 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
+#line 648 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
     { (yyval.Attr_val) = create_attr_dval((yyvsp[-1].Integer), (double)(yyvsp[0].Integer)); }
-#line 2379 "../../ntpd/ntp_parser.c" /* yacc.c:1646  */
+#line 2387 "ntp_parser.c" /* yacc.c:1646  */
     break;
 
   case 84:
-#line 648 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
+#line 650 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
     { (yyval.Attr_val) = create_attr_dval((yyvsp[-1].Integer), (yyvsp[0].Double)); }
-#line 2385 "../../ntpd/ntp_parser.c" /* yacc.c:1646  */
+#line 2393 "ntp_parser.c" /* yacc.c:1646  */
     break;
 
   case 85:
-#line 650 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
+#line 652 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
     { (yyval.Attr_val) = create_attr_dval((yyvsp[-1].Integer), (double)(yyvsp[0].Integer)); }
-#line 2391 "../../ntpd/ntp_parser.c" /* yacc.c:1646  */
+#line 2399 "ntp_parser.c" /* yacc.c:1646  */
     break;
 
   case 86:
-#line 652 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
+#line 654 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
     { (yyval.Attr_val) = create_attr_ival(T_Basedate, (yyvsp[0].Integer)); }
-#line 2397 "../../ntpd/ntp_parser.c" /* yacc.c:1646  */
+#line 2405 "ntp_parser.c" /* yacc.c:1646  */
     break;
 
   case 98:
-#line 679 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
+#line 681 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
     { CONCAT_G_FIFOS(cfgt.stats_list, (yyvsp[0].Int_fifo)); }
-#line 2403 "../../ntpd/ntp_parser.c" /* yacc.c:1646  */
+#line 2411 "ntp_parser.c" /* yacc.c:1646  */
     break;
 
   case 99:
-#line 681 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
+#line 683 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
     {
                        if (lex_from_file()) {
                                cfgt.stats_dir = (yyvsp[0].String);
@@ -2412,55 +2420,55 @@ yyreduce:
                                yyerror("statsdir remote configuration ignored");
                        }
                }
-#line 2416 "../../ntpd/ntp_parser.c" /* yacc.c:1646  */
+#line 2424 "ntp_parser.c" /* yacc.c:1646  */
     break;
 
   case 100:
-#line 690 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
+#line 692 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
     {
                        filegen_node *fgn;
 
                        fgn = create_filegen_node((yyvsp[-1].Integer), (yyvsp[0].Attr_val_fifo));
                        APPEND_G_FIFO(cfgt.filegen_opts, fgn);
                }
-#line 2427 "../../ntpd/ntp_parser.c" /* yacc.c:1646  */
+#line 2435 "ntp_parser.c" /* yacc.c:1646  */
     break;
 
   case 101:
-#line 700 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
+#line 702 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
     {
                        (yyval.Int_fifo) = (yyvsp[-1].Int_fifo);
                        APPEND_G_FIFO((yyval.Int_fifo), create_int_node((yyvsp[0].Integer)));
                }
-#line 2436 "../../ntpd/ntp_parser.c" /* yacc.c:1646  */
+#line 2444 "ntp_parser.c" /* yacc.c:1646  */
     break;
 
   case 102:
-#line 705 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
+#line 707 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
     {
                        (yyval.Int_fifo) = NULL;
                        APPEND_G_FIFO((yyval.Int_fifo), create_int_node((yyvsp[0].Integer)));
                }
-#line 2445 "../../ntpd/ntp_parser.c" /* yacc.c:1646  */
+#line 2453 "ntp_parser.c" /* yacc.c:1646  */
     break;
 
   case 111:
-#line 724 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
+#line 726 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
     { (yyval.Attr_val_fifo) = NULL; }
-#line 2451 "../../ntpd/ntp_parser.c" /* yacc.c:1646  */
+#line 2459 "ntp_parser.c" /* yacc.c:1646  */
     break;
 
   case 112:
-#line 726 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
+#line 728 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
     {
                        (yyval.Attr_val_fifo) = (yyvsp[-1].Attr_val_fifo);
                        APPEND_G_FIFO((yyval.Attr_val_fifo), (yyvsp[0].Attr_val));
                }
-#line 2460 "../../ntpd/ntp_parser.c" /* yacc.c:1646  */
+#line 2468 "ntp_parser.c" /* yacc.c:1646  */
     break;
 
   case 113:
-#line 734 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
+#line 736 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
     {
                        if (lex_from_file()) {
                                (yyval.Attr_val) = create_attr_sval((yyvsp[-1].Integer), (yyvsp[0].String));
@@ -2470,11 +2478,11 @@ yyreduce:
                                yyerror("filegen file remote config ignored");
                        }
                }
-#line 2474 "../../ntpd/ntp_parser.c" /* yacc.c:1646  */
+#line 2482 "ntp_parser.c" /* yacc.c:1646  */
     break;
 
   case 114:
-#line 744 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
+#line 746 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
     {
                        if (lex_from_file()) {
                                (yyval.Attr_val) = create_attr_ival((yyvsp[-1].Integer), (yyvsp[0].Integer));
@@ -2483,11 +2491,11 @@ yyreduce:
                                yyerror("filegen type remote config ignored");
                        }
                }
-#line 2487 "../../ntpd/ntp_parser.c" /* yacc.c:1646  */
+#line 2495 "ntp_parser.c" /* yacc.c:1646  */
     break;
 
   case 115:
-#line 753 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
+#line 755 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
     {
                        const char *err;
 
@@ -2502,69 +2510,69 @@ yyreduce:
                                yyerror(err);
                        }
                }
-#line 2506 "../../ntpd/ntp_parser.c" /* yacc.c:1646  */
+#line 2514 "ntp_parser.c" /* yacc.c:1646  */
     break;
 
   case 116:
-#line 768 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
+#line 770 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
     { (yyval.Attr_val) = create_attr_ival(T_Flag, (yyvsp[0].Integer)); }
-#line 2512 "../../ntpd/ntp_parser.c" /* yacc.c:1646  */
+#line 2520 "ntp_parser.c" /* yacc.c:1646  */
     break;
 
   case 128:
-#line 798 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
+#line 800 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
     {
                        CONCAT_G_FIFOS(cfgt.discard_opts, (yyvsp[0].Attr_val_fifo));
                }
-#line 2520 "../../ntpd/ntp_parser.c" /* yacc.c:1646  */
+#line 2528 "ntp_parser.c" /* yacc.c:1646  */
     break;
 
   case 129:
-#line 802 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
+#line 804 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
     {
                        CONCAT_G_FIFOS(cfgt.mru_opts, (yyvsp[0].Attr_val_fifo));
                }
-#line 2528 "../../ntpd/ntp_parser.c" /* yacc.c:1646  */
+#line 2536 "ntp_parser.c" /* yacc.c:1646  */
     break;
 
   case 130:
-#line 806 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
+#line 808 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
     {
                        restrict_node *rn;
 
-                       rn = create_restrict_node((yyvsp[-1].Address_node), NULL, (yyvsp[0].Int_fifo),
+                       rn = create_restrict_node((yyvsp[-2].Address_node), NULL, (yyvsp[-1].Integer), (yyvsp[0].Int_fifo),
                                                  lex_current()->curpos.nline);
                        APPEND_G_FIFO(cfgt.restrict_opts, rn);
                }
-#line 2540 "../../ntpd/ntp_parser.c" /* yacc.c:1646  */
+#line 2548 "ntp_parser.c" /* yacc.c:1646  */
     break;
 
   case 131:
-#line 814 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
+#line 816 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
     {
                        restrict_node *rn;
 
-                       rn = create_restrict_node((yyvsp[-3].Address_node), (yyvsp[-1].Address_node), (yyvsp[0].Int_fifo),
+                       rn = create_restrict_node((yyvsp[-4].Address_node), (yyvsp[-2].Address_node), (yyvsp[-1].Integer), (yyvsp[0].Int_fifo),
                                                  lex_current()->curpos.nline);
                        APPEND_G_FIFO(cfgt.restrict_opts, rn);
                }
-#line 2552 "../../ntpd/ntp_parser.c" /* yacc.c:1646  */
+#line 2560 "ntp_parser.c" /* yacc.c:1646  */
     break;
 
   case 132:
-#line 822 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
+#line 824 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
     {
                        restrict_node *rn;
 
-                       rn = create_restrict_node(NULL, NULL, (yyvsp[0].Int_fifo),
+                       rn = create_restrict_node(NULL, NULL, (yyvsp[-1].Integer), (yyvsp[0].Int_fifo),
                                                  lex_current()->curpos.nline);
                        APPEND_G_FIFO(cfgt.restrict_opts, rn);
                }
-#line 2564 "../../ntpd/ntp_parser.c" /* yacc.c:1646  */
+#line 2572 "ntp_parser.c" /* yacc.c:1646  */
     break;
 
   case 133:
-#line 830 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
+#line 832 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
     {
                        restrict_node *rn;
 
@@ -2575,15 +2583,15 @@ yyreduce:
                                create_address_node(
                                        estrdup("0.0.0.0"),
                                        AF_INET),
-                               (yyvsp[0].Int_fifo),
+                               (yyvsp[-1].Integer), (yyvsp[0].Int_fifo),
                                lex_current()->curpos.nline);
                        APPEND_G_FIFO(cfgt.restrict_opts, rn);
                }
-#line 2583 "../../ntpd/ntp_parser.c" /* yacc.c:1646  */
+#line 2591 "ntp_parser.c" /* yacc.c:1646  */
     break;
 
   case 134:
-#line 845 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
+#line 847 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
     {
                        restrict_node *rn;
 
@@ -2594,132 +2602,158 @@ yyreduce:
                                create_address_node(
                                        estrdup("::"),
                                        AF_INET6),
-                               (yyvsp[0].Int_fifo),
+                               (yyvsp[-1].Integer), (yyvsp[0].Int_fifo),
                                lex_current()->curpos.nline);
                        APPEND_G_FIFO(cfgt.restrict_opts, rn);
                }
-#line 2602 "../../ntpd/ntp_parser.c" /* yacc.c:1646  */
+#line 2610 "ntp_parser.c" /* yacc.c:1646  */
     break;
 
   case 135:
-#line 860 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
+#line 862 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
     {
                        restrict_node * rn;
 
-                       APPEND_G_FIFO((yyvsp[0].Int_fifo), create_int_node((yyvsp[-1].Integer)));
+                       APPEND_G_FIFO((yyvsp[0].Int_fifo), create_int_node((yyvsp[-2].Integer)));
                        rn = create_restrict_node(
-                               NULL, NULL, (yyvsp[0].Int_fifo), lex_current()->curpos.nline);
+                               NULL, NULL, (yyvsp[-1].Integer), (yyvsp[0].Int_fifo), lex_current()->curpos.nline);
                        APPEND_G_FIFO(cfgt.restrict_opts, rn);
                }
-#line 2615 "../../ntpd/ntp_parser.c" /* yacc.c:1646  */
+#line 2623 "ntp_parser.c" /* yacc.c:1646  */
     break;
 
   case 136:
-#line 872 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
-    { (yyval.Int_fifo) = NULL; }
-#line 2621 "../../ntpd/ntp_parser.c" /* yacc.c:1646  */
+#line 874 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
+    { (yyval.Integer) = -1; }
+#line 2629 "ntp_parser.c" /* yacc.c:1646  */
     break;
 
   case 137:
-#line 874 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
+#line 876 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
+    {
+                       if (((yyvsp[0].Integer) < -1) || ((yyvsp[0].Integer) > 100)) {
+                               struct FILE_INFO * ip_ctx;
+
+                               ip_ctx = lex_current();
+                               msyslog(LOG_ERR,
+                                       "Unreasonable ippeerlimit value (%d) in %s line %d, column %d.  Using 0.",
+                                       (yyvsp[0].Integer),
+                                       ip_ctx->fname,
+                                       ip_ctx->errpos.nline,
+                                       ip_ctx->errpos.ncol);
+                               (yyvsp[0].Integer) = 0;
+                       }
+                       (yyval.Integer) = (yyvsp[0].Integer);
+               }
+#line 2649 "ntp_parser.c" /* yacc.c:1646  */
+    break;
+
+  case 138:
+#line 895 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
+    { (yyval.Int_fifo) = NULL; }
+#line 2655 "ntp_parser.c" /* yacc.c:1646  */
+    break;
+
+  case 139:
+#line 897 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
     {
                        (yyval.Int_fifo) = (yyvsp[-1].Int_fifo);
                        APPEND_G_FIFO((yyval.Int_fifo), create_int_node((yyvsp[0].Integer)));
                }
-#line 2630 "../../ntpd/ntp_parser.c" /* yacc.c:1646  */
+#line 2664 "ntp_parser.c" /* yacc.c:1646  */
     break;
 
-  case 155:
-#line 902 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
+  case 157:
+#line 925 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
     {
                        (yyval.Attr_val_fifo) = (yyvsp[-1].Attr_val_fifo);
                        APPEND_G_FIFO((yyval.Attr_val_fifo), (yyvsp[0].Attr_val));
                }
-#line 2639 "../../ntpd/ntp_parser.c" /* yacc.c:1646  */
+#line 2673 "ntp_parser.c" /* yacc.c:1646  */
     break;
 
-  case 156:
-#line 907 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
+  case 158:
+#line 930 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
     {
                        (yyval.Attr_val_fifo) = NULL;
                        APPEND_G_FIFO((yyval.Attr_val_fifo), (yyvsp[0].Attr_val));
                }
-#line 2648 "../../ntpd/ntp_parser.c" /* yacc.c:1646  */
+#line 2682 "ntp_parser.c" /* yacc.c:1646  */
     break;
 
-  case 157:
-#line 915 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
+  case 159:
+#line 938 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
     { (yyval.Attr_val) = create_attr_ival((yyvsp[-1].Integer), (yyvsp[0].Integer)); }
-#line 2654 "../../ntpd/ntp_parser.c" /* yacc.c:1646  */
+#line 2688 "ntp_parser.c" /* yacc.c:1646  */
     break;
 
-  case 161:
-#line 926 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
+  case 163:
+#line 949 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
     {
                        (yyval.Attr_val_fifo) = (yyvsp[-1].Attr_val_fifo);
                        APPEND_G_FIFO((yyval.Attr_val_fifo), (yyvsp[0].Attr_val));
                }
-#line 2663 "../../ntpd/ntp_parser.c" /* yacc.c:1646  */
+#line 2697 "ntp_parser.c" /* yacc.c:1646  */
     break;
 
-  case 162:
-#line 931 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
+  case 164:
+#line 954 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
     {
                        (yyval.Attr_val_fifo) = NULL;
                        APPEND_G_FIFO((yyval.Attr_val_fifo), (yyvsp[0].Attr_val));
                }
-#line 2672 "../../ntpd/ntp_parser.c" /* yacc.c:1646  */
+#line 2706 "ntp_parser.c" /* yacc.c:1646  */
     break;
 
-  case 163:
-#line 939 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
+  case 165:
+#line 962 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
     { (yyval.Attr_val) = create_attr_ival((yyvsp[-1].Integer), (yyvsp[0].Integer)); }
-#line 2678 "../../ntpd/ntp_parser.c" /* yacc.c:1646  */
+#line 2712 "ntp_parser.c" /* yacc.c:1646  */
     break;
 
-  case 172:
-#line 959 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
+  case 174:
+#line 982 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
     {
                        addr_opts_node *aon;
 
                        aon = create_addr_opts_node((yyvsp[-1].Address_node), (yyvsp[0].Attr_val_fifo));
                        APPEND_G_FIFO(cfgt.fudge, aon);
                }
-#line 2689 "../../ntpd/ntp_parser.c" /* yacc.c:1646  */
+#line 2723 "ntp_parser.c" /* yacc.c:1646  */
     break;
 
-  case 173:
-#line 969 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
+  case 175:
+#line 992 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
     {
                        (yyval.Attr_val_fifo) = (yyvsp[-1].Attr_val_fifo);
                        APPEND_G_FIFO((yyval.Attr_val_fifo), (yyvsp[0].Attr_val));
                }
-#line 2698 "../../ntpd/ntp_parser.c" /* yacc.c:1646  */
+#line 2732 "ntp_parser.c" /* yacc.c:1646  */
     break;
 
-  case 174:
-#line 974 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
+  case 176:
+#line 997 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
     {
                        (yyval.Attr_val_fifo) = NULL;
                        APPEND_G_FIFO((yyval.Attr_val_fifo), (yyvsp[0].Attr_val));
                }
-#line 2707 "../../ntpd/ntp_parser.c" /* yacc.c:1646  */
+#line 2741 "ntp_parser.c" /* yacc.c:1646  */
     break;
 
-  case 175:
-#line 982 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
+  case 177:
+#line 1005 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
     { (yyval.Attr_val) = create_attr_dval((yyvsp[-1].Integer), (yyvsp[0].Double)); }
-#line 2713 "../../ntpd/ntp_parser.c" /* yacc.c:1646  */
+#line 2747 "ntp_parser.c" /* yacc.c:1646  */
     break;
 
-  case 176:
-#line 984 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
+  case 178:
+#line 1007 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
     { (yyval.Attr_val) = create_attr_ival((yyvsp[-1].Integer), (yyvsp[0].Integer)); }
-#line 2719 "../../ntpd/ntp_parser.c" /* yacc.c:1646  */
+#line 2753 "ntp_parser.c" /* yacc.c:1646  */
     break;
 
-  case 177:
-#line 986 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
+  case 179:
+#line 1009 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
     {
                        if ((yyvsp[0].Integer) >= 0 && (yyvsp[0].Integer) <= 16) {
                                (yyval.Attr_val) = create_attr_ival((yyvsp[-1].Integer), (yyvsp[0].Integer));
@@ -2728,89 +2762,89 @@ yyreduce:
                                yyerror("fudge factor: stratum value not in [0..16], ignored");
                        }
                }
-#line 2732 "../../ntpd/ntp_parser.c" /* yacc.c:1646  */
+#line 2766 "ntp_parser.c" /* yacc.c:1646  */
     break;
 
-  case 178:
-#line 995 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
+  case 180:
+#line 1018 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
     { (yyval.Attr_val) = create_attr_sval((yyvsp[-1].Integer), (yyvsp[0].String)); }
-#line 2738 "../../ntpd/ntp_parser.c" /* yacc.c:1646  */
+#line 2772 "ntp_parser.c" /* yacc.c:1646  */
     break;
 
-  case 179:
-#line 997 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
+  case 181:
+#line 1020 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
     { (yyval.Attr_val) = create_attr_sval((yyvsp[-1].Integer), (yyvsp[0].String)); }
-#line 2744 "../../ntpd/ntp_parser.c" /* yacc.c:1646  */
+#line 2778 "ntp_parser.c" /* yacc.c:1646  */
     break;
 
-  case 186:
-#line 1018 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
+  case 188:
+#line 1041 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
     { CONCAT_G_FIFOS(cfgt.rlimit, (yyvsp[0].Attr_val_fifo)); }
-#line 2750 "../../ntpd/ntp_parser.c" /* yacc.c:1646  */
+#line 2784 "ntp_parser.c" /* yacc.c:1646  */
     break;
 
-  case 187:
-#line 1023 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
+  case 189:
+#line 1046 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
     {
                        (yyval.Attr_val_fifo) = (yyvsp[-1].Attr_val_fifo);
                        APPEND_G_FIFO((yyval.Attr_val_fifo), (yyvsp[0].Attr_val));
                }
-#line 2759 "../../ntpd/ntp_parser.c" /* yacc.c:1646  */
+#line 2793 "ntp_parser.c" /* yacc.c:1646  */
     break;
 
-  case 188:
-#line 1028 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
+  case 190:
+#line 1051 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
     {
                        (yyval.Attr_val_fifo) = NULL;
                        APPEND_G_FIFO((yyval.Attr_val_fifo), (yyvsp[0].Attr_val));
                }
-#line 2768 "../../ntpd/ntp_parser.c" /* yacc.c:1646  */
+#line 2802 "ntp_parser.c" /* yacc.c:1646  */
     break;
 
-  case 189:
-#line 1036 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
+  case 191:
+#line 1059 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
     { (yyval.Attr_val) = create_attr_ival((yyvsp[-1].Integer), (yyvsp[0].Integer)); }
-#line 2774 "../../ntpd/ntp_parser.c" /* yacc.c:1646  */
+#line 2808 "ntp_parser.c" /* yacc.c:1646  */
     break;
 
-  case 193:
-#line 1052 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
+  case 195:
+#line 1075 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
     { CONCAT_G_FIFOS(cfgt.enable_opts, (yyvsp[0].Attr_val_fifo)); }
-#line 2780 "../../ntpd/ntp_parser.c" /* yacc.c:1646  */
+#line 2814 "ntp_parser.c" /* yacc.c:1646  */
     break;
 
-  case 194:
-#line 1054 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
+  case 196:
+#line 1077 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
     { CONCAT_G_FIFOS(cfgt.disable_opts, (yyvsp[0].Attr_val_fifo)); }
-#line 2786 "../../ntpd/ntp_parser.c" /* yacc.c:1646  */
+#line 2820 "ntp_parser.c" /* yacc.c:1646  */
     break;
 
-  case 195:
-#line 1059 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
+  case 197:
+#line 1082 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
     {
                        (yyval.Attr_val_fifo) = (yyvsp[-1].Attr_val_fifo);
                        APPEND_G_FIFO((yyval.Attr_val_fifo), (yyvsp[0].Attr_val));
                }
-#line 2795 "../../ntpd/ntp_parser.c" /* yacc.c:1646  */
+#line 2829 "ntp_parser.c" /* yacc.c:1646  */
     break;
 
-  case 196:
-#line 1064 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
+  case 198:
+#line 1087 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
     {
                        (yyval.Attr_val_fifo) = NULL;
                        APPEND_G_FIFO((yyval.Attr_val_fifo), (yyvsp[0].Attr_val));
                }
-#line 2804 "../../ntpd/ntp_parser.c" /* yacc.c:1646  */
+#line 2838 "ntp_parser.c" /* yacc.c:1646  */
     break;
 
-  case 197:
-#line 1072 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
+  case 199:
+#line 1095 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
     { (yyval.Attr_val) = create_attr_ival(T_Flag, (yyvsp[0].Integer)); }
-#line 2810 "../../ntpd/ntp_parser.c" /* yacc.c:1646  */
+#line 2844 "ntp_parser.c" /* yacc.c:1646  */
     break;
 
-  case 198:
-#line 1074 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
+  case 200:
+#line 1097 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
     {
                        if (lex_from_file()) {
                                (yyval.Attr_val) = create_attr_ival(T_Flag, (yyvsp[0].Integer));
@@ -2824,74 +2858,74 @@ yyreduce:
                                yyerror(err_str);
                        }
                }
-#line 2828 "../../ntpd/ntp_parser.c" /* yacc.c:1646  */
+#line 2862 "ntp_parser.c" /* yacc.c:1646  */
     break;
 
-  case 211:
-#line 1113 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
+  case 213:
+#line 1136 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
     { CONCAT_G_FIFOS(cfgt.tinker, (yyvsp[0].Attr_val_fifo)); }
-#line 2834 "../../ntpd/ntp_parser.c" /* yacc.c:1646  */
+#line 2868 "ntp_parser.c" /* yacc.c:1646  */
     break;
 
-  case 212:
-#line 1118 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
+  case 214:
+#line 1141 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
     {
                        (yyval.Attr_val_fifo) = (yyvsp[-1].Attr_val_fifo);
                        APPEND_G_FIFO((yyval.Attr_val_fifo), (yyvsp[0].Attr_val));
                }
-#line 2843 "../../ntpd/ntp_parser.c" /* yacc.c:1646  */
+#line 2877 "ntp_parser.c" /* yacc.c:1646  */
     break;
 
-  case 213:
-#line 1123 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
+  case 215:
+#line 1146 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
     {
                        (yyval.Attr_val_fifo) = NULL;
                        APPEND_G_FIFO((yyval.Attr_val_fifo), (yyvsp[0].Attr_val));
                }
-#line 2852 "../../ntpd/ntp_parser.c" /* yacc.c:1646  */
+#line 2886 "ntp_parser.c" /* yacc.c:1646  */
     break;
 
-  case 214:
-#line 1131 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
+  case 216:
+#line 1154 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
     { (yyval.Attr_val) = create_attr_dval((yyvsp[-1].Integer), (yyvsp[0].Double)); }
-#line 2858 "../../ntpd/ntp_parser.c" /* yacc.c:1646  */
+#line 2892 "ntp_parser.c" /* yacc.c:1646  */
     break;
 
-  case 227:
-#line 1156 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
+  case 229:
+#line 1179 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
     {
                        attr_val *av;
 
                        av = create_attr_dval((yyvsp[-1].Integer), (yyvsp[0].Double));
                        APPEND_G_FIFO(cfgt.vars, av);
                }
-#line 2869 "../../ntpd/ntp_parser.c" /* yacc.c:1646  */
+#line 2903 "ntp_parser.c" /* yacc.c:1646  */
     break;
 
-  case 228:
-#line 1163 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
+  case 230:
+#line 1186 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
     {
                        attr_val *av;
 
                        av = create_attr_ival((yyvsp[-1].Integer), (yyvsp[0].Integer));
                        APPEND_G_FIFO(cfgt.vars, av);
                }
-#line 2880 "../../ntpd/ntp_parser.c" /* yacc.c:1646  */
+#line 2914 "ntp_parser.c" /* yacc.c:1646  */
     break;
 
-  case 229:
-#line 1170 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
+  case 231:
+#line 1193 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
     {
                        attr_val *av;
 
                        av = create_attr_sval((yyvsp[-1].Integer), (yyvsp[0].String));
                        APPEND_G_FIFO(cfgt.vars, av);
                }
-#line 2891 "../../ntpd/ntp_parser.c" /* yacc.c:1646  */
+#line 2925 "ntp_parser.c" /* yacc.c:1646  */
     break;
 
-  case 230:
-#line 1177 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
+  case 232:
+#line 1200 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
     {
                        char error_text[64];
                        attr_val *av;
@@ -2907,11 +2941,11 @@ yyreduce:
                                yyerror(error_text);
                        }
                }
-#line 2911 "../../ntpd/ntp_parser.c" /* yacc.c:1646  */
+#line 2945 "ntp_parser.c" /* yacc.c:1646  */
     break;
 
-  case 231:
-#line 1193 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
+  case 233:
+#line 1216 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
     {
                        if (!lex_from_file()) {
                                YYFREE((yyvsp[-1].String)); /* avoid leak */
@@ -2930,68 +2964,68 @@ yyreduce:
                        }
                        YYFREE((yyvsp[-1].String)); /* avoid leak */
                }
-#line 2934 "../../ntpd/ntp_parser.c" /* yacc.c:1646  */
+#line 2968 "ntp_parser.c" /* yacc.c:1646  */
     break;
 
-  case 232:
-#line 1212 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
+  case 234:
+#line 1235 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
     { lex_flush_stack(); }
-#line 2940 "../../ntpd/ntp_parser.c" /* yacc.c:1646  */
+#line 2974 "ntp_parser.c" /* yacc.c:1646  */
     break;
 
-  case 233:
-#line 1214 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
+  case 235:
+#line 1237 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
     { /* see drift_parm below for actions */ }
-#line 2946 "../../ntpd/ntp_parser.c" /* yacc.c:1646  */
+#line 2980 "ntp_parser.c" /* yacc.c:1646  */
     break;
 
-  case 234:
-#line 1216 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
+  case 236:
+#line 1239 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
     { CONCAT_G_FIFOS(cfgt.logconfig, (yyvsp[0].Attr_val_fifo)); }
-#line 2952 "../../ntpd/ntp_parser.c" /* yacc.c:1646  */
+#line 2986 "ntp_parser.c" /* yacc.c:1646  */
     break;
 
-  case 235:
-#line 1218 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
+  case 237:
+#line 1241 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
     { CONCAT_G_FIFOS(cfgt.phone, (yyvsp[0].String_fifo)); }
-#line 2958 "../../ntpd/ntp_parser.c" /* yacc.c:1646  */
+#line 2992 "ntp_parser.c" /* yacc.c:1646  */
     break;
 
-  case 236:
-#line 1220 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
+  case 238:
+#line 1243 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
     { APPEND_G_FIFO(cfgt.setvar, (yyvsp[0].Set_var)); }
-#line 2964 "../../ntpd/ntp_parser.c" /* yacc.c:1646  */
+#line 2998 "ntp_parser.c" /* yacc.c:1646  */
     break;
 
-  case 237:
-#line 1222 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
+  case 239:
+#line 1245 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
     {
                        addr_opts_node *aon;
 
                        aon = create_addr_opts_node((yyvsp[-1].Address_node), (yyvsp[0].Attr_val_fifo));
                        APPEND_G_FIFO(cfgt.trap, aon);
                }
-#line 2975 "../../ntpd/ntp_parser.c" /* yacc.c:1646  */
+#line 3009 "ntp_parser.c" /* yacc.c:1646  */
     break;
 
-  case 238:
-#line 1229 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
+  case 240:
+#line 1252 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
     { CONCAT_G_FIFOS(cfgt.ttl, (yyvsp[0].Attr_val_fifo)); }
-#line 2981 "../../ntpd/ntp_parser.c" /* yacc.c:1646  */
+#line 3015 "ntp_parser.c" /* yacc.c:1646  */
     break;
 
-  case 243:
-#line 1244 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
+  case 245:
+#line 1267 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
     {
 #ifndef LEAP_SMEAR
                        yyerror("Built without LEAP_SMEAR support.");
 #endif
                }
-#line 2991 "../../ntpd/ntp_parser.c" /* yacc.c:1646  */
+#line 3025 "ntp_parser.c" /* yacc.c:1646  */
     break;
 
-  case 249:
-#line 1264 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
+  case 251:
+#line 1287 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
     {
                        if (lex_from_file()) {
                                attr_val *av;
@@ -3002,11 +3036,11 @@ yyreduce:
                                yyerror("driftfile remote configuration ignored");
                        }
                }
-#line 3006 "../../ntpd/ntp_parser.c" /* yacc.c:1646  */
+#line 3040 "ntp_parser.c" /* yacc.c:1646  */
     break;
 
-  case 250:
-#line 1275 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
+  case 252:
+#line 1298 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
     {
                        if (lex_from_file()) {
                                attr_val *av;
@@ -3019,11 +3053,11 @@ yyreduce:
                                yyerror("driftfile remote configuration ignored");
                        }
                }
-#line 3023 "../../ntpd/ntp_parser.c" /* yacc.c:1646  */
+#line 3057 "ntp_parser.c" /* yacc.c:1646  */
     break;
 
-  case 251:
-#line 1288 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
+  case 253:
+#line 1311 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
     {
                        if (lex_from_file()) {
                                attr_val *av;
@@ -3033,71 +3067,71 @@ yyreduce:
                                yyerror("driftfile remote configuration ignored");
                        }
                }
-#line 3037 "../../ntpd/ntp_parser.c" /* yacc.c:1646  */
+#line 3071 "ntp_parser.c" /* yacc.c:1646  */
     break;
 
-  case 252:
-#line 1301 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
+  case 254:
+#line 1324 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
     { (yyval.Set_var) = create_setvar_node((yyvsp[-3].String), (yyvsp[-1].String), (yyvsp[0].Integer)); }
-#line 3043 "../../ntpd/ntp_parser.c" /* yacc.c:1646  */
+#line 3077 "ntp_parser.c" /* yacc.c:1646  */
     break;
 
-  case 254:
-#line 1307 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
+  case 256:
+#line 1330 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
     { (yyval.Integer) = 0; }
-#line 3049 "../../ntpd/ntp_parser.c" /* yacc.c:1646  */
+#line 3083 "ntp_parser.c" /* yacc.c:1646  */
     break;
 
-  case 255:
-#line 1312 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
+  case 257:
+#line 1335 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
     { (yyval.Attr_val_fifo) = NULL; }
-#line 3055 "../../ntpd/ntp_parser.c" /* yacc.c:1646  */
+#line 3089 "ntp_parser.c" /* yacc.c:1646  */
     break;
 
-  case 256:
-#line 1314 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
+  case 258:
+#line 1337 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
     {
                        (yyval.Attr_val_fifo) = (yyvsp[-1].Attr_val_fifo);
                        APPEND_G_FIFO((yyval.Attr_val_fifo), (yyvsp[0].Attr_val));
                }
-#line 3064 "../../ntpd/ntp_parser.c" /* yacc.c:1646  */
+#line 3098 "ntp_parser.c" /* yacc.c:1646  */
     break;
 
-  case 257:
-#line 1322 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
+  case 259:
+#line 1345 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
     { (yyval.Attr_val) = create_attr_ival((yyvsp[-1].Integer), (yyvsp[0].Integer)); }
-#line 3070 "../../ntpd/ntp_parser.c" /* yacc.c:1646  */
+#line 3104 "ntp_parser.c" /* yacc.c:1646  */
     break;
 
-  case 258:
-#line 1324 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
+  case 260:
+#line 1347 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
     {
                        (yyval.Attr_val) = create_attr_sval((yyvsp[-1].Integer), estrdup((yyvsp[0].Address_node)->address));
                        destroy_address_node((yyvsp[0].Address_node));
                }
-#line 3079 "../../ntpd/ntp_parser.c" /* yacc.c:1646  */
+#line 3113 "ntp_parser.c" /* yacc.c:1646  */
     break;
 
-  case 259:
-#line 1332 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
+  case 261:
+#line 1355 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
     {
                        (yyval.Attr_val_fifo) = (yyvsp[-1].Attr_val_fifo);
                        APPEND_G_FIFO((yyval.Attr_val_fifo), (yyvsp[0].Attr_val));
                }
-#line 3088 "../../ntpd/ntp_parser.c" /* yacc.c:1646  */
+#line 3122 "ntp_parser.c" /* yacc.c:1646  */
     break;
 
-  case 260:
-#line 1337 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
+  case 262:
+#line 1360 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
     {
                        (yyval.Attr_val_fifo) = NULL;
                        APPEND_G_FIFO((yyval.Attr_val_fifo), (yyvsp[0].Attr_val));
                }
-#line 3097 "../../ntpd/ntp_parser.c" /* yacc.c:1646  */
+#line 3131 "ntp_parser.c" /* yacc.c:1646  */
     break;
 
-  case 261:
-#line 1345 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
+  case 263:
+#line 1368 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
     {
                        char    prefix;
                        char *  type;
@@ -3119,141 +3153,141 @@ yyreduce:
                        (yyval.Attr_val) = create_attr_sval(prefix, estrdup(type));
                        YYFREE((yyvsp[0].String));
                }
-#line 3123 "../../ntpd/ntp_parser.c" /* yacc.c:1646  */
+#line 3157 "ntp_parser.c" /* yacc.c:1646  */
     break;
 
-  case 262:
-#line 1370 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
+  case 264:
+#line 1393 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
     {
                        nic_rule_node *nrn;
 
                        nrn = create_nic_rule_node((yyvsp[0].Integer), NULL, (yyvsp[-1].Integer));
                        APPEND_G_FIFO(cfgt.nic_rules, nrn);
                }
-#line 3134 "../../ntpd/ntp_parser.c" /* yacc.c:1646  */
+#line 3168 "ntp_parser.c" /* yacc.c:1646  */
     break;
 
-  case 263:
-#line 1377 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
+  case 265:
+#line 1400 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
     {
                        nic_rule_node *nrn;
 
                        nrn = create_nic_rule_node(0, (yyvsp[0].String), (yyvsp[-1].Integer));
                        APPEND_G_FIFO(cfgt.nic_rules, nrn);
                }
-#line 3145 "../../ntpd/ntp_parser.c" /* yacc.c:1646  */
+#line 3179 "ntp_parser.c" /* yacc.c:1646  */
     break;
 
-  case 273:
-#line 1405 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
+  case 275:
+#line 1428 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
     { CONCAT_G_FIFOS(cfgt.reset_counters, (yyvsp[0].Int_fifo)); }
-#line 3151 "../../ntpd/ntp_parser.c" /* yacc.c:1646  */
+#line 3185 "ntp_parser.c" /* yacc.c:1646  */
     break;
 
-  case 274:
-#line 1410 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
+  case 276:
+#line 1433 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
     {
                        (yyval.Int_fifo) = (yyvsp[-1].Int_fifo);
                        APPEND_G_FIFO((yyval.Int_fifo), create_int_node((yyvsp[0].Integer)));
                }
-#line 3160 "../../ntpd/ntp_parser.c" /* yacc.c:1646  */
+#line 3194 "ntp_parser.c" /* yacc.c:1646  */
     break;
 
-  case 275:
-#line 1415 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
+  case 277:
+#line 1438 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
     {
                        (yyval.Int_fifo) = NULL;
                        APPEND_G_FIFO((yyval.Int_fifo), create_int_node((yyvsp[0].Integer)));
                }
-#line 3169 "../../ntpd/ntp_parser.c" /* yacc.c:1646  */
+#line 3203 "ntp_parser.c" /* yacc.c:1646  */
     break;
 
-  case 283:
-#line 1439 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
+  case 285:
+#line 1462 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
     {
                        (yyval.Attr_val_fifo) = (yyvsp[-1].Attr_val_fifo);
                        APPEND_G_FIFO((yyval.Attr_val_fifo), create_int_node((yyvsp[0].Integer)));
                }
-#line 3178 "../../ntpd/ntp_parser.c" /* yacc.c:1646  */
+#line 3212 "ntp_parser.c" /* yacc.c:1646  */
     break;
 
-  case 284:
-#line 1444 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
+  case 286:
+#line 1467 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
     {
                        (yyval.Attr_val_fifo) = NULL;
                        APPEND_G_FIFO((yyval.Attr_val_fifo), create_int_node((yyvsp[0].Integer)));
                }
-#line 3187 "../../ntpd/ntp_parser.c" /* yacc.c:1646  */
+#line 3221 "ntp_parser.c" /* yacc.c:1646  */
     break;
 
-  case 285:
-#line 1452 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
+  case 287:
+#line 1475 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
     {
                        (yyval.Attr_val_fifo) = (yyvsp[-1].Attr_val_fifo);
                        APPEND_G_FIFO((yyval.Attr_val_fifo), (yyvsp[0].Attr_val));
                }
-#line 3196 "../../ntpd/ntp_parser.c" /* yacc.c:1646  */
+#line 3230 "ntp_parser.c" /* yacc.c:1646  */
     break;
 
-  case 286:
-#line 1457 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
+  case 288:
+#line 1480 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
     {
                        (yyval.Attr_val_fifo) = NULL;
                        APPEND_G_FIFO((yyval.Attr_val_fifo), (yyvsp[0].Attr_val));
                }
-#line 3205 "../../ntpd/ntp_parser.c" /* yacc.c:1646  */
+#line 3239 "ntp_parser.c" /* yacc.c:1646  */
     break;
 
-  case 287:
-#line 1465 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
+  case 289:
+#line 1488 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
     { (yyval.Attr_val) = create_attr_ival('i', (yyvsp[0].Integer)); }
-#line 3211 "../../ntpd/ntp_parser.c" /* yacc.c:1646  */
+#line 3245 "ntp_parser.c" /* yacc.c:1646  */
     break;
 
-  case 289:
-#line 1471 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
+  case 291:
+#line 1494 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
     { (yyval.Attr_val) = create_attr_rangeval('-', (yyvsp[-3].Integer), (yyvsp[-1].Integer)); }
-#line 3217 "../../ntpd/ntp_parser.c" /* yacc.c:1646  */
+#line 3251 "ntp_parser.c" /* yacc.c:1646  */
     break;
 
-  case 290:
-#line 1476 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
+  case 292:
+#line 1499 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
     {
                        (yyval.String_fifo) = (yyvsp[-1].String_fifo);
                        APPEND_G_FIFO((yyval.String_fifo), create_string_node((yyvsp[0].String)));
                }
-#line 3226 "../../ntpd/ntp_parser.c" /* yacc.c:1646  */
+#line 3260 "ntp_parser.c" /* yacc.c:1646  */
     break;
 
-  case 291:
-#line 1481 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
+  case 293:
+#line 1504 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
     {
                        (yyval.String_fifo) = NULL;
                        APPEND_G_FIFO((yyval.String_fifo), create_string_node((yyvsp[0].String)));
                }
-#line 3235 "../../ntpd/ntp_parser.c" /* yacc.c:1646  */
+#line 3269 "ntp_parser.c" /* yacc.c:1646  */
     break;
 
-  case 292:
-#line 1489 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
+  case 294:
+#line 1512 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
     {
                        (yyval.Address_fifo) = (yyvsp[-1].Address_fifo);
                        APPEND_G_FIFO((yyval.Address_fifo), (yyvsp[0].Address_node));
                }
-#line 3244 "../../ntpd/ntp_parser.c" /* yacc.c:1646  */
+#line 3278 "ntp_parser.c" /* yacc.c:1646  */
     break;
 
-  case 293:
-#line 1494 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
+  case 295:
+#line 1517 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
     {
                        (yyval.Address_fifo) = NULL;
                        APPEND_G_FIFO((yyval.Address_fifo), (yyvsp[0].Address_node));
                }
-#line 3253 "../../ntpd/ntp_parser.c" /* yacc.c:1646  */
+#line 3287 "ntp_parser.c" /* yacc.c:1646  */
     break;
 
-  case 294:
-#line 1502 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
+  case 296:
+#line 1525 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
     {
                        if ((yyvsp[0].Integer) != 0 && (yyvsp[0].Integer) != 1) {
                                yyerror("Integer value is not boolean (0 or 1). Assuming 1");
@@ -3262,35 +3296,35 @@ yyreduce:
                                (yyval.Integer) = (yyvsp[0].Integer);
                        }
                }
-#line 3266 "../../ntpd/ntp_parser.c" /* yacc.c:1646  */
+#line 3300 "ntp_parser.c" /* yacc.c:1646  */
     break;
 
-  case 295:
-#line 1510 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
+  case 297:
+#line 1533 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
     { (yyval.Integer) = 1; }
-#line 3272 "../../ntpd/ntp_parser.c" /* yacc.c:1646  */
+#line 3306 "ntp_parser.c" /* yacc.c:1646  */
     break;
 
-  case 296:
-#line 1511 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
+  case 298:
+#line 1534 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
     { (yyval.Integer) = 0; }
-#line 3278 "../../ntpd/ntp_parser.c" /* yacc.c:1646  */
+#line 3312 "ntp_parser.c" /* yacc.c:1646  */
     break;
 
-  case 297:
-#line 1515 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
+  case 299:
+#line 1538 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
     { (yyval.Double) = (double)(yyvsp[0].Integer); }
-#line 3284 "../../ntpd/ntp_parser.c" /* yacc.c:1646  */
+#line 3318 "ntp_parser.c" /* yacc.c:1646  */
     break;
 
-  case 299:
-#line 1521 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
+  case 301:
+#line 1544 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
     { (yyval.Integer) = basedate_eval_string((yyvsp[0].String)); YYFREE((yyvsp[0].String)); }
-#line 3290 "../../ntpd/ntp_parser.c" /* yacc.c:1646  */
+#line 3324 "ntp_parser.c" /* yacc.c:1646  */
     break;
 
-  case 300:
-#line 1529 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
+  case 302:
+#line 1552 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
     {
                        sim_node *sn;
 
@@ -3300,125 +3334,125 @@ yyreduce:
                        /* Revert from ; to \n for end-of-command */
                        old_config_style = 1;
                }
-#line 3304 "../../ntpd/ntp_parser.c" /* yacc.c:1646  */
+#line 3338 "ntp_parser.c" /* yacc.c:1646  */
     break;
 
-  case 301:
-#line 1546 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
+  case 303:
+#line 1569 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
     { old_config_style = 0; }
-#line 3310 "../../ntpd/ntp_parser.c" /* yacc.c:1646  */
+#line 3344 "ntp_parser.c" /* yacc.c:1646  */
     break;
 
-  case 302:
-#line 1551 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
+  case 304:
+#line 1574 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
     {
                        (yyval.Attr_val_fifo) = (yyvsp[-2].Attr_val_fifo);
                        APPEND_G_FIFO((yyval.Attr_val_fifo), (yyvsp[-1].Attr_val));
                }
-#line 3319 "../../ntpd/ntp_parser.c" /* yacc.c:1646  */
+#line 3353 "ntp_parser.c" /* yacc.c:1646  */
     break;
 
-  case 303:
-#line 1556 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
+  case 305:
+#line 1579 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
     {
                        (yyval.Attr_val_fifo) = NULL;
                        APPEND_G_FIFO((yyval.Attr_val_fifo), (yyvsp[-1].Attr_val));
                }
-#line 3328 "../../ntpd/ntp_parser.c" /* yacc.c:1646  */
+#line 3362 "ntp_parser.c" /* yacc.c:1646  */
     break;
 
-  case 304:
-#line 1564 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
+  case 306:
+#line 1587 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
     { (yyval.Attr_val) = create_attr_dval((yyvsp[-2].Integer), (yyvsp[0].Double)); }
-#line 3334 "../../ntpd/ntp_parser.c" /* yacc.c:1646  */
+#line 3368 "ntp_parser.c" /* yacc.c:1646  */
     break;
 
-  case 307:
-#line 1574 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
+  case 309:
+#line 1597 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
     {
                        (yyval.Sim_server_fifo) = (yyvsp[-1].Sim_server_fifo);
                        APPEND_G_FIFO((yyval.Sim_server_fifo), (yyvsp[0].Sim_server));
                }
-#line 3343 "../../ntpd/ntp_parser.c" /* yacc.c:1646  */
+#line 3377 "ntp_parser.c" /* yacc.c:1646  */
     break;
 
-  case 308:
-#line 1579 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
+  case 310:
+#line 1602 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
     {
                        (yyval.Sim_server_fifo) = NULL;
                        APPEND_G_FIFO((yyval.Sim_server_fifo), (yyvsp[0].Sim_server));
                }
-#line 3352 "../../ntpd/ntp_parser.c" /* yacc.c:1646  */
+#line 3386 "ntp_parser.c" /* yacc.c:1646  */
     break;
 
-  case 309:
-#line 1587 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
+  case 311:
+#line 1610 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
     { (yyval.Sim_server) = ONLY_SIM(create_sim_server((yyvsp[-4].Address_node), (yyvsp[-2].Double), (yyvsp[-1].Sim_script_fifo))); }
-#line 3358 "../../ntpd/ntp_parser.c" /* yacc.c:1646  */
+#line 3392 "ntp_parser.c" /* yacc.c:1646  */
     break;
 
-  case 310:
-#line 1592 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
+  case 312:
+#line 1615 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
     { (yyval.Double) = (yyvsp[-1].Double); }
-#line 3364 "../../ntpd/ntp_parser.c" /* yacc.c:1646  */
+#line 3398 "ntp_parser.c" /* yacc.c:1646  */
     break;
 
-  case 311:
-#line 1597 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
+  case 313:
+#line 1620 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
     { (yyval.Address_node) = (yyvsp[0].Address_node); }
-#line 3370 "../../ntpd/ntp_parser.c" /* yacc.c:1646  */
+#line 3404 "ntp_parser.c" /* yacc.c:1646  */
     break;
 
-  case 312:
-#line 1602 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
+  case 314:
+#line 1625 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
     {
                        (yyval.Sim_script_fifo) = (yyvsp[-1].Sim_script_fifo);
                        APPEND_G_FIFO((yyval.Sim_script_fifo), (yyvsp[0].Sim_script));
                }
-#line 3379 "../../ntpd/ntp_parser.c" /* yacc.c:1646  */
+#line 3413 "ntp_parser.c" /* yacc.c:1646  */
     break;
 
-  case 313:
-#line 1607 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
+  case 315:
+#line 1630 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
     {
                        (yyval.Sim_script_fifo) = NULL;
                        APPEND_G_FIFO((yyval.Sim_script_fifo), (yyvsp[0].Sim_script));
                }
-#line 3388 "../../ntpd/ntp_parser.c" /* yacc.c:1646  */
+#line 3422 "ntp_parser.c" /* yacc.c:1646  */
     break;
 
-  case 314:
-#line 1615 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
+  case 316:
+#line 1638 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
     { (yyval.Sim_script) = ONLY_SIM(create_sim_script_info((yyvsp[-3].Double), (yyvsp[-1].Attr_val_fifo))); }
-#line 3394 "../../ntpd/ntp_parser.c" /* yacc.c:1646  */
+#line 3428 "ntp_parser.c" /* yacc.c:1646  */
     break;
 
-  case 315:
-#line 1620 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
+  case 317:
+#line 1643 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
     {
                        (yyval.Attr_val_fifo) = (yyvsp[-2].Attr_val_fifo);
                        APPEND_G_FIFO((yyval.Attr_val_fifo), (yyvsp[-1].Attr_val));
                }
-#line 3403 "../../ntpd/ntp_parser.c" /* yacc.c:1646  */
+#line 3437 "ntp_parser.c" /* yacc.c:1646  */
     break;
 
-  case 316:
-#line 1625 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
+  case 318:
+#line 1648 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
     {
                        (yyval.Attr_val_fifo) = NULL;
                        APPEND_G_FIFO((yyval.Attr_val_fifo), (yyvsp[-1].Attr_val));
                }
-#line 3412 "../../ntpd/ntp_parser.c" /* yacc.c:1646  */
+#line 3446 "ntp_parser.c" /* yacc.c:1646  */
     break;
 
-  case 317:
-#line 1633 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
+  case 319:
+#line 1656 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
     { (yyval.Attr_val) = create_attr_dval((yyvsp[-2].Integer), (yyvsp[0].Double)); }
-#line 3418 "../../ntpd/ntp_parser.c" /* yacc.c:1646  */
+#line 3452 "ntp_parser.c" /* yacc.c:1646  */
     break;
 
 
-#line 3422 "../../ntpd/ntp_parser.c" /* yacc.c:1646  */
+#line 3456 "ntp_parser.c" /* yacc.c:1646  */
       default: break;
     }
   /* User semantic actions sometimes alter yychar, and that requires
@@ -3646,7 +3680,7 @@ yyreturn:
 #endif
   return yyresult;
 }
-#line 1644 "../../ntpd/ntp_parser.y" /* yacc.c:1906  */
+#line 1667 "../../ntpd/ntp_parser.y" /* yacc.c:1906  */
 
 
 void
index ed0da4fe27844da7a72af9382767d81b8cb35a60..308c2d40583a5fbe66006ad1849f3496a6723b69 100644 (file)
@@ -30,8 +30,8 @@
    This special exception was added by the Free Software Foundation in
    version 2.2 of Bison.  */
 
-#ifndef YY_YY_Y_TAB_H_INCLUDED
-# define YY_YY_Y_TAB_H_INCLUDED
+#ifndef YY_YY_NTP_PARSER_H_INCLUDED
+# define YY_YY_NTP_PARSER_H_INCLUDED
 /* Debug traces.  */
 #ifndef YYDEBUG
 # define YYDEBUG 1
@@ -110,140 +110,141 @@ extern int yydebug;
     T_Interface = 320,
     T_Intrange = 321,
     T_Io = 322,
-    T_Ipv4 = 323,
-    T_Ipv4_flag = 324,
-    T_Ipv6 = 325,
-    T_Ipv6_flag = 326,
-    T_Kernel = 327,
-    T_Key = 328,
-    T_Keys = 329,
-    T_Keysdir = 330,
-    T_Kod = 331,
-    T_Mssntp = 332,
-    T_Leapfile = 333,
-    T_Leapsmearinterval = 334,
-    T_Limited = 335,
-    T_Link = 336,
-    T_Listen = 337,
-    T_Logconfig = 338,
-    T_Logfile = 339,
-    T_Loopstats = 340,
-    T_Lowpriotrap = 341,
-    T_Manycastclient = 342,
-    T_Manycastserver = 343,
-    T_Mask = 344,
-    T_Maxage = 345,
-    T_Maxclock = 346,
-    T_Maxdepth = 347,
-    T_Maxdist = 348,
-    T_Maxmem = 349,
-    T_Maxpoll = 350,
-    T_Mdnstries = 351,
-    T_Mem = 352,
-    T_Memlock = 353,
-    T_Minclock = 354,
-    T_Mindepth = 355,
-    T_Mindist = 356,
-    T_Minimum = 357,
-    T_Minpoll = 358,
-    T_Minsane = 359,
-    T_Mode = 360,
-    T_Mode7 = 361,
-    T_Monitor = 362,
-    T_Month = 363,
-    T_Mru = 364,
-    T_Multicastclient = 365,
-    T_Nic = 366,
-    T_Nolink = 367,
-    T_Nomodify = 368,
-    T_Nomrulist = 369,
-    T_None = 370,
-    T_Nonvolatile = 371,
-    T_Noepeer = 372,
-    T_Nopeer = 373,
-    T_Noquery = 374,
-    T_Noselect = 375,
-    T_Noserve = 376,
-    T_Notrap = 377,
-    T_Notrust = 378,
-    T_Ntp = 379,
-    T_Ntpport = 380,
-    T_NtpSignDsocket = 381,
-    T_Orphan = 382,
-    T_Orphanwait = 383,
-    T_PCEdigest = 384,
-    T_Panic = 385,
-    T_Peer = 386,
-    T_Peerstats = 387,
-    T_Phone = 388,
-    T_Pid = 389,
-    T_Pidfile = 390,
-    T_Pool = 391,
-    T_Port = 392,
-    T_Preempt = 393,
-    T_Prefer = 394,
-    T_Protostats = 395,
-    T_Pw = 396,
-    T_Randfile = 397,
-    T_Rawstats = 398,
-    T_Refid = 399,
-    T_Requestkey = 400,
-    T_Reset = 401,
-    T_Restrict = 402,
-    T_Revoke = 403,
-    T_Rlimit = 404,
-    T_Saveconfigdir = 405,
-    T_Server = 406,
-    T_Setvar = 407,
-    T_Source = 408,
-    T_Stacksize = 409,
-    T_Statistics = 410,
-    T_Stats = 411,
-    T_Statsdir = 412,
-    T_Step = 413,
-    T_Stepback = 414,
-    T_Stepfwd = 415,
-    T_Stepout = 416,
-    T_Stratum = 417,
-    T_String = 418,
-    T_Sys = 419,
-    T_Sysstats = 420,
-    T_Tick = 421,
-    T_Time1 = 422,
-    T_Time2 = 423,
-    T_Timer = 424,
-    T_Timingstats = 425,
-    T_Tinker = 426,
-    T_Tos = 427,
-    T_Trap = 428,
-    T_True = 429,
-    T_Trustedkey = 430,
-    T_Ttl = 431,
-    T_Type = 432,
-    T_U_int = 433,
-    T_UEcrypto = 434,
-    T_UEcryptonak = 435,
-    T_UEdigest = 436,
-    T_Unconfig = 437,
-    T_Unpeer = 438,
-    T_Version = 439,
-    T_WanderThreshold = 440,
-    T_Week = 441,
-    T_Wildcard = 442,
-    T_Xleave = 443,
-    T_Year = 444,
-    T_Flag = 445,
-    T_EOC = 446,
-    T_Simulate = 447,
-    T_Beep_Delay = 448,
-    T_Sim_Duration = 449,
-    T_Server_Offset = 450,
-    T_Duration = 451,
-    T_Freq_Offset = 452,
-    T_Wander = 453,
-    T_Jitter = 454,
-    T_Prop_Delay = 455,
-    T_Proc_Delay = 456
+    T_Ippeerlimit = 323,
+    T_Ipv4 = 324,
+    T_Ipv4_flag = 325,
+    T_Ipv6 = 326,
+    T_Ipv6_flag = 327,
+    T_Kernel = 328,
+    T_Key = 329,
+    T_Keys = 330,
+    T_Keysdir = 331,
+    T_Kod = 332,
+    T_Mssntp = 333,
+    T_Leapfile = 334,
+    T_Leapsmearinterval = 335,
+    T_Limited = 336,
+    T_Link = 337,
+    T_Listen = 338,
+    T_Logconfig = 339,
+    T_Logfile = 340,
+    T_Loopstats = 341,
+    T_Lowpriotrap = 342,
+    T_Manycastclient = 343,
+    T_Manycastserver = 344,
+    T_Mask = 345,
+    T_Maxage = 346,
+    T_Maxclock = 347,
+    T_Maxdepth = 348,
+    T_Maxdist = 349,
+    T_Maxmem = 350,
+    T_Maxpoll = 351,
+    T_Mdnstries = 352,
+    T_Mem = 353,
+    T_Memlock = 354,
+    T_Minclock = 355,
+    T_Mindepth = 356,
+    T_Mindist = 357,
+    T_Minimum = 358,
+    T_Minpoll = 359,
+    T_Minsane = 360,
+    T_Mode = 361,
+    T_Mode7 = 362,
+    T_Monitor = 363,
+    T_Month = 364,
+    T_Mru = 365,
+    T_Multicastclient = 366,
+    T_Nic = 367,
+    T_Nolink = 368,
+    T_Nomodify = 369,
+    T_Nomrulist = 370,
+    T_None = 371,
+    T_Nonvolatile = 372,
+    T_Noepeer = 373,
+    T_Nopeer = 374,
+    T_Noquery = 375,
+    T_Noselect = 376,
+    T_Noserve = 377,
+    T_Notrap = 378,
+    T_Notrust = 379,
+    T_Ntp = 380,
+    T_Ntpport = 381,
+    T_NtpSignDsocket = 382,
+    T_Orphan = 383,
+    T_Orphanwait = 384,
+    T_PCEdigest = 385,
+    T_Panic = 386,
+    T_Peer = 387,
+    T_Peerstats = 388,
+    T_Phone = 389,
+    T_Pid = 390,
+    T_Pidfile = 391,
+    T_Pool = 392,
+    T_Port = 393,
+    T_Preempt = 394,
+    T_Prefer = 395,
+    T_Protostats = 396,
+    T_Pw = 397,
+    T_Randfile = 398,
+    T_Rawstats = 399,
+    T_Refid = 400,
+    T_Requestkey = 401,
+    T_Reset = 402,
+    T_Restrict = 403,
+    T_Revoke = 404,
+    T_Rlimit = 405,
+    T_Saveconfigdir = 406,
+    T_Server = 407,
+    T_Setvar = 408,
+    T_Source = 409,
+    T_Stacksize = 410,
+    T_Statistics = 411,
+    T_Stats = 412,
+    T_Statsdir = 413,
+    T_Step = 414,
+    T_Stepback = 415,
+    T_Stepfwd = 416,
+    T_Stepout = 417,
+    T_Stratum = 418,
+    T_String = 419,
+    T_Sys = 420,
+    T_Sysstats = 421,
+    T_Tick = 422,
+    T_Time1 = 423,
+    T_Time2 = 424,
+    T_Timer = 425,
+    T_Timingstats = 426,
+    T_Tinker = 427,
+    T_Tos = 428,
+    T_Trap = 429,
+    T_True = 430,
+    T_Trustedkey = 431,
+    T_Ttl = 432,
+    T_Type = 433,
+    T_U_int = 434,
+    T_UEcrypto = 435,
+    T_UEcryptonak = 436,
+    T_UEdigest = 437,
+    T_Unconfig = 438,
+    T_Unpeer = 439,
+    T_Version = 440,
+    T_WanderThreshold = 441,
+    T_Week = 442,
+    T_Wildcard = 443,
+    T_Xleave = 444,
+    T_Year = 445,
+    T_Flag = 446,
+    T_EOC = 447,
+    T_Simulate = 448,
+    T_Beep_Delay = 449,
+    T_Sim_Duration = 450,
+    T_Server_Offset = 451,
+    T_Duration = 452,
+    T_Freq_Offset = 453,
+    T_Wander = 454,
+    T_Jitter = 455,
+    T_Prop_Delay = 456,
+    T_Proc_Delay = 457
   };
 #endif
 /* Tokens.  */
@@ -312,140 +313,141 @@ extern int yydebug;
 #define T_Interface 320
 #define T_Intrange 321
 #define T_Io 322
-#define T_Ipv4 323
-#define T_Ipv4_flag 324
-#define T_Ipv6 325
-#define T_Ipv6_flag 326
-#define T_Kernel 327
-#define T_Key 328
-#define T_Keys 329
-#define T_Keysdir 330
-#define T_Kod 331
-#define T_Mssntp 332
-#define T_Leapfile 333
-#define T_Leapsmearinterval 334
-#define T_Limited 335
-#define T_Link 336
-#define T_Listen 337
-#define T_Logconfig 338
-#define T_Logfile 339
-#define T_Loopstats 340
-#define T_Lowpriotrap 341
-#define T_Manycastclient 342
-#define T_Manycastserver 343
-#define T_Mask 344
-#define T_Maxage 345
-#define T_Maxclock 346
-#define T_Maxdepth 347
-#define T_Maxdist 348
-#define T_Maxmem 349
-#define T_Maxpoll 350
-#define T_Mdnstries 351
-#define T_Mem 352
-#define T_Memlock 353
-#define T_Minclock 354
-#define T_Mindepth 355
-#define T_Mindist 356
-#define T_Minimum 357
-#define T_Minpoll 358
-#define T_Minsane 359
-#define T_Mode 360
-#define T_Mode7 361
-#define T_Monitor 362
-#define T_Month 363
-#define T_Mru 364
-#define T_Multicastclient 365
-#define T_Nic 366
-#define T_Nolink 367
-#define T_Nomodify 368
-#define T_Nomrulist 369
-#define T_None 370
-#define T_Nonvolatile 371
-#define T_Noepeer 372
-#define T_Nopeer 373
-#define T_Noquery 374
-#define T_Noselect 375
-#define T_Noserve 376
-#define T_Notrap 377
-#define T_Notrust 378
-#define T_Ntp 379
-#define T_Ntpport 380
-#define T_NtpSignDsocket 381
-#define T_Orphan 382
-#define T_Orphanwait 383
-#define T_PCEdigest 384
-#define T_Panic 385
-#define T_Peer 386
-#define T_Peerstats 387
-#define T_Phone 388
-#define T_Pid 389
-#define T_Pidfile 390
-#define T_Pool 391
-#define T_Port 392
-#define T_Preempt 393
-#define T_Prefer 394
-#define T_Protostats 395
-#define T_Pw 396
-#define T_Randfile 397
-#define T_Rawstats 398
-#define T_Refid 399
-#define T_Requestkey 400
-#define T_Reset 401
-#define T_Restrict 402
-#define T_Revoke 403
-#define T_Rlimit 404
-#define T_Saveconfigdir 405
-#define T_Server 406
-#define T_Setvar 407
-#define T_Source 408
-#define T_Stacksize 409
-#define T_Statistics 410
-#define T_Stats 411
-#define T_Statsdir 412
-#define T_Step 413
-#define T_Stepback 414
-#define T_Stepfwd 415
-#define T_Stepout 416
-#define T_Stratum 417
-#define T_String 418
-#define T_Sys 419
-#define T_Sysstats 420
-#define T_Tick 421
-#define T_Time1 422
-#define T_Time2 423
-#define T_Timer 424
-#define T_Timingstats 425
-#define T_Tinker 426
-#define T_Tos 427
-#define T_Trap 428
-#define T_True 429
-#define T_Trustedkey 430
-#define T_Ttl 431
-#define T_Type 432
-#define T_U_int 433
-#define T_UEcrypto 434
-#define T_UEcryptonak 435
-#define T_UEdigest 436
-#define T_Unconfig 437
-#define T_Unpeer 438
-#define T_Version 439
-#define T_WanderThreshold 440
-#define T_Week 441
-#define T_Wildcard 442
-#define T_Xleave 443
-#define T_Year 444
-#define T_Flag 445
-#define T_EOC 446
-#define T_Simulate 447
-#define T_Beep_Delay 448
-#define T_Sim_Duration 449
-#define T_Server_Offset 450
-#define T_Duration 451
-#define T_Freq_Offset 452
-#define T_Wander 453
-#define T_Jitter 454
-#define T_Prop_Delay 455
-#define T_Proc_Delay 456
+#define T_Ippeerlimit 323
+#define T_Ipv4 324
+#define T_Ipv4_flag 325
+#define T_Ipv6 326
+#define T_Ipv6_flag 327
+#define T_Kernel 328
+#define T_Key 329
+#define T_Keys 330
+#define T_Keysdir 331
+#define T_Kod 332
+#define T_Mssntp 333
+#define T_Leapfile 334
+#define T_Leapsmearinterval 335
+#define T_Limited 336
+#define T_Link 337
+#define T_Listen 338
+#define T_Logconfig 339
+#define T_Logfile 340
+#define T_Loopstats 341
+#define T_Lowpriotrap 342
+#define T_Manycastclient 343
+#define T_Manycastserver 344
+#define T_Mask 345
+#define T_Maxage 346
+#define T_Maxclock 347
+#define T_Maxdepth 348
+#define T_Maxdist 349
+#define T_Maxmem 350
+#define T_Maxpoll 351
+#define T_Mdnstries 352
+#define T_Mem 353
+#define T_Memlock 354
+#define T_Minclock 355
+#define T_Mindepth 356
+#define T_Mindist 357
+#define T_Minimum 358
+#define T_Minpoll 359
+#define T_Minsane 360
+#define T_Mode 361
+#define T_Mode7 362
+#define T_Monitor 363
+#define T_Month 364
+#define T_Mru 365
+#define T_Multicastclient 366
+#define T_Nic 367
+#define T_Nolink 368
+#define T_Nomodify 369
+#define T_Nomrulist 370
+#define T_None 371
+#define T_Nonvolatile 372
+#define T_Noepeer 373
+#define T_Nopeer 374
+#define T_Noquery 375
+#define T_Noselect 376
+#define T_Noserve 377
+#define T_Notrap 378
+#define T_Notrust 379
+#define T_Ntp 380
+#define T_Ntpport 381
+#define T_NtpSignDsocket 382
+#define T_Orphan 383
+#define T_Orphanwait 384
+#define T_PCEdigest 385
+#define T_Panic 386
+#define T_Peer 387
+#define T_Peerstats 388
+#define T_Phone 389
+#define T_Pid 390
+#define T_Pidfile 391
+#define T_Pool 392
+#define T_Port 393
+#define T_Preempt 394
+#define T_Prefer 395
+#define T_Protostats 396
+#define T_Pw 397
+#define T_Randfile 398
+#define T_Rawstats 399
+#define T_Refid 400
+#define T_Requestkey 401
+#define T_Reset 402
+#define T_Restrict 403
+#define T_Revoke 404
+#define T_Rlimit 405
+#define T_Saveconfigdir 406
+#define T_Server 407
+#define T_Setvar 408
+#define T_Source 409
+#define T_Stacksize 410
+#define T_Statistics 411
+#define T_Stats 412
+#define T_Statsdir 413
+#define T_Step 414
+#define T_Stepback 415
+#define T_Stepfwd 416
+#define T_Stepout 417
+#define T_Stratum 418
+#define T_String 419
+#define T_Sys 420
+#define T_Sysstats 421
+#define T_Tick 422
+#define T_Time1 423
+#define T_Time2 424
+#define T_Timer 425
+#define T_Timingstats 426
+#define T_Tinker 427
+#define T_Tos 428
+#define T_Trap 429
+#define T_True 430
+#define T_Trustedkey 431
+#define T_Ttl 432
+#define T_Type 433
+#define T_U_int 434
+#define T_UEcrypto 435
+#define T_UEcryptonak 436
+#define T_UEdigest 437
+#define T_Unconfig 438
+#define T_Unpeer 439
+#define T_Version 440
+#define T_WanderThreshold 441
+#define T_Week 442
+#define T_Wildcard 443
+#define T_Xleave 444
+#define T_Year 445
+#define T_Flag 446
+#define T_EOC 447
+#define T_Simulate 448
+#define T_Beep_Delay 449
+#define T_Sim_Duration 450
+#define T_Server_Offset 451
+#define T_Duration 452
+#define T_Freq_Offset 453
+#define T_Wander 454
+#define T_Jitter 455
+#define T_Prop_Delay 456
+#define T_Proc_Delay 457
 
 /* Value type.  */
 #if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED
@@ -471,7 +473,7 @@ union YYSTYPE
        script_info *           Sim_script;
        script_info_fifo *      Sim_script_fifo;
 
-#line 475 "../../ntpd/ntp_parser.h" /* yacc.c:1909  */
+#line 477 "ntp_parser.h" /* yacc.c:1909  */
 };
 
 typedef union YYSTYPE YYSTYPE;
@@ -484,4 +486,4 @@ extern YYSTYPE yylval;
 
 int yyparse (void);
 
-#endif /* !YY_YY_Y_TAB_H_INCLUDED  */
+#endif /* !YY_YY_NTP_PARSER_H_INCLUDED  */
index e96cdbe2bafcd33ec0a75945095c256b8b1c3e4f..5049cf34085e5c0a7f364107c8b0e56c23c332d5 100644 (file)
 %token <Integer>       T_Interface
 %token <Integer>       T_Intrange              /* not a token */
 %token <Integer>       T_Io
+%token <Integer>       T_Ippeerlimit
 %token <Integer>       T_Ipv4
 %token <Integer>       T_Ipv4_flag
 %token <Integer>       T_Ipv6
 %type  <Integer>       interface_command
 %type  <Integer>       interface_nic
 %type  <Address_node>  ip_address
+%type  <Integer>       res_ippeerlimit
 %type  <Integer>       link_nolink
 %type  <Attr_val>      log_config_command
 %type  <Attr_val_fifo> log_config_list
@@ -802,31 +804,31 @@ access_control_command
                {
                        CONCAT_G_FIFOS(cfgt.mru_opts, $2);
                }
-       |       T_Restrict address ac_flag_list
+       |       T_Restrict address res_ippeerlimit ac_flag_list
                {
                        restrict_node *rn;
 
-                       rn = create_restrict_node($2, NULL, $3,
+                       rn = create_restrict_node($2, NULL, $3, $4,
                                                  lex_current()->curpos.nline);
                        APPEND_G_FIFO(cfgt.restrict_opts, rn);
                }
-       |       T_Restrict address T_Mask ip_address ac_flag_list
+       |       T_Restrict address T_Mask ip_address res_ippeerlimit ac_flag_list
                {
                        restrict_node *rn;
 
-                       rn = create_restrict_node($2, $4, $5,
+                       rn = create_restrict_node($2, $4, $5, $6,
                                                  lex_current()->curpos.nline);
                        APPEND_G_FIFO(cfgt.restrict_opts, rn);
                }
-       |       T_Restrict T_Default ac_flag_list
+       |       T_Restrict T_Default res_ippeerlimit ac_flag_list
                {
                        restrict_node *rn;
 
-                       rn = create_restrict_node(NULL, NULL, $3,
+                       rn = create_restrict_node(NULL, NULL, $3, $4,
                                                  lex_current()->curpos.nline);
                        APPEND_G_FIFO(cfgt.restrict_opts, rn);
                }
-       |       T_Restrict T_Ipv4_flag T_Default ac_flag_list
+       |       T_Restrict T_Ipv4_flag T_Default res_ippeerlimit ac_flag_list
                {
                        restrict_node *rn;
 
@@ -837,11 +839,11 @@ access_control_command
                                create_address_node(
                                        estrdup("0.0.0.0"),
                                        AF_INET),
-                               $4,
+                               $4, $5,
                                lex_current()->curpos.nline);
                        APPEND_G_FIFO(cfgt.restrict_opts, rn);
                }
-       |       T_Restrict T_Ipv6_flag T_Default ac_flag_list
+       |       T_Restrict T_Ipv6_flag T_Default res_ippeerlimit ac_flag_list
                {
                        restrict_node *rn;
 
@@ -852,21 +854,42 @@ access_control_command
                                create_address_node(
                                        estrdup("::"),
                                        AF_INET6),
-                               $4,
+                               $4, $5,
                                lex_current()->curpos.nline);
                        APPEND_G_FIFO(cfgt.restrict_opts, rn);
                }
-       |       T_Restrict T_Source ac_flag_list
+       |       T_Restrict T_Source res_ippeerlimit ac_flag_list
                {
                        restrict_node * rn;
 
-                       APPEND_G_FIFO($3, create_int_node($2));
+                       APPEND_G_FIFO($4, create_int_node($2));
                        rn = create_restrict_node(
-                               NULL, NULL, $3, lex_current()->curpos.nline);
+                               NULL, NULL, $3, $4, lex_current()->curpos.nline);
                        APPEND_G_FIFO(cfgt.restrict_opts, rn);
                }
        ;
 
+res_ippeerlimit
+       :       /* empty ippeerlimit defaults to -1 (unlimited) */
+                       { $$ = -1; }
+       |       T_Ippeerlimit  T_Integer
+               {
+                       if (($2 < -1) || ($2 > 100)) {
+                               struct FILE_INFO * ip_ctx;
+
+                               ip_ctx = lex_current();
+                               msyslog(LOG_ERR,
+                                       "Unreasonable ippeerlimit value (%d) in %s line %d, column %d.  Using 0.",
+                                       $2,
+                                       ip_ctx->fname,
+                                       ip_ctx->errpos.nline,
+                                       ip_ctx->errpos.ncol);
+                               $2 = 0;
+                       }
+                       $$ = $2;
+               }
+       ;
+
 ac_flag_list
        :       /* empty list is allowed */
                        { $$ = NULL; }
index 1463eaa94195f811e6f34a163d17766058d6f868..894c4d02188ec56b4eaae297cf2c7cae8ed8969c 100644 (file)
@@ -1840,6 +1840,7 @@ do_restrict(
                memcpy(&cr, datap, item_sz);
                cr.flags = ntohs(cr.flags);
                cr.mflags = ntohs(cr.mflags);
+               cr.ippeerlimit = ntohs(cr.ippeerlimit);
                if (client_v6_capable && cr.v6_flag) {
                        AF(&matchaddr) = AF_INET6;
                        AF(&matchmask) = AF_INET6;
@@ -1852,7 +1853,7 @@ do_restrict(
                        NSRCADR(&matchmask) = cr.mask;
                }
                hack_restrict(op, &matchaddr, &matchmask, cr.mflags,
-                             cr.flags, 0);
+                             cr.ippeerlimit, cr.flags, 0);
                datap += item_sz;
        }
 
index ad6c82a32a41198823064eee0dcbfaadf7d36b54..abf9e2cd2760edef83968cc2e0671396bfab333e 100644 (file)
@@ -96,6 +96,7 @@ static        restrict_u      restrict_def6;
 static int             restrict_source_enabled;
 static u_short         restrict_source_flags;
 static u_short         restrict_source_mflags;
+static short           restrict_source_ippeerlimit;
 
 /*
  * private functions
@@ -484,6 +485,7 @@ hack_restrict(
        int             op,
        sockaddr_u *    resaddr,
        sockaddr_u *    resmask,
+       short           ippeerlimit,
        u_short         mflags,
        u_short         flags,
        u_long          expire
@@ -494,14 +496,15 @@ hack_restrict(
        restrict_u *    res;
        restrict_u **   plisthead;
 
-       DPRINTF(1, ("restrict: op %d addr %s mask %s mflags %08x flags %08x\n",
-                   op, stoa(resaddr), stoa(resmask), mflags, flags));
+       DPRINTF(1, ("restrict: op %d addr %s mask %s ippeerlimit %d mflags %08x flags %08x\n",
+                   op, stoa(resaddr), stoa(resmask), ippeerlimit, mflags, flags));
 
        if (NULL == resaddr) {
                REQUIRE(NULL == resmask);
                REQUIRE(RESTRICT_FLAGS == op);
                restrict_source_flags = flags;
                restrict_source_mflags = mflags;
+               restrict_source_ippeerlimit = ippeerlimit;
                restrict_source_enabled = 1;
                return;
        }
@@ -639,7 +642,7 @@ restrict_source(
        SET_HOSTMASK(&onesmask, AF(addr));
        if (farewell) {
                hack_restrict(RESTRICT_REMOVE, addr, &onesmask,
-                             0, 0, 0);
+                             -2, 0, 0, 0);
                DPRINTF(1, ("restrict_source: %s removed", stoa(addr)));
                return;
        }
@@ -672,8 +675,8 @@ restrict_source(
                return;
 
        hack_restrict(RESTRICT_FLAGS, addr, &onesmask,
-                     restrict_source_mflags, restrict_source_flags,
-                     expire);
+                     restrict_source_ippeerlimit, restrict_source_mflags,
+                     restrict_source_flags, expire);
        DPRINTF(1, ("restrict_source: %s host restriction added\n", 
                    stoa(addr)));
 }
index 01b46c5c60be282d8a9411639fc7627537e86c5e..0cfd31ae5d1fd341363b6b4b7edd4661dbf8df1c 100644 (file)
@@ -269,14 +269,15 @@ offsetof(unused1) = 20
 offsetof(addr6) = 24
 offsetof(mask6) = 40
 
-sizeof(struct conf_restrict) = 48
+sizeof(struct conf_restrict) = 52
 offsetof(addr) = 0
 offsetof(mask) = 4
-offsetof(flags) = 8
-offsetof(mflags) = 10
-offsetof(v6_flag) = 12
-offsetof(addr6) = 16
-offsetof(mask6) = 32
+offsetof(ippeerlimit) = 8
+offsetof(flags) = 10
+offsetof(mflags) = 12
+offsetof(v6_flag) = 16
+offsetof(addr6) = 20
+offsetof(mask6) = 36
 
 sizeof(struct info_monitor_1) = 72
 offsetof(avg_int) = 0
index 7b1a60a049f34c648223c2bab0334ca4b0e63d13..ea1a25d0a281095892a81b48fe4ae4be701bb8b9 100644 (file)
@@ -114,7 +114,7 @@ void test_HackingDefaultRestriction(void)
        sockaddr_u resmask = create_sockaddr_u(AF_INET,
                54321, "0.0.0.0");
 
-       hack_restrict(RESTRICT_FLAGS, &resaddr, &resmask, 0, flags, 0);
+       hack_restrict(RESTRICT_FLAGS, &resaddr, &resmask, -1, 0, flags, 0);
 
        sockaddr_u sockaddr = create_sockaddr_u(AF_INET,
                54321, "111.123.251.124");
@@ -129,7 +129,7 @@ void test_CantRemoveDefaultEntry(void)
        sockaddr_u resaddr = create_sockaddr_u(AF_INET, 54321, "0.0.0.0");
        sockaddr_u resmask = create_sockaddr_u(AF_INET, 54321, "0.0.0.0");
 
-       hack_restrict(RESTRICT_REMOVE, &resaddr, &resmask, 0, 0, 0);
+       hack_restrict(RESTRICT_REMOVE, &resaddr, &resmask, -1, 0, 0, 0);
 
        TEST_ASSERT_EQUAL(0, restrictions(&resaddr));
 }
@@ -143,7 +143,7 @@ void test_AddingNewRestriction(void)
 
        const u_short flags = 42;
 
-       hack_restrict(RESTRICT_FLAGS, &resaddr, &resmask, 0, flags, 0);
+       hack_restrict(RESTRICT_FLAGS, &resaddr, &resmask, -1, 0, flags, 0);
 
        TEST_ASSERT_EQUAL(flags, restrictions(&resaddr));
 }
@@ -164,9 +164,9 @@ void test_TheMostFittingRestrictionIsMatched(void)
        sockaddr_u resaddr_second_match = create_sockaddr_u(AF_INET, 54321, "11.99.33.44");
        sockaddr_u resmask_second_match = create_sockaddr_u(AF_INET, 54321, "255.0.0.0");
 
-       hack_restrict(RESTRICT_FLAGS, &resaddr_not_matching, &resmask_not_matching, 0, 11, 0);
-       hack_restrict(RESTRICT_FLAGS, &resaddr_best_match, &resmask_best_match, 0, 22, 0);
-       hack_restrict(RESTRICT_FLAGS, &resaddr_second_match, &resmask_second_match, 0, 128, 0);
+       hack_restrict(RESTRICT_FLAGS, &resaddr_not_matching, &resmask_not_matching, -1, 0, 11, 0);
+       hack_restrict(RESTRICT_FLAGS, &resaddr_best_match, &resmask_best_match, -1, 0, 22, 0);
+       hack_restrict(RESTRICT_FLAGS, &resaddr_second_match, &resmask_second_match, -1, 0, 128, 0);
 
        TEST_ASSERT_EQUAL(22, restrictions(&resaddr_target));
 }
@@ -186,12 +186,12 @@ void test_DeletedRestrictionIsNotMatched(void)
        sockaddr_u resaddr_second_match = create_sockaddr_u(AF_INET, 54321, "11.99.33.44");
        sockaddr_u resmask_second_match = create_sockaddr_u(AF_INET, 54321, "255.0.0.0");
 
-       hack_restrict(RESTRICT_FLAGS, &resaddr_not_matching, &resmask_not_matching, 0, 11, 0);
-       hack_restrict(RESTRICT_FLAGS, &resaddr_best_match, &resmask_best_match, 0, 22, 0);
-       hack_restrict(RESTRICT_FLAGS, &resaddr_second_match, &resmask_second_match, 0, 128, 0);
+       hack_restrict(RESTRICT_FLAGS, &resaddr_not_matching, &resmask_not_matching, -1, 0, 11, 0);
+       hack_restrict(RESTRICT_FLAGS, &resaddr_best_match, &resmask_best_match, -1, 0, 22, 0);
+       hack_restrict(RESTRICT_FLAGS, &resaddr_second_match, &resmask_second_match, -1, 0, 128, 0);
 
        /* deleting the best match*/
-       hack_restrict(RESTRICT_REMOVE, &resaddr_best_match, &resmask_best_match, 0, 22, 0);
+       hack_restrict(RESTRICT_REMOVE, &resaddr_best_match, &resmask_best_match, -1, 0, 22, 0);
 
        TEST_ASSERT_EQUAL(128, restrictions(&resaddr_target));
 }
@@ -203,9 +203,9 @@ void test_RestrictUnflagWorks(void)
        sockaddr_u resaddr = create_sockaddr_u(AF_INET, 54321, "11.22.30.20");
        sockaddr_u resmask = create_sockaddr_u(AF_INET, 54321, "255.255.0.0");
 
-       hack_restrict(RESTRICT_FLAGS, &resaddr, &resmask, 0, 11, 0);
+       hack_restrict(RESTRICT_FLAGS, &resaddr, &resmask, -1, 0, 11, 0);
 
-       hack_restrict(RESTRICT_UNFLAG, &resaddr, &resmask, 0, 10, 0);
+       hack_restrict(RESTRICT_UNFLAG, &resaddr, &resmask, -1, 0, 10, 0);
 
        TEST_ASSERT_EQUAL(1, restrictions(&resaddr));
 }