]> git.ipfire.org Git - thirdparty/ntp.git/commitdiff
[Bug 2763] Allow different thresholds for forward and backward steps
authorHarlan Stenn <stenn@ntp.org>
Mon, 16 Mar 2015 09:17:42 +0000 (09:17 +0000)
committerHarlan Stenn <stenn@ntp.org>
Mon, 16 Mar 2015 09:17:42 +0000 (09:17 +0000)
bk: 55069fb6vO961KTaK7NWbuV6c69qmA

17 files changed:
ChangeLog
include/ntp.h
include/ntpd.h
ntpd/invoke-ntp.conf.texi
ntpd/keyword-gen-utd
ntpd/keyword-gen.c
ntpd/ntp.conf.5man
ntpd/ntp.conf.5mdoc
ntpd/ntp.conf.def
ntpd/ntp.conf.man.in
ntpd/ntp.conf.mdoc.in
ntpd/ntp_config.c
ntpd/ntp_keyword.h
ntpd/ntp_loopfilter.c
ntpd/ntp_parser.c
ntpd/ntp_parser.h
ntpd/ntp_parser.y

index c0b94ebda0cb54d3710aabab5158c0cc6ee6d9a4..04fb22a9d9d4188e20541d27d216fb2d1f208365 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -7,6 +7,7 @@
 * [Bug 2756] ntpd hangs in startup with gcc 3.3.5 on ARM.
 * [Bug 2757] Quiet compiler warnings.
 * [Bug 2759] Expose nonvolatile/clk_wander_threshold to ntpq.
+* [Bug 2763] Allow different thresholds for forward and backward steps.
 * [Bug 2766] ntp-keygen output files should not be world-readable.
 * [Bug 2767] ntp-keygen -M should symlink to ntp.keys.
 * [Bug 2771] nonvolatile value is documented in wrong units.
index 38343f23a705b75e581a4ca64651c33d9f3c9a1f..0e3bc41f329224895bb9397410bacbc3da53912e 100644 (file)
@@ -713,17 +713,19 @@ struct pkt {
  */
 #define        LOOP_DRIFTINIT          1       /* iniitialize frequency */
 #define        LOOP_KERN_CLEAR         2       /* set initial frequency offset */
-#define LOOP_MAX               3       /* set step offset */
-#define LOOP_PANIC             4       /* set panic offseet */
-#define LOOP_PHI               5       /* set dispersion rate */
-#define LOOP_MINSTEP           6       /* set step timeout */
-#define LOOP_MINPOLL           7       /* set min poll interval (log2 s) */
-#define LOOP_ALLAN             8       /* set minimum Allan intercept */
-#define LOOP_HUFFPUFF          9       /* set huff-n'-puff filter length */
-#define LOOP_FREQ              10      /* set initial frequency */
-#define LOOP_CODEC             11      /* set audio codec frequency */
-#define        LOOP_LEAP               12      /* insert leap after second 23:59 */
-#define        LOOP_TICK               13      /* sim. low precision clock */
+#define LOOP_MAX               3       /* set both step offsets */
+#define LOOP_MAX_BACK          4       /* set bacward-step offset */
+#define LOOP_MAX_FWD           5       /* set forward-step offset */
+#define LOOP_PANIC             6       /* set panic offseet */
+#define LOOP_PHI               7       /* set dispersion rate */
+#define LOOP_MINSTEP           8       /* set step timeout */
+#define LOOP_MINPOLL           9       /* set min poll interval (log2 s) */
+#define LOOP_ALLAN             10      /* set minimum Allan intercept */
+#define LOOP_HUFFPUFF          11      /* set huff-n'-puff filter length */
+#define LOOP_FREQ              12      /* set initial frequency */
+#define LOOP_CODEC             13      /* set audio codec frequency */
+#define        LOOP_LEAP               14      /* insert leap after second 23:59 */
+#define        LOOP_TICK               15      /* sim. low precision clock */
 
 /*
  * Configuration items for the stats printer
index 77fe4843a654107d4114334301a2b3800dbbbe6b..9f07e4ef726105580b55439ebb52478a35191e97 100644 (file)
@@ -385,7 +385,8 @@ extern endpt *      ep_list;                /* linked list */
 /* ntp_loopfilter.c */
 extern double  drift_comp;             /* clock frequency (s/s) */
 extern double  clock_stability;        /* clock stability (s/s) */
-extern double  clock_max;              /* max offset before step (s) */
+extern double  clock_max_back;         /* max backward offset before step (s) */
+extern double  clock_max_fwd;          /* max forward offset before step (s) */
 extern double  clock_panic;            /* max offset before panic (s) */
 extern double  clock_phi;              /* dispersion rate (s/s) */
 extern double  clock_minstep;          /* step timeout (s) */
index 23569fc52f6f5e3b92d9b12985e26012a2b9ff81..89bf81ef43095ced057b25cddf60d7dfd783de5f 100644 (file)
@@ -6,7 +6,7 @@
 #
 # EDIT THIS FILE WITH CAUTION  (invoke-ntp.conf.texi)
 #
-# It has been AutoGen-ed  February  4, 2015 at 02:41:59 AM by AutoGen 5.18.5pre4
+# It has been AutoGen-ed  March 16, 2015 at 09:02:47 AM by AutoGen 5.18.5pre6
 # From the definitions    ntp.conf.def
 # and the template file   agtexi-file.tpl
 @end ignore
@@ -2482,7 +2482,7 @@ holds
 the names of all peer variables and the
 @code{clock_var_list}
 holds the names of the reference clock variables.
-@item @code{tinker} @code{[@code{allan} @kbd{allan} | @code{dispersion} @kbd{dispersion} | @code{freq} @kbd{freq} | @code{huffpuff} @kbd{huffpuff} | @code{panic} @kbd{panic} | @code{step} @kbd{srep} | @code{stepout} @kbd{stepout}]}
+@item @code{tinker} @code{[@code{allan} @kbd{allan} | @code{dispersion} @kbd{dispersion} | @code{freq} @kbd{freq} | @code{huffpuff} @kbd{huffpuff} | @code{panic} @kbd{panic} | @code{step} @kbd{step} | @code{stepback} @kbd{stepback} | @code{stepfwd} @kbd{stepfwd} | @code{stepout} @kbd{stepout}]}
 This command can be used to alter several system variables in
 very exceptional circumstances.
 It should occur in the
@@ -2539,6 +2539,19 @@ adjustments will never occur.
 Note: The kernel time discipline is
 disabled if the step threshold is set to zero or greater than the
 default.
+@item @code{stepback} @kbd{stepback}
+The argument is the step threshold for the backward direction,
+which by default is 0.128 s.
+It can
+be set to any positive number in seconds.
+If both the forward and backward step thresholds are set to zero, step
+adjustments will never occur.
+Note: The kernel time discipline is
+disabled if
+each direction of step threshold are either
+set to zero or greater than .5 second.
+@item @code{stepfwd} @kbd{stepfwd}
+As for stepback, but for the forward direction.
 @item @code{stepout} @kbd{stepout}
 The argument is the stepout timeout, which by default is 900 s.
 It can
index 0485feecca0cfb3702337020dbc339665cb7dc25..b9b59bd4739f1ac232a0d409aae9b481bd74631d 100644 (file)
@@ -1 +1 @@
- *      Generated 2015-01-03 23:51:10 UTC        diff_ignore_line
+ *      Generated 2015-03-16 09:05:44 UTC        diff_ignore_line
index bb593aba2e20b9f50caab456829856ae28891d1f..5872e2a5cc1f628b909990f76e4c5cd374b0a326 100644 (file)
@@ -206,6 +206,8 @@ struct key_tok ntp_keywords[] = {
 { "filenum",           T_Filenum,              FOLLBY_TOKEN },
 /* tinker_option */
 { "step",              T_Step,                 FOLLBY_TOKEN },
+{ "stepback",          T_Stepback,             FOLLBY_TOKEN },
+{ "stepfwd",           T_Stepfwd,              FOLLBY_TOKEN },
 { "panic",             T_Panic,                FOLLBY_TOKEN },
 { "dispersion",                T_Dispersion,           FOLLBY_TOKEN },
 { "stepout",           T_Stepout,              FOLLBY_TOKEN },
index 1e9ba668fe4df5eed90bd34dcea5326418cf8bd5..7d842c53042c28db1d5f5ea9da93528d1a8f68d1 100644 (file)
 .ds B-Font B
 .ds I-Font I
 .ds R-Font R
-.TH ntp.conf 5man "04 Feb 2015" "4.2.8p1" "File Formats"
+.TH ntp.conf 5man "16 Mar 2015" "4.2.8p1" "File Formats"
 .\"
-.\" EDIT THIS FILE WITH CAUTION (/tmp/.ag-sPaOCn/ag-RPaGBn)
+.\" EDIT THIS FILE WITH CAUTION (in-mem file)
 .\"
-.\" It has been AutoGen-ed February 4, 2015 at 02:41:46 AM by AutoGen 5.18.5pre4
+.\" It has been AutoGen-ed March 16, 2015 at 09:02:50 AM by AutoGen 5.18.5pre6
 .\" From the definitions ntp.conf.def
 .\" and the template file agman-cmd.tpl
 .SH NAME
@@ -2786,7 +2786,7 @@ the names of all peer variables and the
 \fIclock_var_list\f[]
 holds the names of the reference clock variables.
 .TP 7
-.NOP \f\*[B-Font]tinker\f[] [\f\*[B-Font]allan\f[] \f\*[I-Font]allan\f[] | \f\*[B-Font]dispersion\f[] \f\*[I-Font]dispersion\f[] | \f\*[B-Font]freq\f[] \f\*[I-Font]freq\f[] | \f\*[B-Font]huffpuff\f[] \f\*[I-Font]huffpuff\f[] | \f\*[B-Font]panic\f[] \f\*[I-Font]panic\f[] | \f\*[B-Font]step\f[] \f\*[I-Font]srep\f[] | \f\*[B-Font]stepout\f[] \f\*[I-Font]stepout\f[]]
+.NOP \f\*[B-Font]tinker\f[] [\f\*[B-Font]allan\f[] \f\*[I-Font]allan\f[] | \f\*[B-Font]dispersion\f[] \f\*[I-Font]dispersion\f[] | \f\*[B-Font]freq\f[] \f\*[I-Font]freq\f[] | \f\*[B-Font]huffpuff\f[] \f\*[I-Font]huffpuff\f[] | \f\*[B-Font]panic\f[] \f\*[I-Font]panic\f[] | \f\*[B-Font]step\f[] \f\*[I-Font]step\f[] | \f\*[B-Font]stepback\f[] \f\*[I-Font]stepback\f[] | \f\*[B-Font]stepfwd\f[] \f\*[I-Font]stepfwd\f[] | \f\*[B-Font]stepout\f[] \f\*[I-Font]stepout\f[]]
 This command can be used to alter several system variables in
 very exceptional circumstances.
 It should occur in the
@@ -2852,6 +2852,21 @@ Note: The kernel time discipline is
 disabled if the step threshold is set to zero or greater than the
 default.
 .TP 7
+.NOP \f\*[B-Font]stepback\f[] \f\*[I-Font]stepback\f[]
+The argument is the step threshold for the backward direction,
+which by default is 0.128 s.
+It can
+be set to any positive number in seconds.
+If both the forward and backward step thresholds are set to zero, step
+adjustments will never occur.
+Note: The kernel time discipline is
+disabled if
+each direction of step threshold are either
+set to zero or greater than .5 second.
+.TP 7
+.NOP \f\*[B-Font]stepfwd\f[] \f\*[I-Font]stepfwd\f[]
+As for stepback, but for the forward direction.
+.TP 7
 .NOP \f\*[B-Font]stepout\f[] \f\*[I-Font]stepout\f[]
 The argument is the stepout timeout, which by default is 900 s.
 It can
index 069a543cf2ea9ff9e4d2977a984285ecb7bc3c0e..8e95c6f83b3c0da090fafb3a25e0998c9e487050 100644 (file)
@@ -1,9 +1,9 @@
-.Dd February 4 2015
+.Dd March 16 2015
 .Dt NTP_CONF 5mdoc File Formats
 .Os
 .\"  EDIT THIS FILE WITH CAUTION  (ntp.mdoc)
 .\"
-.\"  It has been AutoGen-ed  February  4, 2015 at 02:42:07 AM by AutoGen 5.18.5pre4
+.\"  It has been AutoGen-ed  March 16, 2015 at 09:02:31 AM by AutoGen 5.18.5pre6
 .\"  From the definitions    ntp.conf.def
 .\"  and the template file   agmdoc-cmd.tpl
 .Sh NAME
@@ -2618,7 +2618,9 @@ holds the names of the reference clock variables.
 .Cm freq Ar freq |
 .Cm huffpuff Ar huffpuff |
 .Cm panic Ar panic |
-.Cm step Ar srep |
+.Cm step Ar step |
+.Cm stepback Ar stepback |
+.Cm stepfwd Ar stepfwd |
 .Cm stepout Ar stepout
 .Oc
 .Xc
@@ -2678,6 +2680,19 @@ adjustments will never occur.
 Note: The kernel time discipline is
 disabled if the step threshold is set to zero or greater than the
 default.
+.It Cm stepback Ar stepback
+The argument is the step threshold for the backward direction,
+which by default is 0.128 s.
+It can
+be set to any positive number in seconds.
+If both the forward and backward step thresholds are set to zero, step
+adjustments will never occur.
+Note: The kernel time discipline is
+disabled if
+each direction of step threshold are either
+set to zero or greater than .5 second.
+.It Cm stepfwd Ar stepfwd
+As for stepback, but for the forward direction.
 .It Cm stepout Ar stepout
 The argument is the stepout timeout, which by default is 900 s.
 It can
index 6f0bae12b3f56e3de16d8d317b1934d40d270cb2..e5c44b7565c77ee7251567cfd95abfa6a81670e4 100644 (file)
@@ -2620,7 +2620,9 @@ holds the names of the reference clock variables.
 .Cm freq Ar freq |
 .Cm huffpuff Ar huffpuff |
 .Cm panic Ar panic |
-.Cm step Ar srep |
+.Cm step Ar step |
+.Cm stepback Ar stepback |
+.Cm stepfwd Ar stepfwd |
 .Cm stepout Ar stepout
 .Oc
 .Xc
@@ -2680,6 +2682,19 @@ adjustments will never occur.
 Note: The kernel time discipline is
 disabled if the step threshold is set to zero or greater than the
 default.
+.It Cm stepback Ar stepback
+The argument is the step threshold for the backward direction,
+which by default is 0.128 s.
+It can
+be set to any positive number in seconds.
+If both the forward and backward step thresholds are set to zero, step
+adjustments will never occur.
+Note: The kernel time discipline is
+disabled if
+each direction of step threshold are either
+set to zero or greater than .5 second.
+.It Cm stepfwd Ar stepfwd
+As for stepback, but for the forward direction.
 .It Cm stepout Ar stepout
 The argument is the stepout timeout, which by default is 900 s.
 It can
index ec2c866c750a0f0bf579d893c78abd1a3eaf7b80..21035bb500b1a9b1826a8afb39a84c3a55ae7f9f 100644 (file)
 .ds B-Font B
 .ds I-Font I
 .ds R-Font R
-.TH ntp.conf 5 "04 Feb 2015" "4.2.8p1" "File Formats"
+.TH ntp.conf 5 "16 Mar 2015" "4.2.8p1" "File Formats"
 .\"
-.\" EDIT THIS FILE WITH CAUTION (/tmp/.ag-sPaOCn/ag-RPaGBn)
+.\" EDIT THIS FILE WITH CAUTION (in-mem file)
 .\"
-.\" It has been AutoGen-ed February 4, 2015 at 02:41:46 AM by AutoGen 5.18.5pre4
+.\" It has been AutoGen-ed March 16, 2015 at 09:02:50 AM by AutoGen 5.18.5pre6
 .\" From the definitions ntp.conf.def
 .\" and the template file agman-cmd.tpl
 .SH NAME
@@ -2786,7 +2786,7 @@ the names of all peer variables and the
 \fIclock_var_list\f[]
 holds the names of the reference clock variables.
 .TP 7
-.NOP \f\*[B-Font]tinker\f[] [\f\*[B-Font]allan\f[] \f\*[I-Font]allan\f[] | \f\*[B-Font]dispersion\f[] \f\*[I-Font]dispersion\f[] | \f\*[B-Font]freq\f[] \f\*[I-Font]freq\f[] | \f\*[B-Font]huffpuff\f[] \f\*[I-Font]huffpuff\f[] | \f\*[B-Font]panic\f[] \f\*[I-Font]panic\f[] | \f\*[B-Font]step\f[] \f\*[I-Font]srep\f[] | \f\*[B-Font]stepout\f[] \f\*[I-Font]stepout\f[]]
+.NOP \f\*[B-Font]tinker\f[] [\f\*[B-Font]allan\f[] \f\*[I-Font]allan\f[] | \f\*[B-Font]dispersion\f[] \f\*[I-Font]dispersion\f[] | \f\*[B-Font]freq\f[] \f\*[I-Font]freq\f[] | \f\*[B-Font]huffpuff\f[] \f\*[I-Font]huffpuff\f[] | \f\*[B-Font]panic\f[] \f\*[I-Font]panic\f[] | \f\*[B-Font]step\f[] \f\*[I-Font]step\f[] | \f\*[B-Font]stepback\f[] \f\*[I-Font]stepback\f[] | \f\*[B-Font]stepfwd\f[] \f\*[I-Font]stepfwd\f[] | \f\*[B-Font]stepout\f[] \f\*[I-Font]stepout\f[]]
 This command can be used to alter several system variables in
 very exceptional circumstances.
 It should occur in the
@@ -2852,6 +2852,21 @@ Note: The kernel time discipline is
 disabled if the step threshold is set to zero or greater than the
 default.
 .TP 7
+.NOP \f\*[B-Font]stepback\f[] \f\*[I-Font]stepback\f[]
+The argument is the step threshold for the backward direction,
+which by default is 0.128 s.
+It can
+be set to any positive number in seconds.
+If both the forward and backward step thresholds are set to zero, step
+adjustments will never occur.
+Note: The kernel time discipline is
+disabled if
+each direction of step threshold are either
+set to zero or greater than .5 second.
+.TP 7
+.NOP \f\*[B-Font]stepfwd\f[] \f\*[I-Font]stepfwd\f[]
+As for stepback, but for the forward direction.
+.TP 7
 .NOP \f\*[B-Font]stepout\f[] \f\*[I-Font]stepout\f[]
 The argument is the stepout timeout, which by default is 900 s.
 It can
index ec45a749c3a04b9521a2c8e6a37dbc5701b9a777..026731a095c35724f7400eaabfcaa593b6344541 100644 (file)
@@ -1,9 +1,9 @@
-.Dd February 4 2015
+.Dd March 16 2015
 .Dt NTP_CONF 5 File Formats
 .Os
 .\"  EDIT THIS FILE WITH CAUTION  (ntp.mdoc)
 .\"
-.\"  It has been AutoGen-ed  February  4, 2015 at 02:42:07 AM by AutoGen 5.18.5pre4
+.\"  It has been AutoGen-ed  March 16, 2015 at 09:02:31 AM by AutoGen 5.18.5pre6
 .\"  From the definitions    ntp.conf.def
 .\"  and the template file   agmdoc-cmd.tpl
 .Sh NAME
@@ -2618,7 +2618,9 @@ holds the names of the reference clock variables.
 .Cm freq Ar freq |
 .Cm huffpuff Ar huffpuff |
 .Cm panic Ar panic |
-.Cm step Ar srep |
+.Cm step Ar step |
+.Cm stepback Ar stepback |
+.Cm stepfwd Ar stepfwd |
 .Cm stepout Ar stepout
 .Oc
 .Xc
@@ -2678,6 +2680,19 @@ adjustments will never occur.
 Note: The kernel time discipline is
 disabled if the step threshold is set to zero or greater than the
 default.
+.It Cm stepback Ar stepback
+The argument is the step threshold for the backward direction,
+which by default is 0.128 s.
+It can
+be set to any positive number in seconds.
+If both the forward and backward step thresholds are set to zero, step
+adjustments will never occur.
+Note: The kernel time discipline is
+disabled if
+each direction of step threshold are either
+set to zero or greater than .5 second.
+.It Cm stepfwd Ar stepfwd
+As for stepback, but for the forward direction.
 .It Cm stepout Ar stepout
 The argument is the stepout timeout, which by default is 900 s.
 It can
index b9f0e24e3ee1ae3aad7b4177a4738c6fce9adf15..a224579d1cce92991e86640f8658ac0d37466fa8 100644 (file)
@@ -2705,6 +2705,14 @@ config_tinker(
                        item = LOOP_MAX;
                        break;
 
+               case T_Stepback:
+                       item = LOOP_MAX_BACK;
+                       break;
+
+               case T_Stepfwd:
+                       item = LOOP_MAX_FWD;
+                       break;
+
                case T_Stepout:
                        item = LOOP_MINSTEP;
                        break;
index 131cf0fab1f9ed3210da9dca19a71460b5fa058f..723793636b7e6b38bec410136d6f72c395962a49 100644 (file)
@@ -2,7 +2,7 @@
  * ntp_keyword.h
  * 
  * NOTE: edit this file with caution, it is generated by keyword-gen.c
- *      Generated 2015-01-03 23:51:10 UTC        diff_ignore_line
+ *      Generated 2015-03-16 09:05:44 UTC        diff_ignore_line
  *
  */
 #include "ntp_scanner.h"
@@ -10,7 +10,7 @@
 
 #define LOWEST_KEYWORD_ID 258
 
-const char * const keyword_text[187] = {
+const char * const keyword_text[189] = {
        /* 0       258             T_Abbrev */  "abbrev",
        /* 1       259                T_Age */  "age",
        /* 2       260                T_All */  "all",
@@ -160,49 +160,51 @@ const char * const keyword_text[187] = {
        /* 146     404              T_Stats */  "stats",
        /* 147     405           T_Statsdir */  "statsdir",
        /* 148     406               T_Step */  "step",
-       /* 149     407            T_Stepout */  "stepout",
-       /* 150     408            T_Stratum */  "stratum",
-       /* 151     409             T_String */  NULL,
-       /* 152     410                T_Sys */  "sys",
-       /* 153     411           T_Sysstats */  "sysstats",
-       /* 154     412               T_Tick */  "tick",
-       /* 155     413              T_Time1 */  "time1",
-       /* 156     414              T_Time2 */  "time2",
-       /* 157     415              T_Timer */  "timer",
-       /* 158     416        T_Timingstats */  "timingstats",
-       /* 159     417             T_Tinker */  "tinker",
-       /* 160     418                T_Tos */  "tos",
-       /* 161     419               T_Trap */  "trap",
-       /* 162     420               T_True */  "true",
-       /* 163     421         T_Trustedkey */  "trustedkey",
-       /* 164     422                T_Ttl */  "ttl",
-       /* 165     423               T_Type */  "type",
-       /* 166     424              T_U_int */  NULL,
-       /* 167     425           T_Unconfig */  "unconfig",
-       /* 168     426             T_Unpeer */  "unpeer",
-       /* 169     427            T_Version */  "version",
-       /* 170     428    T_WanderThreshold */  NULL,
-       /* 171     429               T_Week */  "week",
-       /* 172     430           T_Wildcard */  "wildcard",
-       /* 173     431             T_Xleave */  "xleave",
-       /* 174     432               T_Year */  "year",
-       /* 175     433               T_Flag */  NULL,
-       /* 176     434                T_EOC */  NULL,
-       /* 177     435           T_Simulate */  "simulate",
-       /* 178     436         T_Beep_Delay */  "beep_delay",
-       /* 179     437       T_Sim_Duration */  "simulation_duration",
-       /* 180     438      T_Server_Offset */  "server_offset",
-       /* 181     439           T_Duration */  "duration",
-       /* 182     440        T_Freq_Offset */  "freq_offset",
-       /* 183     441             T_Wander */  "wander",
-       /* 184     442             T_Jitter */  "jitter",
-       /* 185     443         T_Prop_Delay */  "prop_delay",
-       /* 186     444         T_Proc_Delay */  "proc_delay"
+       /* 149     407           T_Stepback */  "stepback",
+       /* 150     408            T_Stepfwd */  "stepfwd",
+       /* 151     409            T_Stepout */  "stepout",
+       /* 152     410            T_Stratum */  "stratum",
+       /* 153     411             T_String */  NULL,
+       /* 154     412                T_Sys */  "sys",
+       /* 155     413           T_Sysstats */  "sysstats",
+       /* 156     414               T_Tick */  "tick",
+       /* 157     415              T_Time1 */  "time1",
+       /* 158     416              T_Time2 */  "time2",
+       /* 159     417              T_Timer */  "timer",
+       /* 160     418        T_Timingstats */  "timingstats",
+       /* 161     419             T_Tinker */  "tinker",
+       /* 162     420                T_Tos */  "tos",
+       /* 163     421               T_Trap */  "trap",
+       /* 164     422               T_True */  "true",
+       /* 165     423         T_Trustedkey */  "trustedkey",
+       /* 166     424                T_Ttl */  "ttl",
+       /* 167     425               T_Type */  "type",
+       /* 168     426              T_U_int */  NULL,
+       /* 169     427           T_Unconfig */  "unconfig",
+       /* 170     428             T_Unpeer */  "unpeer",
+       /* 171     429            T_Version */  "version",
+       /* 172     430    T_WanderThreshold */  NULL,
+       /* 173     431               T_Week */  "week",
+       /* 174     432           T_Wildcard */  "wildcard",
+       /* 175     433             T_Xleave */  "xleave",
+       /* 176     434               T_Year */  "year",
+       /* 177     435               T_Flag */  NULL,
+       /* 178     436                T_EOC */  NULL,
+       /* 179     437           T_Simulate */  "simulate",
+       /* 180     438         T_Beep_Delay */  "beep_delay",
+       /* 181     439       T_Sim_Duration */  "simulation_duration",
+       /* 182     440      T_Server_Offset */  "server_offset",
+       /* 183     441           T_Duration */  "duration",
+       /* 184     442        T_Freq_Offset */  "freq_offset",
+       /* 185     443             T_Wander */  "wander",
+       /* 186     444             T_Jitter */  "jitter",
+       /* 187     445         T_Prop_Delay */  "prop_delay",
+       /* 188     446         T_Proc_Delay */  "proc_delay"
 };
 
-#define SCANNER_INIT_S 830
+#define SCANNER_INIT_S 837
 
-const scan_state sst[833] = {
+const scan_state sst[840] = {
 /*SS_T( ch,    f-by, match, other ),                            */
   0,                                 /*     0                   */
   S_ST( '-',   3,      322,     0 ), /*     1                   */
@@ -248,7 +250,7 @@ const scan_state sst[833] = {
   S_ST( 'd',   3,       42,     0 ), /*    41 beep_             */
   S_ST( 'e',   3,       43,     0 ), /*    42 beep_d            */
   S_ST( 'l',   3,       44,     0 ), /*    43 beep_de           */
-  S_ST( 'a',   3,      436,     0 ), /*    44 beep_del          */
+  S_ST( 'a',   3,      438,     0 ), /*    44 beep_del          */
   S_ST( 'r',   3,       46,    34 ), /*    45 b                 */
   S_ST( 'o',   3,       47,     0 ), /*    46 br                */
   S_ST( 'a',   3,       48,     0 ), /*    47 bro               */
@@ -346,7 +348,7 @@ const scan_state sst[833] = {
   S_ST( 'a',   3,      140,     0 ), /*   139 dur               */
   S_ST( 't',   3,      141,     0 ), /*   140 dura              */
   S_ST( 'i',   3,      142,     0 ), /*   141 durat             */
-  S_ST( 'o',   3,      439,     0 ), /*   142 durati            */
+  S_ST( 'o',   3,      441,     0 ), /*   142 durati            */
   S_ST( 'e',   3,      144,   105 ), /*   143                   */
   S_ST( 'n',   3,      292,     0 ), /*   144 e                 */
   S_ST( 'a',   3,      146,     0 ), /*   145 en                */
@@ -372,7 +374,7 @@ const scan_state sst[833] = {
   S_ST( 'f',   3,      166,     0 ), /*   165 freq_o            */
   S_ST( 'f',   3,      167,     0 ), /*   166 freq_of           */
   S_ST( 's',   3,      168,     0 ), /*   167 freq_off          */
-  S_ST( 'e',   3,      440,     0 ), /*   168 freq_offs         */
+  S_ST( 'e',   3,      442,     0 ), /*   168 freq_offs         */
   S_ST( 'u',   3,      170,   161 ), /*   169 f                 */
   S_ST( 'd',   3,      171,     0 ), /*   170 fu                */
   S_ST( 'g',   3,      304,     0 ), /*   171 fud               */
@@ -432,7 +434,7 @@ const scan_state sst[833] = {
   S_ST( 'i',   3,      226,     0 ), /*   225 j                 */
   S_ST( 't',   3,      227,     0 ), /*   226 ji                */
   S_ST( 't',   3,      228,     0 ), /*   227 jit               */
-  S_ST( 'e',   3,      442,     0 ), /*   228 jitt              */
+  S_ST( 'e',   3,      444,     0 ), /*   228 jitt              */
   S_ST( 'k',   3,      236,   224 ), /*   229                   */
   S_ST( 'e',   3,      324,     0 ), /*   230 k                 */
   S_ST( 'r',   3,      232,     0 ), /*   231 ke                */
@@ -457,7 +459,7 @@ const scan_state sst[833] = {
   S_ST( 's',   3,      251,   249 ), /*   250 li                */
   S_ST( 't',   3,      252,     0 ), /*   251 lis               */
   S_ST( 'e',   3,      332,     0 ), /*   252 list              */
-  S_ST( 'o',   3,      447,   244 ), /*   253 l                 */
+  S_ST( 'o',   3,      449,   244 ), /*   253 l                 */
   S_ST( 'g',   3,      315,     0 ), /*   254 lo                */
   S_ST( 'c',   3,      256,     0 ), /*   255 log               */
   S_ST( 'o',   3,      257,     0 ), /*   256 logc              */
@@ -521,7 +523,7 @@ const scan_state sst[833] = {
   S_ST( 'e',   1,        0,     0 ), /*   314 T_Includefile     */
   S_ST( 'f',   3,      317,   255 ), /*   315 log               */
   S_ST( 'e',   0,        0,     0 ), /*   316 T_Interface       */
-  S_ST( 'i',   3,      409,     0 ), /*   317 logf              */
+  S_ST( 'i',   3,      411,     0 ), /*   317 logf              */
   S_ST( 'o',   0,        0,   193 ), /*   318 T_Io              */
   S_ST( '4',   0,        0,     0 ), /*   319 T_Ipv4            */
   S_ST( '4',   0,        0,     0 ), /*   320 T_Ipv4_flag       */
@@ -551,7 +553,7 @@ const scan_state sst[833] = {
   S_ST( 'm',   0,        0,     0 ), /*   344 T_Maxmem          */
   S_ST( 'l',   0,        0,     0 ), /*   345 T_Maxpoll         */
   S_ST( 's',   0,        0,     0 ), /*   346 T_Mdnstries       */
-  S_ST( 'm',   0,      500,     0 ), /*   347 T_Mem             */
+  S_ST( 'm',   0,      502,     0 ), /*   347 T_Mem             */
   S_ST( 'k',   0,        0,     0 ), /*   348 T_Memlock         */
   S_ST( 'k',   0,        0,     0 ), /*   349 T_Minclock        */
   S_ST( 'h',   0,        0,     0 ), /*   350 T_Mindepth        */
@@ -577,23 +579,23 @@ const scan_state sst[833] = {
   S_ST( 'e',   0,        0,     0 ), /*   370 T_Noserve         */
   S_ST( 'p',   0,        0,     0 ), /*   371 T_Notrap          */
   S_ST( 't',   0,        0,     0 ), /*   372 T_Notrust         */
-  S_ST( 'p',   0,      596,     0 ), /*   373 T_Ntp             */
+  S_ST( 'p',   0,      598,     0 ), /*   373 T_Ntp             */
   S_ST( 't',   0,        0,     0 ), /*   374 T_Ntpport         */
   S_ST( 't',   1,        0,     0 ), /*   375 T_NtpSignDsocket  */
-  S_ST( 'n',   0,      611,     0 ), /*   376 T_Orphan          */
+  S_ST( 'n',   0,      613,     0 ), /*   376 T_Orphan          */
   S_ST( 't',   0,        0,     0 ), /*   377 T_Orphanwait      */
   S_ST( 'c',   0,        0,     0 ), /*   378 T_Panic           */
-  S_ST( 'r',   1,      620,     0 ), /*   379 T_Peer            */
+  S_ST( 'r',   1,      622,     0 ), /*   379 T_Peer            */
   S_ST( 's',   0,        0,     0 ), /*   380 T_Peerstats       */
   S_ST( 'e',   2,        0,     0 ), /*   381 T_Phone           */
-  S_ST( 'd',   0,      628,     0 ), /*   382 T_Pid             */
+  S_ST( 'd',   0,      630,     0 ), /*   382 T_Pid             */
   S_ST( 'e',   1,        0,     0 ), /*   383 T_Pidfile         */
   S_ST( 'l',   1,        0,     0 ), /*   384 T_Pool            */
   S_ST( 't',   0,        0,     0 ), /*   385 T_Port            */
   S_ST( 't',   0,        0,     0 ), /*   386 T_Preempt         */
   S_ST( 'r',   0,        0,     0 ), /*   387 T_Prefer          */
   S_ST( 's',   0,        0,     0 ), /*   388 T_Protostats      */
-  S_ST( 'w',   1,        0,   634 ), /*   389 T_Pw              */
+  S_ST( 'w',   1,        0,   636 ), /*   389 T_Pw              */
   S_ST( 'e',   1,        0,     0 ), /*   390 T_Randfile        */
   S_ST( 's',   0,        0,     0 ), /*   391 T_Rawstats        */
   S_ST( 'd',   1,        0,     0 ), /*   392 T_Refid           */
@@ -603,439 +605,446 @@ const scan_state sst[833] = {
   S_ST( 'e',   0,        0,     0 ), /*   396 T_Revoke          */
   S_ST( 't',   0,        0,     0 ), /*   397 T_Rlimit          */
   S_ST( 'r',   1,        0,     0 ), /*   398 T_Saveconfigdir   */
-  S_ST( 'r',   1,      711,     0 ), /*   399 T_Server          */
+  S_ST( 'r',   1,      713,     0 ), /*   399 T_Server          */
   S_ST( 'r',   1,        0,     0 ), /*   400 T_Setvar          */
   S_ST( 'e',   0,        0,     0 ), /*   401 T_Source          */
   S_ST( 'e',   0,        0,     0 ), /*   402 T_Stacksize       */
   S_ST( 's',   0,        0,     0 ), /*   403 T_Statistics      */
-  S_ST( 's',   0,      754,   749 ), /*   404 T_Stats           */
+  S_ST( 's',   0,      756,   751 ), /*   404 T_Stats           */
   S_ST( 'r',   1,        0,     0 ), /*   405 T_Statsdir        */
-  S_ST( 'p',   0,      757,     0 ), /*   406 T_Step            */
-  S_ST( 't',   0,        0,     0 ), /*   407 T_Stepout         */
-  S_ST( 'm',   0,        0,     0 ), /*   408 T_Stratum         */
-  S_ST( 'l',   3,      334,     0 ), /*   409 logfi             */
-  S_ST( 's',   0,      764,     0 ), /*   410 T_Sys             */
-  S_ST( 's',   0,        0,     0 ), /*   411 T_Sysstats        */
-  S_ST( 'k',   0,        0,     0 ), /*   412 T_Tick            */
-  S_ST( '1',   0,        0,     0 ), /*   413 T_Time1           */
-  S_ST( '2',   0,        0,   413 ), /*   414 T_Time2           */
-  S_ST( 'r',   0,        0,   414 ), /*   415 T_Timer           */
-  S_ST( 's',   0,        0,     0 ), /*   416 T_Timingstats     */
-  S_ST( 'r',   0,        0,     0 ), /*   417 T_Tinker          */
-  S_ST( 's',   0,        0,     0 ), /*   418 T_Tos             */
-  S_ST( 'p',   1,        0,     0 ), /*   419 T_Trap            */
-  S_ST( 'e',   0,        0,     0 ), /*   420 T_True            */
-  S_ST( 'y',   0,        0,     0 ), /*   421 T_Trustedkey      */
-  S_ST( 'l',   0,        0,     0 ), /*   422 T_Ttl             */
-  S_ST( 'e',   0,        0,     0 ), /*   423 T_Type            */
-  S_ST( 'o',   3,      428,   254 ), /*   424 lo                */
-  S_ST( 'g',   1,        0,     0 ), /*   425 T_Unconfig        */
-  S_ST( 'r',   1,        0,     0 ), /*   426 T_Unpeer          */
-  S_ST( 'n',   0,        0,     0 ), /*   427 T_Version         */
-  S_ST( 'p',   3,      433,     0 ), /*   428 loo               */
-  S_ST( 'k',   0,        0,     0 ), /*   429 T_Week            */
-  S_ST( 'd',   0,        0,     0 ), /*   430 T_Wildcard        */
-  S_ST( 'e',   0,        0,     0 ), /*   431 T_Xleave          */
-  S_ST( 'r',   0,        0,     0 ), /*   432 T_Year            */
-  S_ST( 's',   3,      434,     0 ), /*   433 loop              */
-  S_ST( 't',   3,      445,     0 ), /*   434 loops             */
-  S_ST( 'e',   0,        0,     0 ), /*   435 T_Simulate        */
-  S_ST( 'y',   0,        0,     0 ), /*   436 T_Beep_Delay      */
-  S_ST( 'n',   0,        0,     0 ), /*   437 T_Sim_Duration    */
-  S_ST( 't',   0,        0,     0 ), /*   438 T_Server_Offset   */
-  S_ST( 'n',   0,        0,     0 ), /*   439 T_Duration        */
-  S_ST( 't',   0,        0,     0 ), /*   440 T_Freq_Offset     */
-  S_ST( 'r',   0,        0,     0 ), /*   441 T_Wander          */
-  S_ST( 'r',   0,        0,     0 ), /*   442 T_Jitter          */
-  S_ST( 'y',   0,        0,     0 ), /*   443 T_Prop_Delay      */
-  S_ST( 'y',   0,        0,     0 ), /*   444 T_Proc_Delay      */
-  S_ST( 'a',   3,      446,     0 ), /*   445 loopst            */
-  S_ST( 't',   3,      335,     0 ), /*   446 loopsta           */
-  S_ST( 'w',   3,      448,   424 ), /*   447 lo                */
-  S_ST( 'p',   3,      449,     0 ), /*   448 low               */
-  S_ST( 'r',   3,      450,     0 ), /*   449 lowp              */
-  S_ST( 'i',   3,      451,     0 ), /*   450 lowpr             */
-  S_ST( 'o',   3,      452,     0 ), /*   451 lowpri            */
-  S_ST( 't',   3,      453,     0 ), /*   452 lowprio           */
-  S_ST( 'r',   3,      454,     0 ), /*   453 lowpriot          */
-  S_ST( 'a',   3,      336,     0 ), /*   454 lowpriotr         */
-  S_ST( 'm',   3,      536,   237 ), /*   455                   */
-  S_ST( 'a',   3,      474,     0 ), /*   456 m                 */
-  S_ST( 'n',   3,      458,     0 ), /*   457 ma                */
-  S_ST( 'y',   3,      459,     0 ), /*   458 man               */
-  S_ST( 'c',   3,      460,     0 ), /*   459 many              */
-  S_ST( 'a',   3,      461,     0 ), /*   460 manyc             */
-  S_ST( 's',   3,      462,     0 ), /*   461 manyca            */
-  S_ST( 't',   3,      468,     0 ), /*   462 manycas           */
-  S_ST( 'c',   3,      464,     0 ), /*   463 manycast          */
-  S_ST( 'l',   3,      465,     0 ), /*   464 manycastc         */
-  S_ST( 'i',   3,      466,     0 ), /*   465 manycastcl        */
-  S_ST( 'e',   3,      467,     0 ), /*   466 manycastcli       */
-  S_ST( 'n',   3,      337,     0 ), /*   467 manycastclie      */
-  S_ST( 's',   3,      469,   463 ), /*   468 manycast          */
-  S_ST( 'e',   3,      470,     0 ), /*   469 manycasts         */
-  S_ST( 'r',   3,      471,     0 ), /*   470 manycastse        */
-  S_ST( 'v',   3,      472,     0 ), /*   471 manycastser       */
-  S_ST( 'e',   3,      338,     0 ), /*   472 manycastserv      */
-  S_ST( 's',   3,      339,   457 ), /*   473 ma                */
-  S_ST( 'x',   3,      489,   473 ), /*   474 ma                */
-  S_ST( 'a',   3,      476,     0 ), /*   475 max               */
-  S_ST( 'g',   3,      340,     0 ), /*   476 maxa              */
-  S_ST( 'c',   3,      478,   475 ), /*   477 max               */
-  S_ST( 'l',   3,      479,     0 ), /*   478 maxc              */
-  S_ST( 'o',   3,      480,     0 ), /*   479 maxcl             */
-  S_ST( 'c',   3,      341,     0 ), /*   480 maxclo            */
-  S_ST( 'd',   3,      485,   477 ), /*   481 max               */
-  S_ST( 'e',   3,      483,     0 ), /*   482 maxd              */
-  S_ST( 'p',   3,      484,     0 ), /*   483 maxde             */
-  S_ST( 't',   3,      342,     0 ), /*   484 maxdep            */
-  S_ST( 'i',   3,      486,   482 ), /*   485 maxd              */
-  S_ST( 's',   3,      343,     0 ), /*   486 maxdi             */
-  S_ST( 'm',   3,      488,   481 ), /*   487 max               */
-  S_ST( 'e',   3,      344,     0 ), /*   488 maxm              */
-  S_ST( 'p',   3,      490,   487 ), /*   489 max               */
-  S_ST( 'o',   3,      491,     0 ), /*   490 maxp              */
-  S_ST( 'l',   3,      345,     0 ), /*   491 maxpo             */
-  S_ST( 'd',   3,      493,   456 ), /*   492 m                 */
-  S_ST( 'n',   3,      494,     0 ), /*   493 md                */
-  S_ST( 's',   3,      495,     0 ), /*   494 mdn               */
-  S_ST( 't',   3,      496,     0 ), /*   495 mdns              */
-  S_ST( 'r',   3,      497,     0 ), /*   496 mdnst             */
-  S_ST( 'i',   3,      498,     0 ), /*   497 mdnstr            */
-  S_ST( 'e',   3,      346,     0 ), /*   498 mdnstri           */
-  S_ST( 'e',   3,      347,   492 ), /*   499 m                 */
-  S_ST( 'l',   3,      501,     0 ), /*   500 mem               */
-  S_ST( 'o',   3,      502,     0 ), /*   501 meml              */
-  S_ST( 'c',   3,      348,     0 ), /*   502 memlo             */
-  S_ST( 'i',   3,      504,   499 ), /*   503 m                 */
-  S_ST( 'n',   3,      521,     0 ), /*   504 mi                */
-  S_ST( 'c',   3,      506,     0 ), /*   505 min               */
-  S_ST( 'l',   3,      507,     0 ), /*   506 minc              */
-  S_ST( 'o',   3,      508,     0 ), /*   507 mincl             */
-  S_ST( 'c',   3,      349,     0 ), /*   508 minclo            */
-  S_ST( 'd',   3,      513,   505 ), /*   509 min               */
-  S_ST( 'e',   3,      511,     0 ), /*   510 mind              */
-  S_ST( 'p',   3,      512,     0 ), /*   511 minde             */
-  S_ST( 't',   3,      350,     0 ), /*   512 mindep            */
-  S_ST( 'i',   3,      514,   510 ), /*   513 mind              */
-  S_ST( 's',   3,      351,     0 ), /*   514 mindi             */
-  S_ST( 'i',   3,      516,   509 ), /*   515 min               */
-  S_ST( 'm',   3,      517,     0 ), /*   516 mini              */
-  S_ST( 'u',   3,      352,     0 ), /*   517 minim             */
-  S_ST( 'p',   3,      519,   515 ), /*   518 min               */
-  S_ST( 'o',   3,      520,     0 ), /*   519 minp              */
-  S_ST( 'l',   3,      353,     0 ), /*   520 minpo             */
-  S_ST( 's',   3,      522,   518 ), /*   521 min               */
-  S_ST( 'a',   3,      523,     0 ), /*   522 mins              */
-  S_ST( 'n',   3,      354,     0 ), /*   523 minsa             */
-  S_ST( 'o',   3,      526,   503 ), /*   524 m                 */
-  S_ST( 'd',   3,      355,     0 ), /*   525 mo                */
-  S_ST( 'n',   3,      530,   525 ), /*   526 mo                */
-  S_ST( 'i',   3,      528,     0 ), /*   527 mon               */
-  S_ST( 't',   3,      529,     0 ), /*   528 moni              */
-  S_ST( 'o',   3,      357,     0 ), /*   529 monit             */
-  S_ST( 't',   3,      358,   527 ), /*   530 mon               */
-  S_ST( 'r',   3,      359,   524 ), /*   531 m                 */
-  S_ST( 's',   3,      533,   531 ), /*   532 m                 */
-  S_ST( 's',   3,      534,     0 ), /*   533 ms                */
-  S_ST( 'n',   3,      535,     0 ), /*   534 mss               */
-  S_ST( 't',   3,      328,     0 ), /*   535 mssn              */
-  S_ST( 'u',   3,      537,   532 ), /*   536 m                 */
-  S_ST( 'l',   3,      538,     0 ), /*   537 mu                */
-  S_ST( 't',   3,      539,     0 ), /*   538 mul               */
-  S_ST( 'i',   3,      540,     0 ), /*   539 mult              */
-  S_ST( 'c',   3,      541,     0 ), /*   540 multi             */
-  S_ST( 'a',   3,      542,     0 ), /*   541 multic            */
-  S_ST( 's',   3,      543,     0 ), /*   542 multica           */
-  S_ST( 't',   3,      544,     0 ), /*   543 multicas          */
-  S_ST( 'c',   3,      545,     0 ), /*   544 multicast         */
-  S_ST( 'l',   3,      546,     0 ), /*   545 multicastc        */
-  S_ST( 'i',   3,      547,     0 ), /*   546 multicastcl       */
-  S_ST( 'e',   3,      548,     0 ), /*   547 multicastcli      */
-  S_ST( 'n',   3,      360,     0 ), /*   548 multicastclie     */
-  S_ST( 'n',   3,      592,   455 ), /*   549                   */
-  S_ST( 'i',   3,      361,     0 ), /*   550 n                 */
-  S_ST( 'o',   3,      587,   550 ), /*   551 n                 */
-  S_ST( 'l',   3,      553,     0 ), /*   552 no                */
-  S_ST( 'i',   3,      554,     0 ), /*   553 nol               */
-  S_ST( 'n',   3,      362,     0 ), /*   554 noli              */
-  S_ST( 'm',   3,      560,   552 ), /*   555 no                */
-  S_ST( 'o',   3,      557,     0 ), /*   556 nom               */
-  S_ST( 'd',   3,      558,     0 ), /*   557 nomo              */
-  S_ST( 'i',   3,      559,     0 ), /*   558 nomod             */
-  S_ST( 'f',   3,      363,     0 ), /*   559 nomodi            */
-  S_ST( 'r',   3,      561,   556 ), /*   560 nom               */
-  S_ST( 'u',   3,      562,     0 ), /*   561 nomr              */
-  S_ST( 'l',   3,      563,     0 ), /*   562 nomru             */
-  S_ST( 'i',   3,      564,     0 ), /*   563 nomrul            */
-  S_ST( 's',   3,      364,     0 ), /*   564 nomruli           */
-  S_ST( 'n',   3,      566,   555 ), /*   565 no                */
-  S_ST( 'v',   3,      567,   365 ), /*   566 non               */
-  S_ST( 'o',   3,      568,     0 ), /*   567 nonv              */
-  S_ST( 'l',   3,      569,     0 ), /*   568 nonvo             */
-  S_ST( 'a',   3,      570,     0 ), /*   569 nonvol            */
-  S_ST( 't',   3,      571,     0 ), /*   570 nonvola           */
-  S_ST( 'i',   3,      572,     0 ), /*   571 nonvolat          */
-  S_ST( 'l',   3,      366,     0 ), /*   572 nonvolati         */
-  S_ST( 'p',   3,      574,   565 ), /*   573 no                */
-  S_ST( 'e',   3,      575,     0 ), /*   574 nop               */
-  S_ST( 'e',   3,      367,     0 ), /*   575 nope              */
-  S_ST( 'q',   3,      577,   573 ), /*   576 no                */
-  S_ST( 'u',   3,      578,     0 ), /*   577 noq               */
-  S_ST( 'e',   3,      579,     0 ), /*   578 noqu              */
-  S_ST( 'r',   3,      368,     0 ), /*   579 noque             */
-  S_ST( 's',   3,      581,   576 ), /*   580 no                */
-  S_ST( 'e',   3,      585,     0 ), /*   581 nos               */
-  S_ST( 'l',   3,      583,     0 ), /*   582 nose              */
-  S_ST( 'e',   3,      584,     0 ), /*   583 nosel             */
-  S_ST( 'c',   3,      369,     0 ), /*   584 nosele            */
-  S_ST( 'r',   3,      586,   582 ), /*   585 nose              */
-  S_ST( 'v',   3,      370,     0 ), /*   586 noser             */
-  S_ST( 't',   3,      588,   580 ), /*   587 no                */
-  S_ST( 'r',   3,      590,     0 ), /*   588 not               */
-  S_ST( 'a',   3,      371,     0 ), /*   589 notr              */
-  S_ST( 'u',   3,      591,   589 ), /*   590 notr              */
-  S_ST( 's',   3,      372,     0 ), /*   591 notru             */
-  S_ST( 't',   3,      373,   551 ), /*   592 n                 */
-  S_ST( 'p',   3,      594,     0 ), /*   593 ntp               */
-  S_ST( 'o',   3,      595,     0 ), /*   594 ntpp              */
-  S_ST( 'r',   3,      374,     0 ), /*   595 ntppo             */
-  S_ST( 's',   3,      597,   593 ), /*   596 ntp               */
-  S_ST( 'i',   3,      598,     0 ), /*   597 ntps              */
-  S_ST( 'g',   3,      599,     0 ), /*   598 ntpsi             */
-  S_ST( 'n',   3,      600,     0 ), /*   599 ntpsig            */
-  S_ST( 'd',   3,      601,     0 ), /*   600 ntpsign           */
-  S_ST( 's',   3,      602,     0 ), /*   601 ntpsignd          */
-  S_ST( 'o',   3,      603,     0 ), /*   602 ntpsignds         */
-  S_ST( 'c',   3,      604,     0 ), /*   603 ntpsigndso        */
-  S_ST( 'k',   3,      605,     0 ), /*   604 ntpsigndsoc       */
-  S_ST( 'e',   3,      375,     0 ), /*   605 ntpsigndsock      */
-  S_ST( 'o',   3,      607,   549 ), /*   606                   */
-  S_ST( 'r',   3,      608,     0 ), /*   607 o                 */
-  S_ST( 'p',   3,      609,     0 ), /*   608 or                */
-  S_ST( 'h',   3,      610,     0 ), /*   609 orp               */
-  S_ST( 'a',   3,      376,     0 ), /*   610 orph              */
-  S_ST( 'w',   3,      612,     0 ), /*   611 orphan            */
-  S_ST( 'a',   3,      613,     0 ), /*   612 orphanw           */
-  S_ST( 'i',   3,      377,     0 ), /*   613 orphanwa          */
-  S_ST( 'p',   3,      389,   606 ), /*   614                   */
-  S_ST( 'a',   3,      616,     0 ), /*   615 p                 */
-  S_ST( 'n',   3,      617,     0 ), /*   616 pa                */
-  S_ST( 'i',   3,      378,     0 ), /*   617 pan               */
-  S_ST( 'e',   3,      619,   615 ), /*   618 p                 */
-  S_ST( 'e',   3,      379,     0 ), /*   619 pe                */
-  S_ST( 's',   3,      621,     0 ), /*   620 peer              */
-  S_ST( 't',   3,      622,     0 ), /*   621 peers             */
-  S_ST( 'a',   3,      623,     0 ), /*   622 peerst            */
-  S_ST( 't',   3,      380,     0 ), /*   623 peersta           */
-  S_ST( 'h',   3,      625,   618 ), /*   624 p                 */
-  S_ST( 'o',   3,      626,     0 ), /*   625 ph                */
-  S_ST( 'n',   3,      381,     0 ), /*   626 pho               */
-  S_ST( 'i',   3,      382,   624 ), /*   627 p                 */
-  S_ST( 'f',   3,      629,     0 ), /*   628 pid               */
-  S_ST( 'i',   3,      630,     0 ), /*   629 pidf              */
-  S_ST( 'l',   3,      383,     0 ), /*   630 pidfi             */
-  S_ST( 'o',   3,      633,   627 ), /*   631 p                 */
-  S_ST( 'o',   3,      384,     0 ), /*   632 po                */
-  S_ST( 'r',   3,      385,   632 ), /*   633 po                */
-  S_ST( 'r',   3,      641,   631 ), /*   634 p                 */
-  S_ST( 'e',   3,      639,     0 ), /*   635 pr                */
-  S_ST( 'e',   3,      637,     0 ), /*   636 pre               */
-  S_ST( 'm',   3,      638,     0 ), /*   637 pree              */
-  S_ST( 'p',   3,      386,     0 ), /*   638 preem             */
-  S_ST( 'f',   3,      640,   636 ), /*   639 pre               */
-  S_ST( 'e',   3,      387,     0 ), /*   640 pref              */
-  S_ST( 'o',   3,      654,   635 ), /*   641 pr                */
-  S_ST( 'c',   3,      643,     0 ), /*   642 pro               */
-  S_ST( '_',   3,      644,     0 ), /*   643 proc              */
-  S_ST( 'd',   3,      645,     0 ), /*   644 proc_             */
-  S_ST( 'e',   3,      646,     0 ), /*   645 proc_d            */
-  S_ST( 'l',   3,      647,     0 ), /*   646 proc_de           */
-  S_ST( 'a',   3,      444,     0 ), /*   647 proc_del          */
-  S_ST( 'p',   3,      649,   642 ), /*   648 pro               */
-  S_ST( '_',   3,      650,     0 ), /*   649 prop              */
-  S_ST( 'd',   3,      651,     0 ), /*   650 prop_             */
-  S_ST( 'e',   3,      652,     0 ), /*   651 prop_d            */
-  S_ST( 'l',   3,      653,     0 ), /*   652 prop_de           */
-  S_ST( 'a',   3,      443,     0 ), /*   653 prop_del          */
-  S_ST( 't',   3,      655,   648 ), /*   654 pro               */
-  S_ST( 'o',   3,      656,     0 ), /*   655 prot              */
-  S_ST( 's',   3,      657,     0 ), /*   656 proto             */
-  S_ST( 't',   3,      658,     0 ), /*   657 protos            */
-  S_ST( 'a',   3,      659,     0 ), /*   658 protost           */
-  S_ST( 't',   3,      388,     0 ), /*   659 protosta          */
-  S_ST( 'r',   3,      691,   614 ), /*   660                   */
-  S_ST( 'a',   3,      667,     0 ), /*   661 r                 */
-  S_ST( 'n',   3,      663,     0 ), /*   662 ra                */
-  S_ST( 'd',   3,      664,     0 ), /*   663 ran               */
-  S_ST( 'f',   3,      665,     0 ), /*   664 rand              */
-  S_ST( 'i',   3,      666,     0 ), /*   665 randf             */
-  S_ST( 'l',   3,      390,     0 ), /*   666 randfi            */
-  S_ST( 'w',   3,      668,   662 ), /*   667 ra                */
-  S_ST( 's',   3,      669,     0 ), /*   668 raw               */
-  S_ST( 't',   3,      670,     0 ), /*   669 raws              */
-  S_ST( 'a',   3,      671,     0 ), /*   670 rawst             */
-  S_ST( 't',   3,      391,     0 ), /*   671 rawsta            */
-  S_ST( 'e',   3,      688,   661 ), /*   672 r                 */
-  S_ST( 'f',   3,      674,     0 ), /*   673 re                */
-  S_ST( 'i',   3,      392,     0 ), /*   674 ref               */
-  S_ST( 'q',   3,      676,   673 ), /*   675 re                */
-  S_ST( 'u',   3,      677,     0 ), /*   676 req               */
-  S_ST( 'e',   3,      678,     0 ), /*   677 requ              */
-  S_ST( 's',   3,      679,     0 ), /*   678 reque             */
-  S_ST( 't',   3,      680,     0 ), /*   679 reques            */
-  S_ST( 'k',   3,      681,     0 ), /*   680 request           */
-  S_ST( 'e',   3,      393,     0 ), /*   681 requestk          */
-  S_ST( 's',   3,      684,   675 ), /*   682 re                */
-  S_ST( 'e',   3,      394,     0 ), /*   683 res               */
-  S_ST( 't',   3,      685,   683 ), /*   684 res               */
-  S_ST( 'r',   3,      686,     0 ), /*   685 rest              */
-  S_ST( 'i',   3,      687,     0 ), /*   686 restr             */
-  S_ST( 'c',   3,      395,     0 ), /*   687 restri            */
-  S_ST( 'v',   3,      689,   682 ), /*   688 re                */
-  S_ST( 'o',   3,      690,     0 ), /*   689 rev               */
-  S_ST( 'k',   3,      396,     0 ), /*   690 revo              */
-  S_ST( 'l',   3,      692,   672 ), /*   691 r                 */
-  S_ST( 'i',   3,      693,     0 ), /*   692 rl                */
-  S_ST( 'm',   3,      694,     0 ), /*   693 rli               */
-  S_ST( 'i',   3,      397,     0 ), /*   694 rlim              */
-  S_ST( 's',   3,      763,   660 ), /*   695                   */
-  S_ST( 'a',   3,      697,     0 ), /*   696 s                 */
-  S_ST( 'v',   3,      698,     0 ), /*   697 sa                */
-  S_ST( 'e',   3,      699,     0 ), /*   698 sav               */
-  S_ST( 'c',   3,      700,     0 ), /*   699 save              */
-  S_ST( 'o',   3,      701,     0 ), /*   700 savec             */
-  S_ST( 'n',   3,      702,     0 ), /*   701 saveco            */
-  S_ST( 'f',   3,      703,     0 ), /*   702 savecon           */
-  S_ST( 'i',   3,      704,     0 ), /*   703 saveconf          */
-  S_ST( 'g',   3,      705,     0 ), /*   704 saveconfi         */
-  S_ST( 'd',   3,      706,     0 ), /*   705 saveconfig        */
-  S_ST( 'i',   3,      398,     0 ), /*   706 saveconfigd       */
-  S_ST( 'e',   3,      717,   696 ), /*   707 s                 */
-  S_ST( 'r',   3,      709,     0 ), /*   708 se                */
-  S_ST( 'v',   3,      710,     0 ), /*   709 ser               */
-  S_ST( 'e',   3,      399,     0 ), /*   710 serv              */
-  S_ST( '_',   3,      712,     0 ), /*   711 server            */
-  S_ST( 'o',   3,      713,     0 ), /*   712 server_           */
-  S_ST( 'f',   3,      714,     0 ), /*   713 server_o          */
-  S_ST( 'f',   3,      715,     0 ), /*   714 server_of         */
-  S_ST( 's',   3,      716,     0 ), /*   715 server_off        */
-  S_ST( 'e',   3,      438,     0 ), /*   716 server_offs       */
-  S_ST( 't',   3,      718,   708 ), /*   717 se                */
-  S_ST( 'v',   3,      719,     0 ), /*   718 set               */
-  S_ST( 'a',   3,      400,     0 ), /*   719 setv              */
-  S_ST( 'i',   3,      721,   707 ), /*   720 s                 */
-  S_ST( 'm',   3,      722,     0 ), /*   721 si                */
-  S_ST( 'u',   3,      723,     0 ), /*   722 sim               */
-  S_ST( 'l',   3,      724,     0 ), /*   723 simu              */
-  S_ST( 'a',   3,      725,     0 ), /*   724 simul             */
-  S_ST( 't',   3,      726,     0 ), /*   725 simula            */
-  S_ST( 'i',   3,      727,   435 ), /*   726 simulat           */
-  S_ST( 'o',   3,      728,     0 ), /*   727 simulati          */
-  S_ST( 'n',   3,      729,     0 ), /*   728 simulatio         */
-  S_ST( '_',   3,      730,     0 ), /*   729 simulation        */
-  S_ST( 'd',   3,      731,     0 ), /*   730 simulation_       */
-  S_ST( 'u',   3,      732,     0 ), /*   731 simulation_d      */
-  S_ST( 'r',   3,      733,     0 ), /*   732 simulation_du     */
-  S_ST( 'a',   3,      734,     0 ), /*   733 simulation_dur    */
-  S_ST( 't',   3,      735,     0 ), /*   734 simulation_dura   */
-  S_ST( 'i',   3,      736,     0 ), /*   735 simulation_durat  */
-  S_ST( 'o',   3,      437,     0 ), /*   736 simulation_durati */
-  S_ST( 'o',   3,      738,   720 ), /*   737 s                 */
-  S_ST( 'u',   3,      739,     0 ), /*   738 so                */
-  S_ST( 'r',   3,      740,     0 ), /*   739 sou               */
-  S_ST( 'c',   3,      401,     0 ), /*   740 sour              */
-  S_ST( 't',   3,      759,   737 ), /*   741 s                 */
-  S_ST( 'a',   3,      748,     0 ), /*   742 st                */
-  S_ST( 'c',   3,      744,     0 ), /*   743 sta               */
-  S_ST( 'k',   3,      745,     0 ), /*   744 stac              */
-  S_ST( 's',   3,      746,     0 ), /*   745 stack             */
-  S_ST( 'i',   3,      747,     0 ), /*   746 stacks            */
-  S_ST( 'z',   3,      402,     0 ), /*   747 stacksi           */
-  S_ST( 't',   3,      404,   743 ), /*   748 sta               */
-  S_ST( 'i',   3,      750,     0 ), /*   749 stat              */
-  S_ST( 's',   3,      751,     0 ), /*   750 stati             */
-  S_ST( 't',   3,      752,     0 ), /*   751 statis            */
-  S_ST( 'i',   3,      753,     0 ), /*   752 statist           */
-  S_ST( 'c',   3,      403,     0 ), /*   753 statisti          */
-  S_ST( 'd',   3,      755,     0 ), /*   754 stats             */
-  S_ST( 'i',   3,      405,     0 ), /*   755 statsd            */
-  S_ST( 'e',   3,      406,   742 ), /*   756 st                */
-  S_ST( 'o',   3,      758,     0 ), /*   757 step              */
-  S_ST( 'u',   3,      407,     0 ), /*   758 stepo             */
-  S_ST( 'r',   3,      760,   756 ), /*   759 st                */
-  S_ST( 'a',   3,      761,     0 ), /*   760 str               */
-  S_ST( 't',   3,      762,     0 ), /*   761 stra              */
-  S_ST( 'u',   3,      408,     0 ), /*   762 strat             */
-  S_ST( 'y',   3,      410,   741 ), /*   763 s                 */
-  S_ST( 's',   3,      765,     0 ), /*   764 sys               */
-  S_ST( 't',   3,      766,     0 ), /*   765 syss              */
-  S_ST( 'a',   3,      767,     0 ), /*   766 sysst             */
-  S_ST( 't',   3,      411,     0 ), /*   767 syssta            */
-  S_ST( 't',   3,      794,   695 ), /*   768                   */
-  S_ST( 'i',   3,      780,     0 ), /*   769 t                 */
-  S_ST( 'c',   3,      412,     0 ), /*   770 ti                */
-  S_ST( 'm',   3,      773,   770 ), /*   771 ti                */
-  S_ST( 'e',   3,      415,     0 ), /*   772 tim               */
-  S_ST( 'i',   3,      774,   772 ), /*   773 tim               */
-  S_ST( 'n',   3,      775,     0 ), /*   774 timi              */
-  S_ST( 'g',   3,      776,     0 ), /*   775 timin             */
-  S_ST( 's',   3,      777,     0 ), /*   776 timing            */
-  S_ST( 't',   3,      778,     0 ), /*   777 timings           */
-  S_ST( 'a',   3,      779,     0 ), /*   778 timingst          */
-  S_ST( 't',   3,      416,     0 ), /*   779 timingsta         */
-  S_ST( 'n',   3,      781,   771 ), /*   780 ti                */
-  S_ST( 'k',   3,      782,     0 ), /*   781 tin               */
-  S_ST( 'e',   3,      417,     0 ), /*   782 tink              */
-  S_ST( 'o',   3,      418,   769 ), /*   783 t                 */
-  S_ST( 'r',   3,      786,   783 ), /*   784 t                 */
-  S_ST( 'a',   3,      419,     0 ), /*   785 tr                */
-  S_ST( 'u',   3,      787,   785 ), /*   786 tr                */
-  S_ST( 's',   3,      788,   420 ), /*   787 tru               */
-  S_ST( 't',   3,      789,     0 ), /*   788 trus              */
-  S_ST( 'e',   3,      790,     0 ), /*   789 trust             */
-  S_ST( 'd',   3,      791,     0 ), /*   790 truste            */
-  S_ST( 'k',   3,      792,     0 ), /*   791 trusted           */
-  S_ST( 'e',   3,      421,     0 ), /*   792 trustedk          */
-  S_ST( 't',   3,      422,   784 ), /*   793 t                 */
-  S_ST( 'y',   3,      795,   793 ), /*   794 t                 */
-  S_ST( 'p',   3,      423,     0 ), /*   795 ty                */
-  S_ST( 'u',   3,      797,   768 ), /*   796                   */
-  S_ST( 'n',   3,      803,     0 ), /*   797 u                 */
-  S_ST( 'c',   3,      799,     0 ), /*   798 un                */
-  S_ST( 'o',   3,      800,     0 ), /*   799 unc               */
-  S_ST( 'n',   3,      801,     0 ), /*   800 unco              */
-  S_ST( 'f',   3,      802,     0 ), /*   801 uncon             */
-  S_ST( 'i',   3,      425,     0 ), /*   802 unconf            */
-  S_ST( 'p',   3,      804,   798 ), /*   803 un                */
-  S_ST( 'e',   3,      805,     0 ), /*   804 unp               */
-  S_ST( 'e',   3,      426,     0 ), /*   805 unpe              */
-  S_ST( 'v',   3,      807,   796 ), /*   806                   */
-  S_ST( 'e',   3,      808,     0 ), /*   807 v                 */
-  S_ST( 'r',   3,      809,     0 ), /*   808 ve                */
-  S_ST( 's',   3,      810,     0 ), /*   809 ver               */
-  S_ST( 'i',   3,      811,     0 ), /*   810 vers              */
-  S_ST( 'o',   3,      427,     0 ), /*   811 versi             */
-  S_ST( 'w',   3,      819,   806 ), /*   812                   */
-  S_ST( 'a',   3,      814,     0 ), /*   813 w                 */
-  S_ST( 'n',   3,      815,     0 ), /*   814 wa                */
-  S_ST( 'd',   3,      816,     0 ), /*   815 wan               */
-  S_ST( 'e',   3,      441,     0 ), /*   816 wand              */
-  S_ST( 'e',   3,      818,   813 ), /*   817 w                 */
-  S_ST( 'e',   3,      429,     0 ), /*   818 we                */
-  S_ST( 'i',   3,      820,   817 ), /*   819 w                 */
-  S_ST( 'l',   3,      821,     0 ), /*   820 wi                */
-  S_ST( 'd',   3,      822,     0 ), /*   821 wil               */
-  S_ST( 'c',   3,      823,     0 ), /*   822 wild              */
-  S_ST( 'a',   3,      824,     0 ), /*   823 wildc             */
-  S_ST( 'r',   3,      430,     0 ), /*   824 wildca            */
-  S_ST( 'x',   3,      826,   812 ), /*   825                   */
-  S_ST( 'l',   3,      827,     0 ), /*   826 x                 */
-  S_ST( 'e',   3,      828,     0 ), /*   827 xl                */
-  S_ST( 'a',   3,      829,     0 ), /*   828 xle               */
-  S_ST( 'v',   3,      431,     0 ), /*   829 xlea              */
-  S_ST( 'y',   3,      831,   825 ), /*   830 [initial state]   */
-  S_ST( 'e',   3,      832,     0 ), /*   831 y                 */
-  S_ST( 'a',   3,      432,     0 )  /*   832 ye                */
+  S_ST( 'p',   0,      764,     0 ), /*   406 T_Step            */
+  S_ST( 'k',   0,        0,     0 ), /*   407 T_Stepback        */
+  S_ST( 'd',   0,        0,     0 ), /*   408 T_Stepfwd         */
+  S_ST( 't',   0,        0,     0 ), /*   409 T_Stepout         */
+  S_ST( 'm',   0,        0,     0 ), /*   410 T_Stratum         */
+  S_ST( 'l',   3,      334,     0 ), /*   411 logfi             */
+  S_ST( 's',   0,      771,     0 ), /*   412 T_Sys             */
+  S_ST( 's',   0,        0,     0 ), /*   413 T_Sysstats        */
+  S_ST( 'k',   0,        0,     0 ), /*   414 T_Tick            */
+  S_ST( '1',   0,        0,     0 ), /*   415 T_Time1           */
+  S_ST( '2',   0,        0,   415 ), /*   416 T_Time2           */
+  S_ST( 'r',   0,        0,   416 ), /*   417 T_Timer           */
+  S_ST( 's',   0,        0,     0 ), /*   418 T_Timingstats     */
+  S_ST( 'r',   0,        0,     0 ), /*   419 T_Tinker          */
+  S_ST( 's',   0,        0,     0 ), /*   420 T_Tos             */
+  S_ST( 'p',   1,        0,     0 ), /*   421 T_Trap            */
+  S_ST( 'e',   0,        0,     0 ), /*   422 T_True            */
+  S_ST( 'y',   0,        0,     0 ), /*   423 T_Trustedkey      */
+  S_ST( 'l',   0,        0,     0 ), /*   424 T_Ttl             */
+  S_ST( 'e',   0,        0,     0 ), /*   425 T_Type            */
+  S_ST( 'o',   3,      430,   254 ), /*   426 lo                */
+  S_ST( 'g',   1,        0,     0 ), /*   427 T_Unconfig        */
+  S_ST( 'r',   1,        0,     0 ), /*   428 T_Unpeer          */
+  S_ST( 'n',   0,        0,     0 ), /*   429 T_Version         */
+  S_ST( 'p',   3,      435,     0 ), /*   430 loo               */
+  S_ST( 'k',   0,        0,     0 ), /*   431 T_Week            */
+  S_ST( 'd',   0,        0,     0 ), /*   432 T_Wildcard        */
+  S_ST( 'e',   0,        0,     0 ), /*   433 T_Xleave          */
+  S_ST( 'r',   0,        0,     0 ), /*   434 T_Year            */
+  S_ST( 's',   3,      436,     0 ), /*   435 loop              */
+  S_ST( 't',   3,      447,     0 ), /*   436 loops             */
+  S_ST( 'e',   0,        0,     0 ), /*   437 T_Simulate        */
+  S_ST( 'y',   0,        0,     0 ), /*   438 T_Beep_Delay      */
+  S_ST( 'n',   0,        0,     0 ), /*   439 T_Sim_Duration    */
+  S_ST( 't',   0,        0,     0 ), /*   440 T_Server_Offset   */
+  S_ST( 'n',   0,        0,     0 ), /*   441 T_Duration        */
+  S_ST( 't',   0,        0,     0 ), /*   442 T_Freq_Offset     */
+  S_ST( 'r',   0,        0,     0 ), /*   443 T_Wander          */
+  S_ST( 'r',   0,        0,     0 ), /*   444 T_Jitter          */
+  S_ST( 'y',   0,        0,     0 ), /*   445 T_Prop_Delay      */
+  S_ST( 'y',   0,        0,     0 ), /*   446 T_Proc_Delay      */
+  S_ST( 'a',   3,      448,     0 ), /*   447 loopst            */
+  S_ST( 't',   3,      335,     0 ), /*   448 loopsta           */
+  S_ST( 'w',   3,      450,   426 ), /*   449 lo                */
+  S_ST( 'p',   3,      451,     0 ), /*   450 low               */
+  S_ST( 'r',   3,      452,     0 ), /*   451 lowp              */
+  S_ST( 'i',   3,      453,     0 ), /*   452 lowpr             */
+  S_ST( 'o',   3,      454,     0 ), /*   453 lowpri            */
+  S_ST( 't',   3,      455,     0 ), /*   454 lowprio           */
+  S_ST( 'r',   3,      456,     0 ), /*   455 lowpriot          */
+  S_ST( 'a',   3,      336,     0 ), /*   456 lowpriotr         */
+  S_ST( 'm',   3,      538,   237 ), /*   457                   */
+  S_ST( 'a',   3,      476,     0 ), /*   458 m                 */
+  S_ST( 'n',   3,      460,     0 ), /*   459 ma                */
+  S_ST( 'y',   3,      461,     0 ), /*   460 man               */
+  S_ST( 'c',   3,      462,     0 ), /*   461 many              */
+  S_ST( 'a',   3,      463,     0 ), /*   462 manyc             */
+  S_ST( 's',   3,      464,     0 ), /*   463 manyca            */
+  S_ST( 't',   3,      470,     0 ), /*   464 manycas           */
+  S_ST( 'c',   3,      466,     0 ), /*   465 manycast          */
+  S_ST( 'l',   3,      467,     0 ), /*   466 manycastc         */
+  S_ST( 'i',   3,      468,     0 ), /*   467 manycastcl        */
+  S_ST( 'e',   3,      469,     0 ), /*   468 manycastcli       */
+  S_ST( 'n',   3,      337,     0 ), /*   469 manycastclie      */
+  S_ST( 's',   3,      471,   465 ), /*   470 manycast          */
+  S_ST( 'e',   3,      472,     0 ), /*   471 manycasts         */
+  S_ST( 'r',   3,      473,     0 ), /*   472 manycastse        */
+  S_ST( 'v',   3,      474,     0 ), /*   473 manycastser       */
+  S_ST( 'e',   3,      338,     0 ), /*   474 manycastserv      */
+  S_ST( 's',   3,      339,   459 ), /*   475 ma                */
+  S_ST( 'x',   3,      491,   475 ), /*   476 ma                */
+  S_ST( 'a',   3,      478,     0 ), /*   477 max               */
+  S_ST( 'g',   3,      340,     0 ), /*   478 maxa              */
+  S_ST( 'c',   3,      480,   477 ), /*   479 max               */
+  S_ST( 'l',   3,      481,     0 ), /*   480 maxc              */
+  S_ST( 'o',   3,      482,     0 ), /*   481 maxcl             */
+  S_ST( 'c',   3,      341,     0 ), /*   482 maxclo            */
+  S_ST( 'd',   3,      487,   479 ), /*   483 max               */
+  S_ST( 'e',   3,      485,     0 ), /*   484 maxd              */
+  S_ST( 'p',   3,      486,     0 ), /*   485 maxde             */
+  S_ST( 't',   3,      342,     0 ), /*   486 maxdep            */
+  S_ST( 'i',   3,      488,   484 ), /*   487 maxd              */
+  S_ST( 's',   3,      343,     0 ), /*   488 maxdi             */
+  S_ST( 'm',   3,      490,   483 ), /*   489 max               */
+  S_ST( 'e',   3,      344,     0 ), /*   490 maxm              */
+  S_ST( 'p',   3,      492,   489 ), /*   491 max               */
+  S_ST( 'o',   3,      493,     0 ), /*   492 maxp              */
+  S_ST( 'l',   3,      345,     0 ), /*   493 maxpo             */
+  S_ST( 'd',   3,      495,   458 ), /*   494 m                 */
+  S_ST( 'n',   3,      496,     0 ), /*   495 md                */
+  S_ST( 's',   3,      497,     0 ), /*   496 mdn               */
+  S_ST( 't',   3,      498,     0 ), /*   497 mdns              */
+  S_ST( 'r',   3,      499,     0 ), /*   498 mdnst             */
+  S_ST( 'i',   3,      500,     0 ), /*   499 mdnstr            */
+  S_ST( 'e',   3,      346,     0 ), /*   500 mdnstri           */
+  S_ST( 'e',   3,      347,   494 ), /*   501 m                 */
+  S_ST( 'l',   3,      503,     0 ), /*   502 mem               */
+  S_ST( 'o',   3,      504,     0 ), /*   503 meml              */
+  S_ST( 'c',   3,      348,     0 ), /*   504 memlo             */
+  S_ST( 'i',   3,      506,   501 ), /*   505 m                 */
+  S_ST( 'n',   3,      523,     0 ), /*   506 mi                */
+  S_ST( 'c',   3,      508,     0 ), /*   507 min               */
+  S_ST( 'l',   3,      509,     0 ), /*   508 minc              */
+  S_ST( 'o',   3,      510,     0 ), /*   509 mincl             */
+  S_ST( 'c',   3,      349,     0 ), /*   510 minclo            */
+  S_ST( 'd',   3,      515,   507 ), /*   511 min               */
+  S_ST( 'e',   3,      513,     0 ), /*   512 mind              */
+  S_ST( 'p',   3,      514,     0 ), /*   513 minde             */
+  S_ST( 't',   3,      350,     0 ), /*   514 mindep            */
+  S_ST( 'i',   3,      516,   512 ), /*   515 mind              */
+  S_ST( 's',   3,      351,     0 ), /*   516 mindi             */
+  S_ST( 'i',   3,      518,   511 ), /*   517 min               */
+  S_ST( 'm',   3,      519,     0 ), /*   518 mini              */
+  S_ST( 'u',   3,      352,     0 ), /*   519 minim             */
+  S_ST( 'p',   3,      521,   517 ), /*   520 min               */
+  S_ST( 'o',   3,      522,     0 ), /*   521 minp              */
+  S_ST( 'l',   3,      353,     0 ), /*   522 minpo             */
+  S_ST( 's',   3,      524,   520 ), /*   523 min               */
+  S_ST( 'a',   3,      525,     0 ), /*   524 mins              */
+  S_ST( 'n',   3,      354,     0 ), /*   525 minsa             */
+  S_ST( 'o',   3,      528,   505 ), /*   526 m                 */
+  S_ST( 'd',   3,      355,     0 ), /*   527 mo                */
+  S_ST( 'n',   3,      532,   527 ), /*   528 mo                */
+  S_ST( 'i',   3,      530,     0 ), /*   529 mon               */
+  S_ST( 't',   3,      531,     0 ), /*   530 moni              */
+  S_ST( 'o',   3,      357,     0 ), /*   531 monit             */
+  S_ST( 't',   3,      358,   529 ), /*   532 mon               */
+  S_ST( 'r',   3,      359,   526 ), /*   533 m                 */
+  S_ST( 's',   3,      535,   533 ), /*   534 m                 */
+  S_ST( 's',   3,      536,     0 ), /*   535 ms                */
+  S_ST( 'n',   3,      537,     0 ), /*   536 mss               */
+  S_ST( 't',   3,      328,     0 ), /*   537 mssn              */
+  S_ST( 'u',   3,      539,   534 ), /*   538 m                 */
+  S_ST( 'l',   3,      540,     0 ), /*   539 mu                */
+  S_ST( 't',   3,      541,     0 ), /*   540 mul               */
+  S_ST( 'i',   3,      542,     0 ), /*   541 mult              */
+  S_ST( 'c',   3,      543,     0 ), /*   542 multi             */
+  S_ST( 'a',   3,      544,     0 ), /*   543 multic            */
+  S_ST( 's',   3,      545,     0 ), /*   544 multica           */
+  S_ST( 't',   3,      546,     0 ), /*   545 multicas          */
+  S_ST( 'c',   3,      547,     0 ), /*   546 multicast         */
+  S_ST( 'l',   3,      548,     0 ), /*   547 multicastc        */
+  S_ST( 'i',   3,      549,     0 ), /*   548 multicastcl       */
+  S_ST( 'e',   3,      550,     0 ), /*   549 multicastcli      */
+  S_ST( 'n',   3,      360,     0 ), /*   550 multicastclie     */
+  S_ST( 'n',   3,      594,   457 ), /*   551                   */
+  S_ST( 'i',   3,      361,     0 ), /*   552 n                 */
+  S_ST( 'o',   3,      589,   552 ), /*   553 n                 */
+  S_ST( 'l',   3,      555,     0 ), /*   554 no                */
+  S_ST( 'i',   3,      556,     0 ), /*   555 nol               */
+  S_ST( 'n',   3,      362,     0 ), /*   556 noli              */
+  S_ST( 'm',   3,      562,   554 ), /*   557 no                */
+  S_ST( 'o',   3,      559,     0 ), /*   558 nom               */
+  S_ST( 'd',   3,      560,     0 ), /*   559 nomo              */
+  S_ST( 'i',   3,      561,     0 ), /*   560 nomod             */
+  S_ST( 'f',   3,      363,     0 ), /*   561 nomodi            */
+  S_ST( 'r',   3,      563,   558 ), /*   562 nom               */
+  S_ST( 'u',   3,      564,     0 ), /*   563 nomr              */
+  S_ST( 'l',   3,      565,     0 ), /*   564 nomru             */
+  S_ST( 'i',   3,      566,     0 ), /*   565 nomrul            */
+  S_ST( 's',   3,      364,     0 ), /*   566 nomruli           */
+  S_ST( 'n',   3,      568,   557 ), /*   567 no                */
+  S_ST( 'v',   3,      569,   365 ), /*   568 non               */
+  S_ST( 'o',   3,      570,     0 ), /*   569 nonv              */
+  S_ST( 'l',   3,      571,     0 ), /*   570 nonvo             */
+  S_ST( 'a',   3,      572,     0 ), /*   571 nonvol            */
+  S_ST( 't',   3,      573,     0 ), /*   572 nonvola           */
+  S_ST( 'i',   3,      574,     0 ), /*   573 nonvolat          */
+  S_ST( 'l',   3,      366,     0 ), /*   574 nonvolati         */
+  S_ST( 'p',   3,      576,   567 ), /*   575 no                */
+  S_ST( 'e',   3,      577,     0 ), /*   576 nop               */
+  S_ST( 'e',   3,      367,     0 ), /*   577 nope              */
+  S_ST( 'q',   3,      579,   575 ), /*   578 no                */
+  S_ST( 'u',   3,      580,     0 ), /*   579 noq               */
+  S_ST( 'e',   3,      581,     0 ), /*   580 noqu              */
+  S_ST( 'r',   3,      368,     0 ), /*   581 noque             */
+  S_ST( 's',   3,      583,   578 ), /*   582 no                */
+  S_ST( 'e',   3,      587,     0 ), /*   583 nos               */
+  S_ST( 'l',   3,      585,     0 ), /*   584 nose              */
+  S_ST( 'e',   3,      586,     0 ), /*   585 nosel             */
+  S_ST( 'c',   3,      369,     0 ), /*   586 nosele            */
+  S_ST( 'r',   3,      588,   584 ), /*   587 nose              */
+  S_ST( 'v',   3,      370,     0 ), /*   588 noser             */
+  S_ST( 't',   3,      590,   582 ), /*   589 no                */
+  S_ST( 'r',   3,      592,     0 ), /*   590 not               */
+  S_ST( 'a',   3,      371,     0 ), /*   591 notr              */
+  S_ST( 'u',   3,      593,   591 ), /*   592 notr              */
+  S_ST( 's',   3,      372,     0 ), /*   593 notru             */
+  S_ST( 't',   3,      373,   553 ), /*   594 n                 */
+  S_ST( 'p',   3,      596,     0 ), /*   595 ntp               */
+  S_ST( 'o',   3,      597,     0 ), /*   596 ntpp              */
+  S_ST( 'r',   3,      374,     0 ), /*   597 ntppo             */
+  S_ST( 's',   3,      599,   595 ), /*   598 ntp               */
+  S_ST( 'i',   3,      600,     0 ), /*   599 ntps              */
+  S_ST( 'g',   3,      601,     0 ), /*   600 ntpsi             */
+  S_ST( 'n',   3,      602,     0 ), /*   601 ntpsig            */
+  S_ST( 'd',   3,      603,     0 ), /*   602 ntpsign           */
+  S_ST( 's',   3,      604,     0 ), /*   603 ntpsignd          */
+  S_ST( 'o',   3,      605,     0 ), /*   604 ntpsignds         */
+  S_ST( 'c',   3,      606,     0 ), /*   605 ntpsigndso        */
+  S_ST( 'k',   3,      607,     0 ), /*   606 ntpsigndsoc       */
+  S_ST( 'e',   3,      375,     0 ), /*   607 ntpsigndsock      */
+  S_ST( 'o',   3,      609,   551 ), /*   608                   */
+  S_ST( 'r',   3,      610,     0 ), /*   609 o                 */
+  S_ST( 'p',   3,      611,     0 ), /*   610 or                */
+  S_ST( 'h',   3,      612,     0 ), /*   611 orp               */
+  S_ST( 'a',   3,      376,     0 ), /*   612 orph              */
+  S_ST( 'w',   3,      614,     0 ), /*   613 orphan            */
+  S_ST( 'a',   3,      615,     0 ), /*   614 orphanw           */
+  S_ST( 'i',   3,      377,     0 ), /*   615 orphanwa          */
+  S_ST( 'p',   3,      389,   608 ), /*   616                   */
+  S_ST( 'a',   3,      618,     0 ), /*   617 p                 */
+  S_ST( 'n',   3,      619,     0 ), /*   618 pa                */
+  S_ST( 'i',   3,      378,     0 ), /*   619 pan               */
+  S_ST( 'e',   3,      621,   617 ), /*   620 p                 */
+  S_ST( 'e',   3,      379,     0 ), /*   621 pe                */
+  S_ST( 's',   3,      623,     0 ), /*   622 peer              */
+  S_ST( 't',   3,      624,     0 ), /*   623 peers             */
+  S_ST( 'a',   3,      625,     0 ), /*   624 peerst            */
+  S_ST( 't',   3,      380,     0 ), /*   625 peersta           */
+  S_ST( 'h',   3,      627,   620 ), /*   626 p                 */
+  S_ST( 'o',   3,      628,     0 ), /*   627 ph                */
+  S_ST( 'n',   3,      381,     0 ), /*   628 pho               */
+  S_ST( 'i',   3,      382,   626 ), /*   629 p                 */
+  S_ST( 'f',   3,      631,     0 ), /*   630 pid               */
+  S_ST( 'i',   3,      632,     0 ), /*   631 pidf              */
+  S_ST( 'l',   3,      383,     0 ), /*   632 pidfi             */
+  S_ST( 'o',   3,      635,   629 ), /*   633 p                 */
+  S_ST( 'o',   3,      384,     0 ), /*   634 po                */
+  S_ST( 'r',   3,      385,   634 ), /*   635 po                */
+  S_ST( 'r',   3,      643,   633 ), /*   636 p                 */
+  S_ST( 'e',   3,      641,     0 ), /*   637 pr                */
+  S_ST( 'e',   3,      639,     0 ), /*   638 pre               */
+  S_ST( 'm',   3,      640,     0 ), /*   639 pree              */
+  S_ST( 'p',   3,      386,     0 ), /*   640 preem             */
+  S_ST( 'f',   3,      642,   638 ), /*   641 pre               */
+  S_ST( 'e',   3,      387,     0 ), /*   642 pref              */
+  S_ST( 'o',   3,      656,   637 ), /*   643 pr                */
+  S_ST( 'c',   3,      645,     0 ), /*   644 pro               */
+  S_ST( '_',   3,      646,     0 ), /*   645 proc              */
+  S_ST( 'd',   3,      647,     0 ), /*   646 proc_             */
+  S_ST( 'e',   3,      648,     0 ), /*   647 proc_d            */
+  S_ST( 'l',   3,      649,     0 ), /*   648 proc_de           */
+  S_ST( 'a',   3,      446,     0 ), /*   649 proc_del          */
+  S_ST( 'p',   3,      651,   644 ), /*   650 pro               */
+  S_ST( '_',   3,      652,     0 ), /*   651 prop              */
+  S_ST( 'd',   3,      653,     0 ), /*   652 prop_             */
+  S_ST( 'e',   3,      654,     0 ), /*   653 prop_d            */
+  S_ST( 'l',   3,      655,     0 ), /*   654 prop_de           */
+  S_ST( 'a',   3,      445,     0 ), /*   655 prop_del          */
+  S_ST( 't',   3,      657,   650 ), /*   656 pro               */
+  S_ST( 'o',   3,      658,     0 ), /*   657 prot              */
+  S_ST( 's',   3,      659,     0 ), /*   658 proto             */
+  S_ST( 't',   3,      660,     0 ), /*   659 protos            */
+  S_ST( 'a',   3,      661,     0 ), /*   660 protost           */
+  S_ST( 't',   3,      388,     0 ), /*   661 protosta          */
+  S_ST( 'r',   3,      693,   616 ), /*   662                   */
+  S_ST( 'a',   3,      669,     0 ), /*   663 r                 */
+  S_ST( 'n',   3,      665,     0 ), /*   664 ra                */
+  S_ST( 'd',   3,      666,     0 ), /*   665 ran               */
+  S_ST( 'f',   3,      667,     0 ), /*   666 rand              */
+  S_ST( 'i',   3,      668,     0 ), /*   667 randf             */
+  S_ST( 'l',   3,      390,     0 ), /*   668 randfi            */
+  S_ST( 'w',   3,      670,   664 ), /*   669 ra                */
+  S_ST( 's',   3,      671,     0 ), /*   670 raw               */
+  S_ST( 't',   3,      672,     0 ), /*   671 raws              */
+  S_ST( 'a',   3,      673,     0 ), /*   672 rawst             */
+  S_ST( 't',   3,      391,     0 ), /*   673 rawsta            */
+  S_ST( 'e',   3,      690,   663 ), /*   674 r                 */
+  S_ST( 'f',   3,      676,     0 ), /*   675 re                */
+  S_ST( 'i',   3,      392,     0 ), /*   676 ref               */
+  S_ST( 'q',   3,      678,   675 ), /*   677 re                */
+  S_ST( 'u',   3,      679,     0 ), /*   678 req               */
+  S_ST( 'e',   3,      680,     0 ), /*   679 requ              */
+  S_ST( 's',   3,      681,     0 ), /*   680 reque             */
+  S_ST( 't',   3,      682,     0 ), /*   681 reques            */
+  S_ST( 'k',   3,      683,     0 ), /*   682 request           */
+  S_ST( 'e',   3,      393,     0 ), /*   683 requestk          */
+  S_ST( 's',   3,      686,   677 ), /*   684 re                */
+  S_ST( 'e',   3,      394,     0 ), /*   685 res               */
+  S_ST( 't',   3,      687,   685 ), /*   686 res               */
+  S_ST( 'r',   3,      688,     0 ), /*   687 rest              */
+  S_ST( 'i',   3,      689,     0 ), /*   688 restr             */
+  S_ST( 'c',   3,      395,     0 ), /*   689 restri            */
+  S_ST( 'v',   3,      691,   684 ), /*   690 re                */
+  S_ST( 'o',   3,      692,     0 ), /*   691 rev               */
+  S_ST( 'k',   3,      396,     0 ), /*   692 revo              */
+  S_ST( 'l',   3,      694,   674 ), /*   693 r                 */
+  S_ST( 'i',   3,      695,     0 ), /*   694 rl                */
+  S_ST( 'm',   3,      696,     0 ), /*   695 rli               */
+  S_ST( 'i',   3,      397,     0 ), /*   696 rlim              */
+  S_ST( 's',   3,      770,   662 ), /*   697                   */
+  S_ST( 'a',   3,      699,     0 ), /*   698 s                 */
+  S_ST( 'v',   3,      700,     0 ), /*   699 sa                */
+  S_ST( 'e',   3,      701,     0 ), /*   700 sav               */
+  S_ST( 'c',   3,      702,     0 ), /*   701 save              */
+  S_ST( 'o',   3,      703,     0 ), /*   702 savec             */
+  S_ST( 'n',   3,      704,     0 ), /*   703 saveco            */
+  S_ST( 'f',   3,      705,     0 ), /*   704 savecon           */
+  S_ST( 'i',   3,      706,     0 ), /*   705 saveconf          */
+  S_ST( 'g',   3,      707,     0 ), /*   706 saveconfi         */
+  S_ST( 'd',   3,      708,     0 ), /*   707 saveconfig        */
+  S_ST( 'i',   3,      398,     0 ), /*   708 saveconfigd       */
+  S_ST( 'e',   3,      719,   698 ), /*   709 s                 */
+  S_ST( 'r',   3,      711,     0 ), /*   710 se                */
+  S_ST( 'v',   3,      712,     0 ), /*   711 ser               */
+  S_ST( 'e',   3,      399,     0 ), /*   712 serv              */
+  S_ST( '_',   3,      714,     0 ), /*   713 server            */
+  S_ST( 'o',   3,      715,     0 ), /*   714 server_           */
+  S_ST( 'f',   3,      716,     0 ), /*   715 server_o          */
+  S_ST( 'f',   3,      717,     0 ), /*   716 server_of         */
+  S_ST( 's',   3,      718,     0 ), /*   717 server_off        */
+  S_ST( 'e',   3,      440,     0 ), /*   718 server_offs       */
+  S_ST( 't',   3,      720,   710 ), /*   719 se                */
+  S_ST( 'v',   3,      721,     0 ), /*   720 set               */
+  S_ST( 'a',   3,      400,     0 ), /*   721 setv              */
+  S_ST( 'i',   3,      723,   709 ), /*   722 s                 */
+  S_ST( 'm',   3,      724,     0 ), /*   723 si                */
+  S_ST( 'u',   3,      725,     0 ), /*   724 sim               */
+  S_ST( 'l',   3,      726,     0 ), /*   725 simu              */
+  S_ST( 'a',   3,      727,     0 ), /*   726 simul             */
+  S_ST( 't',   3,      728,     0 ), /*   727 simula            */
+  S_ST( 'i',   3,      729,   437 ), /*   728 simulat           */
+  S_ST( 'o',   3,      730,     0 ), /*   729 simulati          */
+  S_ST( 'n',   3,      731,     0 ), /*   730 simulatio         */
+  S_ST( '_',   3,      732,     0 ), /*   731 simulation        */
+  S_ST( 'd',   3,      733,     0 ), /*   732 simulation_       */
+  S_ST( 'u',   3,      734,     0 ), /*   733 simulation_d      */
+  S_ST( 'r',   3,      735,     0 ), /*   734 simulation_du     */
+  S_ST( 'a',   3,      736,     0 ), /*   735 simulation_dur    */
+  S_ST( 't',   3,      737,     0 ), /*   736 simulation_dura   */
+  S_ST( 'i',   3,      738,     0 ), /*   737 simulation_durat  */
+  S_ST( 'o',   3,      439,     0 ), /*   738 simulation_durati */
+  S_ST( 'o',   3,      740,   722 ), /*   739 s                 */
+  S_ST( 'u',   3,      741,     0 ), /*   740 so                */
+  S_ST( 'r',   3,      742,     0 ), /*   741 sou               */
+  S_ST( 'c',   3,      401,     0 ), /*   742 sour              */
+  S_ST( 't',   3,      766,   739 ), /*   743 s                 */
+  S_ST( 'a',   3,      750,     0 ), /*   744 st                */
+  S_ST( 'c',   3,      746,     0 ), /*   745 sta               */
+  S_ST( 'k',   3,      747,     0 ), /*   746 stac              */
+  S_ST( 's',   3,      748,     0 ), /*   747 stack             */
+  S_ST( 'i',   3,      749,     0 ), /*   748 stacks            */
+  S_ST( 'z',   3,      402,     0 ), /*   749 stacksi           */
+  S_ST( 't',   3,      404,   745 ), /*   750 sta               */
+  S_ST( 'i',   3,      752,     0 ), /*   751 stat              */
+  S_ST( 's',   3,      753,     0 ), /*   752 stati             */
+  S_ST( 't',   3,      754,     0 ), /*   753 statis            */
+  S_ST( 'i',   3,      755,     0 ), /*   754 statist           */
+  S_ST( 'c',   3,      403,     0 ), /*   755 statisti          */
+  S_ST( 'd',   3,      757,     0 ), /*   756 stats             */
+  S_ST( 'i',   3,      405,     0 ), /*   757 statsd            */
+  S_ST( 'e',   3,      406,   744 ), /*   758 st                */
+  S_ST( 'b',   3,      760,     0 ), /*   759 step              */
+  S_ST( 'a',   3,      761,     0 ), /*   760 stepb             */
+  S_ST( 'c',   3,      407,     0 ), /*   761 stepba            */
+  S_ST( 'f',   3,      763,   759 ), /*   762 step              */
+  S_ST( 'w',   3,      408,     0 ), /*   763 stepf             */
+  S_ST( 'o',   3,      765,   762 ), /*   764 step              */
+  S_ST( 'u',   3,      409,     0 ), /*   765 stepo             */
+  S_ST( 'r',   3,      767,   758 ), /*   766 st                */
+  S_ST( 'a',   3,      768,     0 ), /*   767 str               */
+  S_ST( 't',   3,      769,     0 ), /*   768 stra              */
+  S_ST( 'u',   3,      410,     0 ), /*   769 strat             */
+  S_ST( 'y',   3,      412,   743 ), /*   770 s                 */
+  S_ST( 's',   3,      772,     0 ), /*   771 sys               */
+  S_ST( 't',   3,      773,     0 ), /*   772 syss              */
+  S_ST( 'a',   3,      774,     0 ), /*   773 sysst             */
+  S_ST( 't',   3,      413,     0 ), /*   774 syssta            */
+  S_ST( 't',   3,      801,   697 ), /*   775                   */
+  S_ST( 'i',   3,      787,     0 ), /*   776 t                 */
+  S_ST( 'c',   3,      414,     0 ), /*   777 ti                */
+  S_ST( 'm',   3,      780,   777 ), /*   778 ti                */
+  S_ST( 'e',   3,      417,     0 ), /*   779 tim               */
+  S_ST( 'i',   3,      781,   779 ), /*   780 tim               */
+  S_ST( 'n',   3,      782,     0 ), /*   781 timi              */
+  S_ST( 'g',   3,      783,     0 ), /*   782 timin             */
+  S_ST( 's',   3,      784,     0 ), /*   783 timing            */
+  S_ST( 't',   3,      785,     0 ), /*   784 timings           */
+  S_ST( 'a',   3,      786,     0 ), /*   785 timingst          */
+  S_ST( 't',   3,      418,     0 ), /*   786 timingsta         */
+  S_ST( 'n',   3,      788,   778 ), /*   787 ti                */
+  S_ST( 'k',   3,      789,     0 ), /*   788 tin               */
+  S_ST( 'e',   3,      419,     0 ), /*   789 tink              */
+  S_ST( 'o',   3,      420,   776 ), /*   790 t                 */
+  S_ST( 'r',   3,      793,   790 ), /*   791 t                 */
+  S_ST( 'a',   3,      421,     0 ), /*   792 tr                */
+  S_ST( 'u',   3,      794,   792 ), /*   793 tr                */
+  S_ST( 's',   3,      795,   422 ), /*   794 tru               */
+  S_ST( 't',   3,      796,     0 ), /*   795 trus              */
+  S_ST( 'e',   3,      797,     0 ), /*   796 trust             */
+  S_ST( 'd',   3,      798,     0 ), /*   797 truste            */
+  S_ST( 'k',   3,      799,     0 ), /*   798 trusted           */
+  S_ST( 'e',   3,      423,     0 ), /*   799 trustedk          */
+  S_ST( 't',   3,      424,   791 ), /*   800 t                 */
+  S_ST( 'y',   3,      802,   800 ), /*   801 t                 */
+  S_ST( 'p',   3,      425,     0 ), /*   802 ty                */
+  S_ST( 'u',   3,      804,   775 ), /*   803                   */
+  S_ST( 'n',   3,      810,     0 ), /*   804 u                 */
+  S_ST( 'c',   3,      806,     0 ), /*   805 un                */
+  S_ST( 'o',   3,      807,     0 ), /*   806 unc               */
+  S_ST( 'n',   3,      808,     0 ), /*   807 unco              */
+  S_ST( 'f',   3,      809,     0 ), /*   808 uncon             */
+  S_ST( 'i',   3,      427,     0 ), /*   809 unconf            */
+  S_ST( 'p',   3,      811,   805 ), /*   810 un                */
+  S_ST( 'e',   3,      812,     0 ), /*   811 unp               */
+  S_ST( 'e',   3,      428,     0 ), /*   812 unpe              */
+  S_ST( 'v',   3,      814,   803 ), /*   813                   */
+  S_ST( 'e',   3,      815,     0 ), /*   814 v                 */
+  S_ST( 'r',   3,      816,     0 ), /*   815 ve                */
+  S_ST( 's',   3,      817,     0 ), /*   816 ver               */
+  S_ST( 'i',   3,      818,     0 ), /*   817 vers              */
+  S_ST( 'o',   3,      429,     0 ), /*   818 versi             */
+  S_ST( 'w',   3,      826,   813 ), /*   819                   */
+  S_ST( 'a',   3,      821,     0 ), /*   820 w                 */
+  S_ST( 'n',   3,      822,     0 ), /*   821 wa                */
+  S_ST( 'd',   3,      823,     0 ), /*   822 wan               */
+  S_ST( 'e',   3,      443,     0 ), /*   823 wand              */
+  S_ST( 'e',   3,      825,   820 ), /*   824 w                 */
+  S_ST( 'e',   3,      431,     0 ), /*   825 we                */
+  S_ST( 'i',   3,      827,   824 ), /*   826 w                 */
+  S_ST( 'l',   3,      828,     0 ), /*   827 wi                */
+  S_ST( 'd',   3,      829,     0 ), /*   828 wil               */
+  S_ST( 'c',   3,      830,     0 ), /*   829 wild              */
+  S_ST( 'a',   3,      831,     0 ), /*   830 wildc             */
+  S_ST( 'r',   3,      432,     0 ), /*   831 wildca            */
+  S_ST( 'x',   3,      833,   819 ), /*   832                   */
+  S_ST( 'l',   3,      834,     0 ), /*   833 x                 */
+  S_ST( 'e',   3,      835,     0 ), /*   834 xl                */
+  S_ST( 'a',   3,      836,     0 ), /*   835 xle               */
+  S_ST( 'v',   3,      433,     0 ), /*   836 xlea              */
+  S_ST( 'y',   3,      838,   832 ), /*   837 [initial state]   */
+  S_ST( 'e',   3,      839,     0 ), /*   838 y                 */
+  S_ST( 'a',   3,      434,     0 )  /*   839 ye                */
 };
 
index cbf3cda74215dd3ffd6b450306f77ae83a0c9efa..35a997187a77de496e3fb9f24b361fc085ef130a 100644 (file)
 /*
  * Program variables that can be tinkered.
  */
-double clock_max = CLOCK_MAX;  /* step threshold */
+double clock_max_back = CLOCK_MAX;     /* step threshold */
+double clock_max_fwd =  CLOCK_MAX;     /* step threshold */
 double clock_minstep = CLOCK_MINSTEP; /* stepout threshold */
 double clock_panic = CLOCK_PANIC; /* panic threshold */
 double clock_phi = CLOCK_PHI;  /* dispersion rate (s/s) */
@@ -404,7 +405,8 @@ local_clock(
         * directly to the terminal.
         */
        if (mode_ntpdate) {
-               if (fabs(fp_offset) > clock_max && clock_max > 0) {
+               if (  ( fp_offset > clock_max_fwd  && clock_max_fwd  > 0)
+                  || (-fp_offset > clock_max_back && clock_max_back > 0)) {
                        step_systime(fp_offset);
                        msyslog(LOG_NOTICE, "ntpd: time set %+.6f s",
                            fp_offset);
@@ -466,7 +468,8 @@ local_clock(
        mu = current_time - clock_epoch;
        clock_frequency = drift_comp;
        rval = 1;
-       if (fabs(fp_offset) > clock_max && clock_max > 0) {
+       if (  ( fp_offset > clock_max_fwd  && clock_max_fwd  > 0)
+          || (-fp_offset > clock_max_back && clock_max_back > 0)) {
                switch (state) {
 
                /*
@@ -1222,8 +1225,27 @@ loop_config(
                break;
 
        case LOOP_MAX:          /* step threshold (step) */
-               clock_max = freq;
-               if (clock_max == 0 || clock_max > 0.5)
+               clock_max_fwd = clock_max_back = freq;
+               if (freq == 0 || freq > 0.5)
+                       select_loop(FALSE);
+               break;
+
+       case LOOP_MAX_BACK:     /* step threshold (step) */
+               clock_max_back = freq;
+               /*
+                * Leave using the kernel discipline code unless both
+                * limits are massive.  This assumes the reason to stop
+                * using it is that it's pointless, not that it goes wrong.
+                */
+               if (  (clock_max_back == 0 || clock_max_back > 0.5)
+                  && (clock_max_fwd  == 0 || clock_max_fwd  > 0.5))
+                       select_loop(FALSE);
+               break;
+
+       case LOOP_MAX_FWD:      /* step threshold (step) */
+               clock_max_fwd = freq;
+               if (  (clock_max_back == 0 || clock_max_back > 0.5)
+                  && (clock_max_fwd  == 0 || clock_max_fwd  > 0.5))
                        select_loop(FALSE);
                break;
 
index de3d73cedd6509d3049a46a6e2023df271ba3cd7..0cf55197ac6cd857ae6a86db06c906d4e94eada9 100644 (file)
@@ -280,44 +280,46 @@ extern int yydebug;
     T_Stats = 404,
     T_Statsdir = 405,
     T_Step = 406,
-    T_Stepout = 407,
-    T_Stratum = 408,
-    T_String = 409,
-    T_Sys = 410,
-    T_Sysstats = 411,
-    T_Tick = 412,
-    T_Time1 = 413,
-    T_Time2 = 414,
-    T_Timer = 415,
-    T_Timingstats = 416,
-    T_Tinker = 417,
-    T_Tos = 418,
-    T_Trap = 419,
-    T_True = 420,
-    T_Trustedkey = 421,
-    T_Ttl = 422,
-    T_Type = 423,
-    T_U_int = 424,
-    T_Unconfig = 425,
-    T_Unpeer = 426,
-    T_Version = 427,
-    T_WanderThreshold = 428,
-    T_Week = 429,
-    T_Wildcard = 430,
-    T_Xleave = 431,
-    T_Year = 432,
-    T_Flag = 433,
-    T_EOC = 434,
-    T_Simulate = 435,
-    T_Beep_Delay = 436,
-    T_Sim_Duration = 437,
-    T_Server_Offset = 438,
-    T_Duration = 439,
-    T_Freq_Offset = 440,
-    T_Wander = 441,
-    T_Jitter = 442,
-    T_Prop_Delay = 443,
-    T_Proc_Delay = 444
+    T_Stepback = 407,
+    T_Stepfwd = 408,
+    T_Stepout = 409,
+    T_Stratum = 410,
+    T_String = 411,
+    T_Sys = 412,
+    T_Sysstats = 413,
+    T_Tick = 414,
+    T_Time1 = 415,
+    T_Time2 = 416,
+    T_Timer = 417,
+    T_Timingstats = 418,
+    T_Tinker = 419,
+    T_Tos = 420,
+    T_Trap = 421,
+    T_True = 422,
+    T_Trustedkey = 423,
+    T_Ttl = 424,
+    T_Type = 425,
+    T_U_int = 426,
+    T_Unconfig = 427,
+    T_Unpeer = 428,
+    T_Version = 429,
+    T_WanderThreshold = 430,
+    T_Week = 431,
+    T_Wildcard = 432,
+    T_Xleave = 433,
+    T_Year = 434,
+    T_Flag = 435,
+    T_EOC = 436,
+    T_Simulate = 437,
+    T_Beep_Delay = 438,
+    T_Sim_Duration = 439,
+    T_Server_Offset = 440,
+    T_Duration = 441,
+    T_Freq_Offset = 442,
+    T_Wander = 443,
+    T_Jitter = 444,
+    T_Prop_Delay = 445,
+    T_Proc_Delay = 446
   };
 #endif
 /* Tokens.  */
@@ -470,44 +472,46 @@ extern int yydebug;
 #define T_Stats 404
 #define T_Statsdir 405
 #define T_Step 406
-#define T_Stepout 407
-#define T_Stratum 408
-#define T_String 409
-#define T_Sys 410
-#define T_Sysstats 411
-#define T_Tick 412
-#define T_Time1 413
-#define T_Time2 414
-#define T_Timer 415
-#define T_Timingstats 416
-#define T_Tinker 417
-#define T_Tos 418
-#define T_Trap 419
-#define T_True 420
-#define T_Trustedkey 421
-#define T_Ttl 422
-#define T_Type 423
-#define T_U_int 424
-#define T_Unconfig 425
-#define T_Unpeer 426
-#define T_Version 427
-#define T_WanderThreshold 428
-#define T_Week 429
-#define T_Wildcard 430
-#define T_Xleave 431
-#define T_Year 432
-#define T_Flag 433
-#define T_EOC 434
-#define T_Simulate 435
-#define T_Beep_Delay 436
-#define T_Sim_Duration 437
-#define T_Server_Offset 438
-#define T_Duration 439
-#define T_Freq_Offset 440
-#define T_Wander 441
-#define T_Jitter 442
-#define T_Prop_Delay 443
-#define T_Proc_Delay 444
+#define T_Stepback 407
+#define T_Stepfwd 408
+#define T_Stepout 409
+#define T_Stratum 410
+#define T_String 411
+#define T_Sys 412
+#define T_Sysstats 413
+#define T_Tick 414
+#define T_Time1 415
+#define T_Time2 416
+#define T_Timer 417
+#define T_Timingstats 418
+#define T_Tinker 419
+#define T_Tos 420
+#define T_Trap 421
+#define T_True 422
+#define T_Trustedkey 423
+#define T_Ttl 424
+#define T_Type 425
+#define T_U_int 426
+#define T_Unconfig 427
+#define T_Unpeer 428
+#define T_Version 429
+#define T_WanderThreshold 430
+#define T_Week 431
+#define T_Wildcard 432
+#define T_Xleave 433
+#define T_Year 434
+#define T_Flag 435
+#define T_EOC 436
+#define T_Simulate 437
+#define T_Beep_Delay 438
+#define T_Sim_Duration 439
+#define T_Server_Offset 440
+#define T_Duration 441
+#define T_Freq_Offset 442
+#define T_Wander 443
+#define T_Jitter 444
+#define T_Prop_Delay 445
+#define T_Proc_Delay 446
 
 /* Value type.  */
 #if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED
@@ -533,7 +537,7 @@ union YYSTYPE
        script_info *           Sim_script;
        script_info_fifo *      Sim_script_fifo;
 
-#line 537 "ntp_parser.c" /* yacc.c:355  */
+#line 541 "ntp_parser.c" /* yacc.c:355  */
 };
 # define YYSTYPE_IS_TRIVIAL 1
 # define YYSTYPE_IS_DECLARED 1
@@ -548,7 +552,7 @@ int yyparse (struct FILE_INFO *ip_file);
 
 /* Copy the second part of user declarations.  */
 
-#line 552 "ntp_parser.c" /* yacc.c:358  */
+#line 556 "ntp_parser.c" /* yacc.c:358  */
 
 #ifdef short
 # undef short
@@ -788,23 +792,23 @@ union yyalloc
 #endif /* !YYCOPY_NEEDED */
 
 /* YYFINAL -- State number of the termination state.  */
-#define YYFINAL  205
+#define YYFINAL  207
 /* YYLAST -- Last index in YYTABLE.  */
-#define YYLAST   634
+#define YYLAST   622
 
 /* YYNTOKENS -- Number of terminals.  */
-#define YYNTOKENS  195
+#define YYNTOKENS  197
 /* YYNNTS -- Number of nonterminals.  */
 #define YYNNTS  104
 /* YYNRULES -- Number of rules.  */
-#define YYNRULES  308
+#define YYNRULES  310
 /* YYNSTATES -- Number of states.  */
-#define YYNSTATES  413
+#define YYNSTATES  415
 
 /* YYTRANSLATE[YYX] -- Symbol number corresponding to YYX as returned
    by yylex, with out-of-bounds checking.  */
 #define YYUNDEFTOK  2
-#define YYMAXUTOK   444
+#define YYMAXUTOK   446
 
 #define YYTRANSLATE(YYX)                                                \
   ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK)
@@ -817,15 +821,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,
-     191,   192,     2,     2,     2,     2,     2,     2,     2,     2,
+     193,   194,     2,     2,     2,     2,     2,     2,     2,     2,
        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
-       2,   190,     2,     2,     2,     2,     2,     2,     2,     2,
+       2,   192,     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,   193,     2,   194,     2,     2,     2,     2,
+       2,     2,     2,   195,     2,   196,     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,
@@ -857,44 +861,45 @@ static const yytype_uint8 yytranslate[] =
      155,   156,   157,   158,   159,   160,   161,   162,   163,   164,
      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
+     185,   186,   187,   188,   189,   190,   191
 };
 
 #if YYDEBUG
   /* YYRLINE[YYN] -- Source line where rule number YYN was defined.  */
 static const yytype_uint16 yyrline[] =
 {
-       0,   364,   364,   368,   369,   370,   384,   385,   386,   387,
-     388,   389,   390,   391,   392,   393,   394,   395,   396,   397,
-     405,   415,   416,   417,   418,   419,   423,   424,   429,   434,
-     436,   442,   443,   451,   452,   453,   457,   462,   463,   464,
-     465,   466,   467,   468,   469,   473,   475,   480,   481,   482,
-     483,   484,   485,   489,   494,   503,   513,   514,   524,   526,
-     528,   530,   541,   548,   550,   555,   557,   559,   561,   563,
-     572,   578,   579,   587,   589,   601,   602,   603,   604,   605,
-     614,   619,   624,   632,   634,   636,   641,   642,   643,   644,
-     645,   646,   650,   651,   652,   653,   662,   664,   673,   683,
-     688,   696,   697,   698,   699,   700,   701,   702,   703,   708,
-     709,   717,   727,   736,   751,   756,   757,   761,   762,   766,
-     767,   768,   769,   770,   771,   772,   781,   785,   789,   797,
-     805,   813,   828,   843,   856,   857,   865,   866,   867,   868,
-     869,   870,   871,   872,   873,   874,   875,   876,   877,   878,
-     879,   883,   888,   896,   901,   902,   903,   907,   912,   920,
-     925,   926,   927,   928,   929,   930,   931,   932,   940,   950,
-     955,   963,   965,   967,   969,   971,   976,   977,   981,   982,
-     983,   984,   992,   997,  1002,  1010,  1015,  1016,  1017,  1026,
-    1028,  1033,  1038,  1046,  1048,  1065,  1066,  1067,  1068,  1069,
-    1070,  1074,  1075,  1083,  1088,  1093,  1101,  1106,  1107,  1108,
-    1109,  1110,  1111,  1112,  1113,  1122,  1123,  1124,  1131,  1138,
-    1154,  1173,  1178,  1180,  1182,  1184,  1186,  1193,  1198,  1199,
-    1200,  1204,  1205,  1206,  1210,  1211,  1215,  1222,  1232,  1241,
-    1246,  1248,  1253,  1254,  1262,  1264,  1272,  1277,  1285,  1310,
-    1317,  1327,  1328,  1332,  1333,  1334,  1335,  1339,  1340,  1341,
-    1345,  1350,  1355,  1363,  1364,  1365,  1366,  1367,  1368,  1369,
-    1379,  1384,  1392,  1397,  1405,  1407,  1411,  1416,  1421,  1429,
-    1434,  1442,  1451,  1452,  1456,  1457,  1466,  1484,  1488,  1493,
-    1501,  1506,  1507,  1511,  1516,  1524,  1529,  1534,  1539,  1544,
-    1552,  1557,  1562,  1570,  1575,  1576,  1577,  1578,  1579
+       0,   366,   366,   370,   371,   372,   386,   387,   388,   389,
+     390,   391,   392,   393,   394,   395,   396,   397,   398,   399,
+     407,   417,   418,   419,   420,   421,   425,   426,   431,   436,
+     438,   444,   445,   453,   454,   455,   459,   464,   465,   466,
+     467,   468,   469,   470,   471,   475,   477,   482,   483,   484,
+     485,   486,   487,   491,   496,   505,   515,   516,   526,   528,
+     530,   532,   543,   550,   552,   557,   559,   561,   563,   565,
+     574,   580,   581,   589,   591,   603,   604,   605,   606,   607,
+     616,   621,   626,   634,   636,   638,   643,   644,   645,   646,
+     647,   648,   652,   653,   654,   655,   664,   666,   675,   685,
+     690,   698,   699,   700,   701,   702,   703,   704,   705,   710,
+     711,   719,   729,   738,   753,   758,   759,   763,   764,   768,
+     769,   770,   771,   772,   773,   774,   783,   787,   791,   799,
+     807,   815,   830,   845,   858,   859,   867,   868,   869,   870,
+     871,   872,   873,   874,   875,   876,   877,   878,   879,   880,
+     881,   885,   890,   898,   903,   904,   905,   909,   914,   922,
+     927,   928,   929,   930,   931,   932,   933,   934,   942,   952,
+     957,   965,   967,   969,   971,   973,   978,   979,   983,   984,
+     985,   986,   994,   999,  1004,  1012,  1017,  1018,  1019,  1028,
+    1030,  1035,  1040,  1048,  1050,  1067,  1068,  1069,  1070,  1071,
+    1072,  1076,  1077,  1085,  1090,  1095,  1103,  1108,  1109,  1110,
+    1111,  1112,  1113,  1114,  1115,  1116,  1117,  1126,  1127,  1128,
+    1135,  1142,  1158,  1177,  1182,  1184,  1186,  1188,  1190,  1197,
+    1202,  1203,  1204,  1208,  1209,  1210,  1214,  1215,  1219,  1226,
+    1236,  1245,  1250,  1252,  1257,  1258,  1266,  1268,  1276,  1281,
+    1289,  1314,  1321,  1331,  1332,  1336,  1337,  1338,  1339,  1343,
+    1344,  1345,  1349,  1354,  1359,  1367,  1368,  1369,  1370,  1371,
+    1372,  1373,  1383,  1388,  1396,  1401,  1409,  1411,  1415,  1420,
+    1425,  1433,  1438,  1446,  1455,  1456,  1460,  1461,  1470,  1488,
+    1492,  1497,  1505,  1510,  1511,  1515,  1520,  1528,  1533,  1538,
+    1543,  1548,  1556,  1561,  1566,  1574,  1579,  1580,  1581,  1582,
+    1583
 };
 #endif
 
@@ -932,31 +937,32 @@ static const char *const yytname[] =
   "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",
-  "T_Step", "T_Stepout", "T_Stratum", "T_String", "T_Sys", "T_Sysstats",
-  "T_Tick", "T_Time1", "T_Time2", "T_Timer", "T_Timingstats", "T_Tinker",
-  "T_Tos", "T_Trap", "T_True", "T_Trustedkey", "T_Ttl", "T_Type",
-  "T_U_int", "T_Unconfig", "T_Unpeer", "T_Version", "T_WanderThreshold",
-  "T_Week", "T_Wildcard", "T_Xleave", "T_Year", "T_Flag", "T_EOC",
-  "T_Simulate", "T_Beep_Delay", "T_Sim_Duration", "T_Server_Offset",
-  "T_Duration", "T_Freq_Offset", "T_Wander", "T_Jitter", "T_Prop_Delay",
-  "T_Proc_Delay", "'='", "'('", "')'", "'{'", "'}'", "$accept",
-  "configuration", "command_list", "command", "server_command",
-  "client_type", "address", "ip_address", "address_fam", "option_list",
-  "option", "option_flag", "option_flag_keyword", "option_int",
-  "option_int_keyword", "option_str", "option_str_keyword",
-  "unpeer_command", "unpeer_keyword", "other_mode_command",
-  "authentication_command", "crypto_command_list", "crypto_command",
-  "crypto_str_keyword", "orphan_mode_command", "tos_option_list",
-  "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",
+  "T_Step", "T_Stepback", "T_Stepfwd", "T_Stepout", "T_Stratum",
+  "T_String", "T_Sys", "T_Sysstats", "T_Tick", "T_Time1", "T_Time2",
+  "T_Timer", "T_Timingstats", "T_Tinker", "T_Tos", "T_Trap", "T_True",
+  "T_Trustedkey", "T_Ttl", "T_Type", "T_U_int", "T_Unconfig", "T_Unpeer",
+  "T_Version", "T_WanderThreshold", "T_Week", "T_Wildcard", "T_Xleave",
+  "T_Year", "T_Flag", "T_EOC", "T_Simulate", "T_Beep_Delay",
+  "T_Sim_Duration", "T_Server_Offset", "T_Duration", "T_Freq_Offset",
+  "T_Wander", "T_Jitter", "T_Prop_Delay", "T_Proc_Delay", "'='", "'('",
+  "')'", "'{'", "'}'", "$accept", "configuration", "command_list",
+  "command", "server_command", "client_type", "address", "ip_address",
+  "address_fam", "option_list", "option", "option_flag",
+  "option_flag_keyword", "option_int", "option_int_keyword", "option_str",
+  "option_str_keyword", "unpeer_command", "unpeer_keyword",
+  "other_mode_command", "authentication_command", "crypto_command_list",
+  "crypto_command", "crypto_str_keyword", "orphan_mode_command",
+  "tos_option_list", "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",
   "system_option_local_flag_keyword", "tinker_command",
   "tinker_option_list", "tinker_option", "tinker_option_keyword",
   "miscellaneous_command", "misc_cmd_dbl_keyword", "misc_cmd_str_keyword",
@@ -998,14 +1004,14 @@ static const yytype_uint16 yytoknum[] =
      415,   416,   417,   418,   419,   420,   421,   422,   423,   424,
      425,   426,   427,   428,   429,   430,   431,   432,   433,   434,
      435,   436,   437,   438,   439,   440,   441,   442,   443,   444,
-      61,    40,    41,   123,   125
+     445,   446,    61,    40,    41,   123,   125
 };
 # endif
 
-#define YYPACT_NINF -180
+#define YYPACT_NINF -182
 
 #define yypact_value_is_default(Yystate) \
-  (!!((Yystate) == (-180)))
+  (!!((Yystate) == (-182)))
 
 #define YYTABLE_NINF -7
 
@@ -1016,48 +1022,48 @@ static const yytype_uint16 yytoknum[] =
      STATE-NUM.  */
 static const yytype_int16 yypact[] =
 {
-      26,  -147,    -9,  -180,  -180,  -180,    -6,  -180,   222,     9,
-     -96,   222,  -180,   276,   -41,  -180,   -93,  -180,   -90,   -86,
-    -180,   -84,  -180,  -180,   -41,     0,   443,   -41,  -180,  -180,
-     -83,  -180,   -82,  -180,  -180,    20,    27,   -20,    21,   -19,
-    -180,  -180,   -68,   276,   -66,  -180,   221,   328,   -65,   -55,
-      38,  -180,  -180,  -180,    99,   188,   -69,  -180,   -41,  -180,
-     -41,  -180,  -180,  -180,  -180,  -180,  -180,  -180,  -180,  -180,
-    -180,    -3,   -40,   -39,  -180,    -4,  -180,  -180,   -77,  -180,
-    -180,  -180,   254,  -180,  -180,  -180,  -180,  -180,  -180,  -180,
-    -180,   222,  -180,  -180,  -180,  -180,  -180,  -180,     9,  -180,
-      47,    90,  -180,   222,  -180,  -180,  -180,  -180,  -180,  -180,
-    -180,  -180,  -180,  -180,  -180,  -180,    98,  -180,   -31,   347,
-    -180,  -180,  -180,   -84,  -180,  -180,   -41,  -180,  -180,  -180,
-    -180,  -180,  -180,  -180,  -180,  -180,   443,  -180,    61,   -41,
-    -180,  -180,   -30,  -180,  -180,  -180,  -180,  -180,  -180,  -180,
-    -180,    27,  -180,  -180,   102,   106,  -180,  -180,    55,  -180,
-    -180,  -180,  -180,   -19,  -180,    87,   -42,  -180,   276,  -180,
-    -180,  -180,  -180,  -180,  -180,  -180,  -180,  -180,  -180,   221,
-    -180,    -3,  -180,  -180,   -27,  -180,  -180,  -180,  -180,  -180,
-    -180,  -180,  -180,   328,  -180,    91,    -3,  -180,  -180,    93,
-     -55,  -180,  -180,  -180,    96,  -180,   -21,  -180,  -180,  -180,
-    -180,  -180,  -180,  -180,  -180,  -180,  -180,  -180,     3,  -144,
-    -180,  -180,  -180,  -180,  -180,   100,  -180,    -5,  -180,  -180,
-    -180,  -180,   -23,     5,  -180,  -180,  -180,  -180,     7,   103,
-    -180,  -180,    98,  -180,    -3,   -27,  -180,  -180,  -180,  -180,
-    -180,  -180,  -180,  -180,   462,  -180,  -180,   462,   462,   -65,
-    -180,  -180,     8,  -180,  -180,  -180,  -180,  -180,  -180,  -180,
-    -180,  -180,  -180,   -47,   138,  -180,  -180,  -180,   425,  -180,
-    -180,  -180,  -180,  -180,  -180,  -180,  -180,  -105,    -2,   -15,
-    -180,  -180,  -180,  -180,    25,  -180,  -180,    17,  -180,  -180,
-    -180,  -180,  -180,  -180,  -180,  -180,  -180,  -180,  -180,  -180,
-    -180,  -180,  -180,  -180,  -180,  -180,  -180,  -180,  -180,  -180,
-    -180,  -180,  -180,   462,   462,  -180,   154,   -65,   124,  -180,
-     125,  -180,  -180,  -180,  -180,  -180,  -180,  -180,  -180,  -180,
-    -180,  -180,  -180,  -180,  -180,  -180,  -180,  -180,  -180,  -180,
-     -51,  -180,    32,    10,    16,  -116,  -180,     6,  -180,    -3,
-    -180,  -180,  -180,  -180,  -180,  -180,  -180,  -180,  -180,   462,
-    -180,  -180,  -180,  -180,    15,  -180,  -180,  -180,   -41,  -180,
-    -180,  -180,    18,  -180,  -180,  -180,    22,    24,    -3,    23,
-    -169,  -180,    36,    -3,  -180,  -180,  -180,    29,   -94,  -180,
-    -180,  -180,  -180,  -180,    89,    37,    30,  -180,    40,  -180,
-      -3,  -180,  -180
+      18,  -161,   -18,  -182,  -182,  -182,   -10,  -182,   189,    11,
+    -103,   189,  -182,     7,   -49,  -182,  -100,  -182,   -97,   -90,
+    -182,   -84,  -182,  -182,   -49,    13,   365,   -49,  -182,  -182,
+     -81,  -182,   -80,  -182,  -182,    20,    86,   104,    21,   -33,
+    -182,  -182,   -73,     7,   -72,  -182,    51,   500,   -71,   -54,
+      26,  -182,  -182,  -182,    90,   205,   -83,  -182,   -49,  -182,
+     -49,  -182,  -182,  -182,  -182,  -182,  -182,  -182,  -182,  -182,
+    -182,    -8,   -65,   -51,  -182,    -9,  -182,  -182,   -91,  -182,
+    -182,  -182,   -15,  -182,  -182,  -182,  -182,  -182,  -182,  -182,
+    -182,   189,  -182,  -182,  -182,  -182,  -182,  -182,    11,  -182,
+      46,    85,  -182,   189,  -182,  -182,  -182,  -182,  -182,  -182,
+    -182,  -182,  -182,  -182,  -182,  -182,    92,  -182,   -35,   366,
+    -182,  -182,  -182,   -84,  -182,  -182,   -49,  -182,  -182,  -182,
+    -182,  -182,  -182,  -182,  -182,  -182,   365,  -182,    68,   -49,
+    -182,  -182,   -23,  -182,  -182,  -182,  -182,  -182,  -182,  -182,
+    -182,    86,  -182,  -182,   114,   121,  -182,  -182,    67,  -182,
+    -182,  -182,  -182,   -33,  -182,    93,   -28,  -182,     7,  -182,
+    -182,  -182,  -182,  -182,  -182,  -182,  -182,  -182,  -182,  -182,
+    -182,    51,  -182,    -8,  -182,  -182,   -17,  -182,  -182,  -182,
+    -182,  -182,  -182,  -182,  -182,   500,  -182,   107,    -8,  -182,
+    -182,   112,   -54,  -182,  -182,  -182,   113,  -182,     8,  -182,
+    -182,  -182,  -182,  -182,  -182,  -182,  -182,  -182,  -182,  -182,
+      -2,  -147,  -182,  -182,  -182,  -182,  -182,   128,  -182,    25,
+    -182,  -182,  -182,  -182,   116,    37,  -182,  -182,  -182,  -182,
+      38,   135,  -182,  -182,    92,  -182,    -8,   -17,  -182,  -182,
+    -182,  -182,  -182,  -182,  -182,  -182,   445,  -182,  -182,   445,
+     445,   -71,  -182,  -182,    40,  -182,  -182,  -182,  -182,  -182,
+    -182,  -182,  -182,  -182,  -182,   -52,   163,  -182,  -182,  -182,
+     261,  -182,  -182,  -182,  -182,  -182,  -182,  -182,  -182,  -114,
+      27,    14,  -182,  -182,  -182,  -182,    55,  -182,  -182,     0,
+    -182,  -182,  -182,  -182,  -182,  -182,  -182,  -182,  -182,  -182,
+    -182,  -182,  -182,  -182,  -182,  -182,  -182,  -182,  -182,  -182,
+    -182,  -182,  -182,  -182,  -182,   445,   445,  -182,   185,   -71,
+     153,  -182,   156,  -182,  -182,  -182,  -182,  -182,  -182,  -182,
+    -182,  -182,  -182,  -182,  -182,  -182,  -182,  -182,  -182,  -182,
+    -182,  -182,   -53,  -182,    61,    30,    43,  -133,  -182,    23,
+    -182,    -8,  -182,  -182,  -182,  -182,  -182,  -182,  -182,  -182,
+    -182,   445,  -182,  -182,  -182,  -182,    32,  -182,  -182,  -182,
+     -49,  -182,  -182,  -182,    45,  -182,  -182,  -182,    41,    50,
+      -8,    47,  -157,  -182,    56,    -8,  -182,  -182,  -182,    49,
+     130,  -182,  -182,  -182,  -182,  -182,   110,    59,    54,  -182,
+      70,  -182,    -8,  -182,  -182
 };
 
   /* YYDEFACT[STATE-NUM] -- Default reduction number in state STATE-NUM.
@@ -1065,80 +1071,80 @@ static const yytype_int16 yypact[] =
      means the default is an error.  */
 static const yytype_uint16 yydefact[] =
 {
-       0,     0,     0,    24,    58,   228,     0,    71,     0,     0,
-     238,     0,   221,     0,     0,   231,     0,   251,     0,     0,
-     232,     0,   234,    25,     0,     0,     0,     0,   252,   229,
-       0,    23,     0,   233,    22,     0,     0,     0,     0,     0,
-     235,    21,     0,     0,     0,   230,     0,     0,     0,     0,
-       0,    56,    57,   287,     0,     2,     0,     7,     0,     8,
+       0,     0,     0,    24,    58,   230,     0,    71,     0,     0,
+     240,     0,   223,     0,     0,   233,     0,   253,     0,     0,
+     234,     0,   236,    25,     0,     0,     0,     0,   254,   231,
+       0,    23,     0,   235,    22,     0,     0,     0,     0,     0,
+     237,    21,     0,     0,     0,   232,     0,     0,     0,     0,
+       0,    56,    57,   289,     0,     2,     0,     7,     0,     8,
        0,     9,    10,    13,    11,    12,    14,    15,    16,    17,
-      18,     0,     0,     0,   215,     0,   216,    19,     0,     5,
+      18,     0,     0,     0,   217,     0,   218,    19,     0,     5,
       62,    63,    64,   195,   196,   197,   198,   201,   199,   200,
      202,   190,   192,   193,   194,   154,   155,   156,   126,   152,
-       0,   236,   222,   189,   101,   102,   103,   104,   108,   105,
+       0,   238,   224,   189,   101,   102,   103,   104,   108,   105,
      106,   107,   109,    29,    30,    28,     0,    26,     0,     6,
-      65,    66,   248,   223,   247,   280,    59,    61,   160,   161,
+      65,    66,   250,   225,   249,   282,    59,    61,   160,   161,
      162,   163,   164,   165,   166,   167,   127,   158,     0,    60,
-      70,   278,   224,    67,   263,   264,   265,   266,   267,   268,
-     269,   260,   262,   134,    29,    30,   134,   134,    26,    68,
-     188,   186,   187,   182,   184,     0,     0,   225,    96,   100,
-      97,   207,   208,   209,   210,   211,   212,   213,   214,   203,
-     205,     0,    91,    86,     0,    87,    95,    93,    94,    92,
-      90,    88,    89,    80,    82,     0,     0,   242,   274,     0,
-      69,   273,   275,   271,   227,     1,     0,     4,    31,    55,
-     285,   284,   217,   218,   219,   259,   258,   257,     0,     0,
-      79,    75,    76,    77,    78,     0,    72,     0,   191,   151,
-     153,   237,    98,     0,   178,   179,   180,   181,     0,     0,
-     176,   177,   168,   170,     0,     0,    27,   220,   246,   279,
-     157,   159,   277,   261,   130,   134,   134,   133,   128,     0,
-     183,   185,     0,    99,   204,   206,   283,   281,   282,    85,
-      81,    83,    84,   226,     0,   272,   270,     3,    20,   253,
-     254,   255,   250,   256,   249,   291,   292,     0,     0,     0,
-      74,    73,   118,   117,     0,   115,   116,     0,   110,   113,
-     114,   174,   175,   173,   169,   171,   172,   136,   137,   138,
-     139,   140,   141,   142,   143,   144,   145,   146,   147,   148,
-     149,   150,   135,   131,   132,   134,   241,     0,     0,   243,
-       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,   294,     0,   289,     0,
-     111,   125,   121,   123,   119,   120,   122,   124,   112,   129,
-     240,   239,   245,   244,     0,    45,    46,    53,     0,   288,
-     286,   293,     0,   290,   276,   297,     0,     0,     0,     0,
-       0,   299,     0,     0,   295,   298,   296,     0,     0,   304,
-     305,   306,   307,   308,     0,     0,     0,   300,     0,   302,
-       0,   301,   303
+      70,   280,   226,    67,   265,   266,   267,   268,   269,   270,
+     271,   262,   264,   134,    29,    30,   134,   134,    26,    68,
+     188,   186,   187,   182,   184,     0,     0,   227,    96,   100,
+      97,   207,   208,   209,   210,   211,   212,   213,   214,   215,
+     216,   203,   205,     0,    91,    86,     0,    87,    95,    93,
+      94,    92,    90,    88,    89,    80,    82,     0,     0,   244,
+     276,     0,    69,   275,   277,   273,   229,     1,     0,     4,
+      31,    55,   287,   286,   219,   220,   221,   261,   260,   259,
+       0,     0,    79,    75,    76,    77,    78,     0,    72,     0,
+     191,   151,   153,   239,    98,     0,   178,   179,   180,   181,
+       0,     0,   176,   177,   168,   170,     0,     0,    27,   222,
+     248,   281,   157,   159,   279,   263,   130,   134,   134,   133,
+     128,     0,   183,   185,     0,    99,   204,   206,   285,   283,
+     284,    85,    81,    83,    84,   228,     0,   274,   272,     3,
+      20,   255,   256,   257,   252,   258,   251,   293,   294,     0,
+       0,     0,    74,    73,   118,   117,     0,   115,   116,     0,
+     110,   113,   114,   174,   175,   173,   169,   171,   172,   136,
+     137,   138,   139,   140,   141,   142,   143,   144,   145,   146,
+     147,   148,   149,   150,   135,   131,   132,   134,   243,     0,
+       0,   245,     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,   296,     0,
+     291,     0,   111,   125,   121,   123,   119,   120,   122,   124,
+     112,   129,   242,   241,   247,   246,     0,    45,    46,    53,
+       0,   290,   288,   295,     0,   292,   278,   299,     0,     0,
+       0,     0,     0,   301,     0,     0,   297,   300,   298,     0,
+       0,   306,   307,   308,   309,   310,     0,     0,     0,   302,
+       0,   304,     0,   303,   305
 };
 
   /* YYPGOTO[NTERM-NUM].  */
 static const yytype_int16 yypgoto[] =
 {
-    -180,  -180,  -180,   -37,  -180,  -180,   -14,   -36,  -180,  -180,
-    -180,  -180,  -180,  -180,  -180,  -180,  -180,  -180,  -180,  -180,
-    -180,  -180,  -180,  -180,  -180,  -180,    33,  -180,  -180,  -180,
-    -180,   -33,  -180,  -180,  -180,  -180,  -180,  -180,  -153,  -180,
-    -180,   131,  -180,  -180,    97,  -180,  -180,  -180,   -10,  -180,
-    -180,  -180,  -180,    73,  -180,  -180,   227,   -72,  -180,  -180,
-    -180,  -180,    60,  -180,  -180,  -180,  -180,  -180,  -180,  -180,
-    -180,  -180,  -180,  -180,   119,  -180,  -180,  -180,  -180,  -180,
-    -180,    92,  -180,  -180,    44,  -180,  -180,   218,     1,  -179,
-    -180,  -180,  -180,   -34,  -180,  -180,  -107,  -180,  -180,  -180,
-    -140,  -180,  -150,  -180
+    -182,  -182,  -182,   -45,  -182,  -182,   -14,   -36,  -182,  -182,
+    -182,  -182,  -182,  -182,  -182,  -182,  -182,  -182,  -182,  -182,
+    -182,  -182,  -182,  -182,  -182,  -182,    60,  -182,  -182,  -182,
+    -182,   -38,  -182,  -182,  -182,  -182,  -182,  -182,  -142,  -182,
+    -182,   134,  -182,  -182,   120,  -182,  -182,  -182,     5,  -182,
+    -182,  -182,  -182,    96,  -182,  -182,   250,   -42,  -182,  -182,
+    -182,  -182,    81,  -182,  -182,  -182,  -182,  -182,  -182,  -182,
+    -182,  -182,  -182,  -182,   140,  -182,  -182,  -182,  -182,  -182,
+    -182,   117,  -182,  -182,    63,  -182,  -182,   240,    22,  -181,
+    -182,  -182,  -182,   -16,  -182,  -182,   -86,  -182,  -182,  -182,
+    -120,  -182,  -132,  -182
 };
 
   /* YYDEFGOTO[NTERM-NUM].  */
 static const yytype_int16 yydefgoto[] =
 {
-      -1,    54,    55,    56,    57,    58,   125,   117,   118,   278,
-     346,   347,   348,   349,   350,   351,   352,    59,    60,    61,
-      62,    82,   226,   227,    63,   193,   194,   195,   196,    64,
-     168,   112,   232,   298,   299,   300,   368,    65,   254,   322,
-      98,    99,   100,   136,   137,   138,    66,   242,   243,   244,
-     245,    67,   163,   164,   165,    68,    91,    92,    93,    94,
-      69,   179,   180,   181,    70,    71,    72,    73,   102,   167,
-     371,   273,   329,   123,   124,    74,    75,   284,   218,    76,
-     151,   152,   204,   200,   201,   202,   142,   126,   269,   212,
-      77,    78,   287,   288,   289,   355,   356,   387,   357,   390,
-     391,   404,   405,   406
+      -1,    54,    55,    56,    57,    58,   125,   117,   118,   280,
+     348,   349,   350,   351,   352,   353,   354,    59,    60,    61,
+      62,    82,   228,   229,    63,   195,   196,   197,   198,    64,
+     168,   112,   234,   300,   301,   302,   370,    65,   256,   324,
+      98,    99,   100,   136,   137,   138,    66,   244,   245,   246,
+     247,    67,   163,   164,   165,    68,    91,    92,    93,    94,
+      69,   181,   182,   183,    70,    71,    72,    73,   102,   167,
+     373,   275,   331,   123,   124,    74,    75,   286,   220,    76,
+     151,   152,   206,   202,   203,   204,   142,   126,   271,   214,
+      77,    78,   289,   290,   291,   357,   358,   389,   359,   392,
+     393,   406,   407,   408
 };
 
   /* YYTABLE[YYPACT[STATE-NUM]] -- What to do in state STATE-NUM.  If
@@ -1146,138 +1152,136 @@ static const yytype_int16 yydefgoto[] =
      number is the opposite.  If YYTABLE_NINF, syntax error.  */
 static const yytype_int16 yytable[] =
 {
-     116,   158,   265,   257,   258,   198,   292,   153,   279,   375,
-     169,   266,   197,   293,   327,   389,   294,   272,   206,   228,
-      95,   361,   160,   157,   113,   394,   114,     1,   353,   210,
-     215,   228,    79,   267,   144,   145,     2,   285,   286,   353,
-       3,     4,     5,   362,   208,   154,   209,   155,     6,     7,
-     216,    80,   146,   295,    81,     8,     9,   211,   101,    10,
-     127,   119,    11,    12,   120,   305,    13,   280,   121,   281,
-     122,   140,   141,   217,   161,    14,   285,   286,   380,    15,
-     143,   159,   247,   328,   296,    16,   166,    17,   170,   115,
-     147,   399,   400,   401,   402,   403,    18,    19,   203,   205,
-      20,   233,   323,   324,    21,    22,    96,   230,    23,    24,
-     207,    97,   249,   115,   213,   214,   219,    25,   376,   148,
-     363,   251,   231,   246,   252,   249,   156,   364,   162,   255,
-      26,    27,    28,   256,   115,   263,   199,    29,   268,   259,
-     234,   235,   236,   237,   365,   297,    30,   261,   262,   291,
-      31,   271,    32,   274,    33,    34,   276,   282,   277,   301,
-     290,   302,   326,   303,    35,    36,    37,    38,    39,    40,
-      41,    42,   369,   330,    43,   359,    44,   358,   283,   360,
-     383,   370,   149,    45,   373,   374,   377,   150,    46,    47,
-      48,   366,    49,    50,   367,   379,    51,    52,     2,   382,
-     378,   386,     3,     4,     5,    -6,    53,   384,   389,   392,
-       6,     7,   388,   393,   397,   396,   409,     8,     9,   411,
-     410,    10,   398,   325,    11,    12,   270,   171,    13,   229,
-      83,   412,   304,   250,    84,   238,   260,    14,   103,   264,
-      85,    15,   248,   253,   275,   139,   306,    16,   381,    17,
-     395,   239,   172,   354,   408,     0,   240,   241,    18,    19,
-       0,     0,    20,     0,     0,     0,    21,    22,     0,   173,
-      23,    24,   174,     0,   399,   400,   401,   402,   403,    25,
-       0,     0,   220,   407,     0,     0,     0,     0,     0,     0,
-      86,   372,    26,    27,    28,     0,   104,     0,     0,    29,
-     105,     0,     0,     0,   221,     0,     0,   222,    30,     0,
-       0,     0,    31,     0,    32,     0,    33,    34,     0,     0,
-       0,     0,     0,    87,    88,     0,    35,    36,    37,    38,
-      39,    40,    41,    42,     0,     0,    43,     0,    44,     0,
-      89,   182,     0,     0,   175,    45,     0,   183,     0,   184,
-      46,    47,    48,     0,    49,    50,   106,     2,    51,    52,
-       0,     3,     4,     5,   385,     0,     0,    -6,    53,     6,
-       7,    90,   176,   177,     0,   185,     8,     9,   178,     0,
-      10,     0,     0,    11,    12,     0,     0,    13,   223,   224,
-       0,     0,     0,     0,     0,   225,    14,     0,     0,     0,
-      15,   107,     0,     0,     0,     0,    16,     0,    17,   108,
-       0,     0,   109,     0,   186,     0,   187,    18,    19,     0,
-       0,    20,   188,     0,   189,    21,    22,   190,     0,    23,
-      24,     0,   110,     0,   331,     0,     0,   111,    25,     0,
-       0,     0,   332,     0,     0,     0,     0,     0,     0,   191,
-     192,    26,    27,    28,     0,     0,     0,     0,    29,     0,
-       0,     0,     0,     0,     0,     0,     0,    30,     0,     0,
-       0,    31,     0,    32,     0,    33,    34,   333,   334,     0,
-       0,     0,     0,     0,     0,    35,    36,    37,    38,    39,
-      40,    41,    42,     0,   335,    43,     0,    44,   128,   129,
-     130,   131,     0,     0,    45,     0,     0,     0,   307,    46,
-      47,    48,     0,    49,    50,   336,   308,    51,    52,     0,
-       0,     0,     0,   337,     0,   338,     0,    53,   132,     0,
-     133,     0,   134,     0,   309,   310,     0,   311,   135,   339,
-       0,     0,     0,   312,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,   340,   341,     0,     0,
+     116,   158,   267,   281,   363,   169,   200,   377,   160,   329,
+     208,   355,   199,   222,   259,   260,   113,   274,   114,     1,
+      79,   268,    95,   157,   212,   217,   364,   104,     2,   391,
+     355,   105,     3,     4,     5,   223,   287,   288,   224,   396,
+       6,     7,    80,   269,   210,   218,   211,     8,     9,   230,
+      81,    10,   213,   101,    11,    12,   119,   171,    13,   120,
+     161,   230,   282,   382,   283,   307,   121,    14,   219,   287,
+     288,    15,   122,   127,   249,   140,   141,    16,   330,    17,
+     143,   159,   172,   166,   170,   115,   205,   106,    18,    19,
+     207,   215,    20,   144,   145,   235,    21,    22,   209,   173,
+      23,    24,   174,   365,   221,   216,   232,   115,    96,    25,
+     366,   146,   251,    97,   162,   325,   326,   233,   378,   225,
+     226,   248,    26,    27,    28,   251,   227,   367,   253,    29,
+     265,   153,   107,   254,   236,   237,   238,   239,    30,   201,
+     108,   257,    31,   109,    32,   294,    33,    34,   258,   147,
+     270,   261,   295,   263,   284,   296,    35,    36,    37,    38,
+      39,    40,    41,    42,   264,   110,    43,   273,    44,   154,
+     111,   155,   276,   278,   175,   285,   368,    45,   148,   369,
+     385,   293,    46,    47,    48,   371,    49,    50,   292,   279,
+      51,    52,   297,   303,   304,   305,   328,    83,   332,    -6,
+      53,    84,   176,   177,   178,   179,   361,    85,   360,   394,
+     180,   362,   372,   375,   399,     2,   376,   379,   384,     3,
+       4,     5,   380,   298,   381,   327,   386,     6,     7,   240,
+     388,   414,   231,   390,     8,     9,   391,   398,    10,   395,
+     411,    11,    12,   149,   400,    13,   412,   241,   150,   306,
+     156,   413,   242,   243,    14,   272,   252,    86,    15,   262,
+     115,   103,   266,   250,    16,   277,    17,   139,   255,   308,
+     333,   383,   397,   356,   410,    18,    19,     0,   334,    20,
+       0,     0,     0,    21,    22,     0,   299,    23,    24,     0,
+      87,    88,     0,   374,     0,     0,    25,   401,   402,   403,
+     404,   405,     0,     0,     0,     0,   409,    89,     0,    26,
+      27,    28,     0,   335,   336,     0,    29,   401,   402,   403,
+     404,   405,     0,     0,     0,    30,     0,     0,     0,    31,
+     337,    32,     0,    33,    34,     0,     0,     0,    90,     0,
+       0,     0,     0,    35,    36,    37,    38,    39,    40,    41,
+      42,   338,     0,    43,     0,    44,     0,     0,     0,   339,
+       0,   340,     0,     0,    45,     0,   387,     0,     0,    46,
+      47,    48,     0,    49,    50,   341,     2,    51,    52,     0,
+       3,     4,     5,     0,     0,     0,    -6,    53,     6,     7,
+       0,     0,   342,   343,     0,     8,     9,     0,     0,    10,
+       0,     0,    11,    12,     0,     0,    13,     0,     0,     0,
+       0,     0,     0,     0,     0,    14,     0,     0,     0,    15,
+     128,   129,   130,   131,     0,    16,     0,    17,   344,     0,
+     345,     0,     0,     0,     0,   346,    18,    19,     0,   347,
+      20,     0,     0,     0,    21,    22,     0,     0,    23,    24,
+     132,     0,   133,     0,   134,     0,     0,    25,     0,     0,
+     135,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+      26,    27,    28,     0,     0,     0,     0,    29,     0,     0,
+       0,     0,     0,     0,     0,     0,    30,     0,     0,     0,
+      31,   309,    32,     0,    33,    34,     0,     0,     0,   310,
+       0,     0,     0,     0,    35,    36,    37,    38,    39,    40,
+      41,    42,     0,   184,    43,     0,    44,   311,   312,   185,
+     313,   186,     0,     0,     0,    45,   314,     0,     0,     0,
+      46,    47,    48,     0,    49,    50,     0,     0,    51,    52,
+       0,     0,     0,     0,     0,     0,     0,   187,    53,     0,
+       0,     0,     0,   315,   316,     0,     0,   317,   318,     0,
+     319,   320,   321,     0,   322,     0,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     313,   314,     0,     0,   315,   316,     0,   317,   318,   319,
-       0,   320,     0,     0,     0,     0,     0,     0,     0,     0,
-     342,     0,   343,     0,     0,     0,     0,   344,     0,     0,
-       0,   345,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,   188,     0,   189,     0,
+       0,     0,     0,     0,   190,     0,   191,     0,     0,   192,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,   321
+       0,     0,     0,     0,     0,     0,     0,     0,     0,   323,
+       0,   193,   194
 };
 
 static const yytype_int16 yycheck[] =
 {
-      14,    37,   181,   156,   157,    60,    29,    27,     5,    60,
-      43,    38,    48,    36,    61,   184,    39,   196,    55,    91,
-      11,     4,    41,    37,    65,   194,    67,     1,   144,    32,
-      34,   103,   179,    60,     7,     8,    10,   181,   182,   144,
-      14,    15,    16,    26,    58,    65,    60,    67,    22,    23,
-      54,    60,    25,    76,    60,    29,    30,    60,   154,    33,
-      60,   154,    36,    37,   154,   244,    40,    64,   154,    66,
-     154,   154,   154,    77,    93,    49,   181,   182,   194,    53,
-      60,    60,   119,   130,   107,    59,   154,    61,   154,   154,
-      63,   185,   186,   187,   188,   189,    70,    71,    60,     0,
-      74,     3,   255,   256,    78,    79,    97,    60,    82,    83,
-     179,   102,   126,   154,   154,   154,   193,    91,   169,    92,
-     103,    60,    32,   154,   154,   139,   146,   110,   147,    27,
-     104,   105,   106,    27,   154,   168,   191,   111,   165,    84,
-      42,    43,    44,    45,   127,   168,   120,    60,   190,   154,
-     124,    60,   126,    60,   128,   129,    60,   154,   179,   154,
-      60,   154,   154,    60,   138,   139,   140,   141,   142,   143,
-     144,   145,   325,    35,   148,   190,   150,   179,   175,   154,
-     359,    27,   155,   157,    60,    60,   154,   160,   162,   163,
-     164,   174,   166,   167,   177,   179,   170,   171,    10,   193,
-     190,   183,    14,    15,    16,   179,   180,   192,   184,   388,
-      22,    23,   190,   190,   393,   179,   179,    29,    30,   179,
-     190,    33,   193,   259,    36,    37,   193,     6,    40,    98,
-       8,   410,   242,   136,    12,   137,   163,    49,    11,   179,
-      18,    53,   123,   151,   200,    27,   245,    59,   355,    61,
-     390,   153,    31,   287,   404,    -1,   158,   159,    70,    71,
-      -1,    -1,    74,    -1,    -1,    -1,    78,    79,    -1,    48,
-      82,    83,    51,    -1,   185,   186,   187,   188,   189,    91,
-      -1,    -1,    28,   194,    -1,    -1,    -1,    -1,    -1,    -1,
-      68,   327,   104,   105,   106,    -1,    20,    -1,    -1,   111,
-      24,    -1,    -1,    -1,    50,    -1,    -1,    53,   120,    -1,
-      -1,    -1,   124,    -1,   126,    -1,   128,   129,    -1,    -1,
-      -1,    -1,    -1,   101,   102,    -1,   138,   139,   140,   141,
-     142,   143,   144,   145,    -1,    -1,   148,    -1,   150,    -1,
-     118,    13,    -1,    -1,   123,   157,    -1,    19,    -1,    21,
-     162,   163,   164,    -1,   166,   167,    80,    10,   170,   171,
-      -1,    14,    15,    16,   378,    -1,    -1,   179,   180,    22,
-      23,   149,   151,   152,    -1,    47,    29,    30,   157,    -1,
-      33,    -1,    -1,    36,    37,    -1,    -1,    40,   134,   135,
-      -1,    -1,    -1,    -1,    -1,   141,    49,    -1,    -1,    -1,
-      53,   125,    -1,    -1,    -1,    -1,    59,    -1,    61,   133,
-      -1,    -1,   136,    -1,    86,    -1,    88,    70,    71,    -1,
-      -1,    74,    94,    -1,    96,    78,    79,    99,    -1,    82,
-      83,    -1,   156,    -1,     9,    -1,    -1,   161,    91,    -1,
-      -1,    -1,    17,    -1,    -1,    -1,    -1,    -1,    -1,   121,
-     122,   104,   105,   106,    -1,    -1,    -1,    -1,   111,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,   120,    -1,    -1,
-      -1,   124,    -1,   126,    -1,   128,   129,    52,    53,    -1,
-      -1,    -1,    -1,    -1,    -1,   138,   139,   140,   141,   142,
-     143,   144,   145,    -1,    69,   148,    -1,   150,    55,    56,
-      57,    58,    -1,    -1,   157,    -1,    -1,    -1,    46,   162,
-     163,   164,    -1,   166,   167,    90,    54,   170,   171,    -1,
-      -1,    -1,    -1,    98,    -1,   100,    -1,   180,    85,    -1,
-      87,    -1,    89,    -1,    72,    73,    -1,    75,    95,   114,
-      -1,    -1,    -1,    81,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,   131,   132,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-     108,   109,    -1,    -1,   112,   113,    -1,   115,   116,   117,
-      -1,   119,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-     165,    -1,   167,    -1,    -1,    -1,    -1,   172,    -1,    -1,
-      -1,   176,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      14,    37,   183,     5,     4,    43,    60,    60,    41,    61,
+      55,   144,    48,    28,   156,   157,    65,   198,    67,     1,
+     181,    38,    11,    37,    32,    34,    26,    20,    10,   186,
+     144,    24,    14,    15,    16,    50,   183,   184,    53,   196,
+      22,    23,    60,    60,    58,    54,    60,    29,    30,    91,
+      60,    33,    60,   156,    36,    37,   156,     6,    40,   156,
+      93,   103,    64,   196,    66,   246,   156,    49,    77,   183,
+     184,    53,   156,    60,   119,   156,   156,    59,   130,    61,
+      60,    60,    31,   156,   156,   156,    60,    80,    70,    71,
+       0,   156,    74,     7,     8,     3,    78,    79,   181,    48,
+      82,    83,    51,   103,   195,   156,    60,   156,    97,    91,
+     110,    25,   126,   102,   147,   257,   258,    32,   171,   134,
+     135,   156,   104,   105,   106,   139,   141,   127,    60,   111,
+     168,    27,   125,   156,    42,    43,    44,    45,   120,   193,
+     133,    27,   124,   136,   126,    29,   128,   129,    27,    63,
+     167,    84,    36,    60,   156,    39,   138,   139,   140,   141,
+     142,   143,   144,   145,   192,   158,   148,    60,   150,    65,
+     163,    67,    60,    60,   123,   177,   176,   159,    92,   179,
+     361,   156,   164,   165,   166,   327,   168,   169,    60,   181,
+     172,   173,    76,   156,   156,    60,   156,     8,    35,   181,
+     182,    12,   151,   152,   153,   154,   192,    18,   181,   390,
+     159,   156,    27,    60,   395,    10,    60,   156,   195,    14,
+      15,    16,   192,   107,   181,   261,   194,    22,    23,   137,
+     185,   412,    98,   192,    29,    30,   186,   181,    33,   192,
+     181,    36,    37,   157,   195,    40,   192,   155,   162,   244,
+     146,   181,   160,   161,    49,   195,   136,    68,    53,   163,
+     156,    11,   181,   123,    59,   202,    61,    27,   151,   247,
+       9,   357,   392,   289,   406,    70,    71,    -1,    17,    74,
+      -1,    -1,    -1,    78,    79,    -1,   170,    82,    83,    -1,
+     101,   102,    -1,   329,    -1,    -1,    91,   187,   188,   189,
+     190,   191,    -1,    -1,    -1,    -1,   196,   118,    -1,   104,
+     105,   106,    -1,    52,    53,    -1,   111,   187,   188,   189,
+     190,   191,    -1,    -1,    -1,   120,    -1,    -1,    -1,   124,
+      69,   126,    -1,   128,   129,    -1,    -1,    -1,   149,    -1,
+      -1,    -1,    -1,   138,   139,   140,   141,   142,   143,   144,
+     145,    90,    -1,   148,    -1,   150,    -1,    -1,    -1,    98,
+      -1,   100,    -1,    -1,   159,    -1,   380,    -1,    -1,   164,
+     165,   166,    -1,   168,   169,   114,    10,   172,   173,    -1,
+      14,    15,    16,    -1,    -1,    -1,   181,   182,    22,    23,
+      -1,    -1,   131,   132,    -1,    29,    30,    -1,    -1,    33,
+      -1,    -1,    36,    37,    -1,    -1,    40,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    49,    -1,    -1,    -1,    53,
+      55,    56,    57,    58,    -1,    59,    -1,    61,   167,    -1,
+     169,    -1,    -1,    -1,    -1,   174,    70,    71,    -1,   178,
+      74,    -1,    -1,    -1,    78,    79,    -1,    -1,    82,    83,
+      85,    -1,    87,    -1,    89,    -1,    -1,    91,    -1,    -1,
+      95,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+     104,   105,   106,    -1,    -1,    -1,    -1,   111,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,   120,    -1,    -1,    -1,
+     124,    46,   126,    -1,   128,   129,    -1,    -1,    -1,    54,
+      -1,    -1,    -1,    -1,   138,   139,   140,   141,   142,   143,
+     144,   145,    -1,    13,   148,    -1,   150,    72,    73,    19,
+      75,    21,    -1,    -1,    -1,   159,    81,    -1,    -1,    -1,
+     164,   165,   166,    -1,   168,   169,    -1,    -1,   172,   173,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    47,   182,    -1,
+      -1,    -1,    -1,   108,   109,    -1,    -1,   112,   113,    -1,
+     115,   116,   117,    -1,   119,    -1,    -1,    -1,    -1,    -1,
       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    86,    -1,    88,    -1,
+      -1,    -1,    -1,    -1,    94,    -1,    96,    -1,    -1,    99,
       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,   172
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   174,
+      -1,   121,   122
 };
 
   /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
@@ -1288,80 +1292,81 @@ static const yytype_uint16 yystos[] =
       33,    36,    37,    40,    49,    53,    59,    61,    70,    71,
       74,    78,    79,    82,    83,    91,   104,   105,   106,   111,
      120,   124,   126,   128,   129,   138,   139,   140,   141,   142,
-     143,   144,   145,   148,   150,   157,   162,   163,   164,   166,
-     167,   170,   171,   180,   196,   197,   198,   199,   200,   212,
-     213,   214,   215,   219,   224,   232,   241,   246,   250,   255,
-     259,   260,   261,   262,   270,   271,   274,   285,   286,   179,
-      60,    60,   216,     8,    12,    18,    68,   101,   102,   118,
-     149,   251,   252,   253,   254,    11,    97,   102,   235,   236,
-     237,   154,   263,   251,    20,    24,    80,   125,   133,   136,
-     156,   161,   226,    65,    67,   154,   201,   202,   203,   154,
-     154,   154,   154,   268,   269,   201,   282,    60,    55,    56,
-      57,    58,    85,    87,    89,    95,   238,   239,   240,   282,
-     154,   154,   281,    60,     7,     8,    25,    63,    92,   155,
-     160,   275,   276,    27,    65,    67,   146,   201,   202,    60,
-      41,    93,   147,   247,   248,   249,   154,   264,   225,   226,
-     154,     6,    31,    48,    51,   123,   151,   152,   157,   256,
-     257,   258,    13,    19,    21,    47,    86,    88,    94,    96,
-      99,   121,   122,   220,   221,   222,   223,   202,    60,   191,
-     278,   279,   280,    60,   277,     0,   198,   179,   201,   201,
-      32,    60,   284,   154,   154,    34,    54,    77,   273,   193,
-      28,    50,    53,   134,   135,   141,   217,   218,   252,   236,
-      60,    32,   227,     3,    42,    43,    44,    45,   137,   153,
-     158,   159,   242,   243,   244,   245,   154,   198,   269,   201,
-     239,    60,   154,   276,   233,    27,    27,   233,   233,    84,
-     248,    60,   190,   226,   257,   284,    38,    60,   165,   283,
-     221,    60,   284,   266,    60,   279,    60,   179,   204,     5,
-      64,    66,   154,   175,   272,   181,   182,   287,   288,   289,
-      60,   154,    29,    36,    39,    76,   107,   168,   228,   229,
-     230,   154,   154,    60,   243,   284,   283,    46,    54,    72,
-      73,    75,    81,   108,   109,   112,   113,   115,   116,   117,
-     119,   172,   234,   233,   233,   202,   154,    61,   130,   267,
-      35,     9,    17,    52,    53,    69,    90,    98,   100,   114,
-     131,   132,   165,   167,   172,   176,   205,   206,   207,   208,
-     209,   210,   211,   144,   288,   290,   291,   293,   179,   190,
-     154,     4,    26,   103,   110,   127,   174,   177,   231,   233,
-      27,   265,   202,    60,    60,    60,   169,   154,   190,   179,
-     194,   291,   193,   284,   192,   201,   183,   292,   190,   184,
-     294,   295,   284,   190,   194,   295,   179,   284,   193,   185,
-     186,   187,   188,   189,   296,   297,   298,   194,   297,   179,
-     190,   179,   284
+     143,   144,   145,   148,   150,   159,   164,   165,   166,   168,
+     169,   172,   173,   182,   198,   199,   200,   201,   202,   214,
+     215,   216,   217,   221,   226,   234,   243,   248,   252,   257,
+     261,   262,   263,   264,   272,   273,   276,   287,   288,   181,
+      60,    60,   218,     8,    12,    18,    68,   101,   102,   118,
+     149,   253,   254,   255,   256,    11,    97,   102,   237,   238,
+     239,   156,   265,   253,    20,    24,    80,   125,   133,   136,
+     158,   163,   228,    65,    67,   156,   203,   204,   205,   156,
+     156,   156,   156,   270,   271,   203,   284,    60,    55,    56,
+      57,    58,    85,    87,    89,    95,   240,   241,   242,   284,
+     156,   156,   283,    60,     7,     8,    25,    63,    92,   157,
+     162,   277,   278,    27,    65,    67,   146,   203,   204,    60,
+      41,    93,   147,   249,   250,   251,   156,   266,   227,   228,
+     156,     6,    31,    48,    51,   123,   151,   152,   153,   154,
+     159,   258,   259,   260,    13,    19,    21,    47,    86,    88,
+      94,    96,    99,   121,   122,   222,   223,   224,   225,   204,
+      60,   193,   280,   281,   282,    60,   279,     0,   200,   181,
+     203,   203,    32,    60,   286,   156,   156,    34,    54,    77,
+     275,   195,    28,    50,    53,   134,   135,   141,   219,   220,
+     254,   238,    60,    32,   229,     3,    42,    43,    44,    45,
+     137,   155,   160,   161,   244,   245,   246,   247,   156,   200,
+     271,   203,   241,    60,   156,   278,   235,    27,    27,   235,
+     235,    84,   250,    60,   192,   228,   259,   286,    38,    60,
+     167,   285,   223,    60,   286,   268,    60,   281,    60,   181,
+     206,     5,    64,    66,   156,   177,   274,   183,   184,   289,
+     290,   291,    60,   156,    29,    36,    39,    76,   107,   170,
+     230,   231,   232,   156,   156,    60,   245,   286,   285,    46,
+      54,    72,    73,    75,    81,   108,   109,   112,   113,   115,
+     116,   117,   119,   174,   236,   235,   235,   204,   156,    61,
+     130,   269,    35,     9,    17,    52,    53,    69,    90,    98,
+     100,   114,   131,   132,   167,   169,   174,   178,   207,   208,
+     209,   210,   211,   212,   213,   144,   290,   292,   293,   295,
+     181,   192,   156,     4,    26,   103,   110,   127,   176,   179,
+     233,   235,    27,   267,   204,    60,    60,    60,   171,   156,
+     192,   181,   196,   293,   195,   286,   194,   203,   185,   294,
+     192,   186,   296,   297,   286,   192,   196,   297,   181,   286,
+     195,   187,   188,   189,   190,   191,   298,   299,   300,   196,
+     299,   181,   192,   181,   286
 };
 
   /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives.  */
 static const yytype_uint16 yyr1[] =
 {
-       0,   195,   196,   197,   197,   197,   198,   198,   198,   198,
-     198,   198,   198,   198,   198,   198,   198,   198,   198,   198,
-     199,   200,   200,   200,   200,   200,   201,   201,   202,   203,
-     203,   204,   204,   205,   205,   205,   206,   207,   207,   207,
-     207,   207,   207,   207,   207,   208,   208,   209,   209,   209,
-     209,   209,   209,   210,   211,   212,   213,   213,   214,   214,
-     214,   214,   215,   215,   215,   215,   215,   215,   215,   215,
-     215,   216,   216,   217,   217,   218,   218,   218,   218,   218,
-     219,   220,   220,   221,   221,   221,   222,   222,   222,   222,
-     222,   222,   223,   223,   223,   223,   224,   224,   224,   225,
-     225,   226,   226,   226,   226,   226,   226,   226,   226,   227,
-     227,   228,   228,   228,   228,   229,   229,   230,   230,   231,
-     231,   231,   231,   231,   231,   231,   232,   232,   232,   232,
-     232,   232,   232,   232,   233,   233,   234,   234,   234,   234,
-     234,   234,   234,   234,   234,   234,   234,   234,   234,   234,
-     234,   235,   235,   236,   237,   237,   237,   238,   238,   239,
-     240,   240,   240,   240,   240,   240,   240,   240,   241,   242,
-     242,   243,   243,   243,   243,   243,   244,   244,   245,   245,
-     245,   245,   246,   247,   247,   248,   249,   249,   249,   250,
-     250,   251,   251,   252,   252,   253,   253,   253,   253,   253,
-     253,   254,   254,   255,   256,   256,   257,   258,   258,   258,
-     258,   258,   258,   258,   258,   259,   259,   259,   259,   259,
-     259,   259,   259,   259,   259,   259,   259,   259,   260,   260,
-     260,   261,   261,   261,   262,   262,   263,   263,   263,   264,
-     265,   265,   266,   266,   267,   267,   268,   268,   269,   270,
-     270,   271,   271,   272,   272,   272,   272,   273,   273,   273,
-     274,   275,   275,   276,   276,   276,   276,   276,   276,   276,
-     277,   277,   278,   278,   279,   279,   280,   281,   281,   282,
-     282,   283,   283,   283,   284,   284,   285,   286,   287,   287,
-     288,   289,   289,   290,   290,   291,   292,   293,   294,   294,
-     295,   296,   296,   297,   298,   298,   298,   298,   298
+       0,   197,   198,   199,   199,   199,   200,   200,   200,   200,
+     200,   200,   200,   200,   200,   200,   200,   200,   200,   200,
+     201,   202,   202,   202,   202,   202,   203,   203,   204,   205,
+     205,   206,   206,   207,   207,   207,   208,   209,   209,   209,
+     209,   209,   209,   209,   209,   210,   210,   211,   211,   211,
+     211,   211,   211,   212,   213,   214,   215,   215,   216,   216,
+     216,   216,   217,   217,   217,   217,   217,   217,   217,   217,
+     217,   218,   218,   219,   219,   220,   220,   220,   220,   220,
+     221,   222,   222,   223,   223,   223,   224,   224,   224,   224,
+     224,   224,   225,   225,   225,   225,   226,   226,   226,   227,
+     227,   228,   228,   228,   228,   228,   228,   228,   228,   229,
+     229,   230,   230,   230,   230,   231,   231,   232,   232,   233,
+     233,   233,   233,   233,   233,   233,   234,   234,   234,   234,
+     234,   234,   234,   234,   235,   235,   236,   236,   236,   236,
+     236,   236,   236,   236,   236,   236,   236,   236,   236,   236,
+     236,   237,   237,   238,   239,   239,   239,   240,   240,   241,
+     242,   242,   242,   242,   242,   242,   242,   242,   243,   244,
+     244,   245,   245,   245,   245,   245,   246,   246,   247,   247,
+     247,   247,   248,   249,   249,   250,   251,   251,   251,   252,
+     252,   253,   253,   254,   254,   255,   255,   255,   255,   255,
+     255,   256,   256,   257,   258,   258,   259,   260,   260,   260,
+     260,   260,   260,   260,   260,   260,   260,   261,   261,   261,
+     261,   261,   261,   261,   261,   261,   261,   261,   261,   261,
+     262,   262,   262,   263,   263,   263,   264,   264,   265,   265,
+     265,   266,   267,   267,   268,   268,   269,   269,   270,   270,
+     271,   272,   272,   273,   273,   274,   274,   274,   274,   275,
+     275,   275,   276,   277,   277,   278,   278,   278,   278,   278,
+     278,   278,   279,   279,   280,   280,   281,   281,   282,   283,
+     283,   284,   284,   285,   285,   285,   286,   286,   287,   288,
+     289,   289,   290,   291,   291,   292,   292,   293,   294,   295,
+     296,   296,   297,   298,   298,   299,   300,   300,   300,   300,
+     300
 };
 
   /* YYR2[YYN] -- Number of symbols on the right hand side of rule YYN.  */
@@ -1388,16 +1393,17 @@ static const yytype_uint8 yyr2[] =
        1,     1,     2,     2,     1,     2,     1,     1,     1,     2,
        2,     2,     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,     2,     2,     2,
-       3,     1,     2,     2,     2,     2,     3,     2,     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,     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,     1,     1,     1,     1,     1,     1,     2,
+       2,     2,     3,     1,     2,     2,     2,     2,     3,     2,
+       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,     5,     1,
+       3,     2,     3,     1,     1,     2,     1,     5,     4,     3,
+       2,     1,     6,     3,     2,     3,     1,     1,     1,     1,
+       1
 };
 
 
@@ -2076,7 +2082,7 @@ yyreduce:
   switch (yyn)
     {
         case 5:
-#line 371 "ntp_parser.y" /* yacc.c:1646  */
+#line 373 "ntp_parser.y" /* yacc.c:1646  */
     {
                        /* I will need to incorporate much more fine grained
                         * error messages. The following should suffice for
@@ -2088,85 +2094,85 @@ yyreduce:
                                ip_file->err_line_no,
                                ip_file->err_col_no);
                }
-#line 2092 "ntp_parser.c" /* yacc.c:1646  */
+#line 2098 "ntp_parser.c" /* yacc.c:1646  */
     break;
 
   case 20:
-#line 406 "ntp_parser.y" /* yacc.c:1646  */
+#line 408 "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 2103 "ntp_parser.c" /* yacc.c:1646  */
+#line 2109 "ntp_parser.c" /* yacc.c:1646  */
     break;
 
   case 27:
-#line 425 "ntp_parser.y" /* yacc.c:1646  */
+#line 427 "ntp_parser.y" /* yacc.c:1646  */
     { (yyval.Address_node) = create_address_node((yyvsp[0].String), (yyvsp[-1].Integer)); }
-#line 2109 "ntp_parser.c" /* yacc.c:1646  */
+#line 2115 "ntp_parser.c" /* yacc.c:1646  */
     break;
 
   case 28:
-#line 430 "ntp_parser.y" /* yacc.c:1646  */
+#line 432 "ntp_parser.y" /* yacc.c:1646  */
     { (yyval.Address_node) = create_address_node((yyvsp[0].String), AF_UNSPEC); }
-#line 2115 "ntp_parser.c" /* yacc.c:1646  */
+#line 2121 "ntp_parser.c" /* yacc.c:1646  */
     break;
 
   case 29:
-#line 435 "ntp_parser.y" /* yacc.c:1646  */
+#line 437 "ntp_parser.y" /* yacc.c:1646  */
     { (yyval.Integer) = AF_INET; }
-#line 2121 "ntp_parser.c" /* yacc.c:1646  */
+#line 2127 "ntp_parser.c" /* yacc.c:1646  */
     break;
 
   case 30:
-#line 437 "ntp_parser.y" /* yacc.c:1646  */
+#line 439 "ntp_parser.y" /* yacc.c:1646  */
     { (yyval.Integer) = AF_INET6; }
-#line 2127 "ntp_parser.c" /* yacc.c:1646  */
+#line 2133 "ntp_parser.c" /* yacc.c:1646  */
     break;
 
   case 31:
-#line 442 "ntp_parser.y" /* yacc.c:1646  */
+#line 444 "ntp_parser.y" /* yacc.c:1646  */
     { (yyval.Attr_val_fifo) = NULL; }
-#line 2133 "ntp_parser.c" /* yacc.c:1646  */
+#line 2139 "ntp_parser.c" /* yacc.c:1646  */
     break;
 
   case 32:
-#line 444 "ntp_parser.y" /* yacc.c:1646  */
+#line 446 "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 2142 "ntp_parser.c" /* yacc.c:1646  */
+#line 2148 "ntp_parser.c" /* yacc.c:1646  */
     break;
 
   case 36:
-#line 458 "ntp_parser.y" /* yacc.c:1646  */
+#line 460 "ntp_parser.y" /* yacc.c:1646  */
     { (yyval.Attr_val) = create_attr_ival(T_Flag, (yyvsp[0].Integer)); }
-#line 2148 "ntp_parser.c" /* yacc.c:1646  */
+#line 2154 "ntp_parser.c" /* yacc.c:1646  */
     break;
 
   case 45:
-#line 474 "ntp_parser.y" /* yacc.c:1646  */
+#line 476 "ntp_parser.y" /* yacc.c:1646  */
     { (yyval.Attr_val) = create_attr_ival((yyvsp[-1].Integer), (yyvsp[0].Integer)); }
-#line 2154 "ntp_parser.c" /* yacc.c:1646  */
+#line 2160 "ntp_parser.c" /* yacc.c:1646  */
     break;
 
   case 46:
-#line 476 "ntp_parser.y" /* yacc.c:1646  */
+#line 478 "ntp_parser.y" /* yacc.c:1646  */
     { (yyval.Attr_val) = create_attr_uval((yyvsp[-1].Integer), (yyvsp[0].Integer)); }
-#line 2160 "ntp_parser.c" /* yacc.c:1646  */
+#line 2166 "ntp_parser.c" /* yacc.c:1646  */
     break;
 
   case 53:
-#line 490 "ntp_parser.y" /* yacc.c:1646  */
+#line 492 "ntp_parser.y" /* yacc.c:1646  */
     { (yyval.Attr_val) = create_attr_sval((yyvsp[-1].Integer), (yyvsp[0].String)); }
-#line 2166 "ntp_parser.c" /* yacc.c:1646  */
+#line 2172 "ntp_parser.c" /* yacc.c:1646  */
     break;
 
   case 55:
-#line 504 "ntp_parser.y" /* yacc.c:1646  */
+#line 506 "ntp_parser.y" /* yacc.c:1646  */
     {
                        unpeer_node *my_node;
                        
@@ -2174,85 +2180,85 @@ yyreduce:
                        if (my_node)
                                APPEND_G_FIFO(cfgt.unpeers, my_node);
                }
-#line 2178 "ntp_parser.c" /* yacc.c:1646  */
+#line 2184 "ntp_parser.c" /* yacc.c:1646  */
     break;
 
   case 58:
-#line 525 "ntp_parser.y" /* yacc.c:1646  */
+#line 527 "ntp_parser.y" /* yacc.c:1646  */
     { cfgt.broadcastclient = 1; }
-#line 2184 "ntp_parser.c" /* yacc.c:1646  */
+#line 2190 "ntp_parser.c" /* yacc.c:1646  */
     break;
 
   case 59:
-#line 527 "ntp_parser.y" /* yacc.c:1646  */
+#line 529 "ntp_parser.y" /* yacc.c:1646  */
     { CONCAT_G_FIFOS(cfgt.manycastserver, (yyvsp[0].Address_fifo)); }
-#line 2190 "ntp_parser.c" /* yacc.c:1646  */
+#line 2196 "ntp_parser.c" /* yacc.c:1646  */
     break;
 
   case 60:
-#line 529 "ntp_parser.y" /* yacc.c:1646  */
+#line 531 "ntp_parser.y" /* yacc.c:1646  */
     { CONCAT_G_FIFOS(cfgt.multicastclient, (yyvsp[0].Address_fifo)); }
-#line 2196 "ntp_parser.c" /* yacc.c:1646  */
+#line 2202 "ntp_parser.c" /* yacc.c:1646  */
     break;
 
   case 61:
-#line 531 "ntp_parser.y" /* yacc.c:1646  */
+#line 533 "ntp_parser.y" /* yacc.c:1646  */
     { cfgt.mdnstries = (yyvsp[0].Integer); }
-#line 2202 "ntp_parser.c" /* yacc.c:1646  */
+#line 2208 "ntp_parser.c" /* yacc.c:1646  */
     break;
 
   case 62:
-#line 542 "ntp_parser.y" /* yacc.c:1646  */
+#line 544 "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 2213 "ntp_parser.c" /* yacc.c:1646  */
+#line 2219 "ntp_parser.c" /* yacc.c:1646  */
     break;
 
   case 63:
-#line 549 "ntp_parser.y" /* yacc.c:1646  */
+#line 551 "ntp_parser.y" /* yacc.c:1646  */
     { cfgt.auth.control_key = (yyvsp[0].Integer); }
-#line 2219 "ntp_parser.c" /* yacc.c:1646  */
+#line 2225 "ntp_parser.c" /* yacc.c:1646  */
     break;
 
   case 64:
-#line 551 "ntp_parser.y" /* yacc.c:1646  */
+#line 553 "ntp_parser.y" /* yacc.c:1646  */
     { 
                        cfgt.auth.cryptosw++;
                        CONCAT_G_FIFOS(cfgt.auth.crypto_cmd_list, (yyvsp[0].Attr_val_fifo));
                }
-#line 2228 "ntp_parser.c" /* yacc.c:1646  */
+#line 2234 "ntp_parser.c" /* yacc.c:1646  */
     break;
 
   case 65:
-#line 556 "ntp_parser.y" /* yacc.c:1646  */
+#line 558 "ntp_parser.y" /* yacc.c:1646  */
     { cfgt.auth.keys = (yyvsp[0].String); }
-#line 2234 "ntp_parser.c" /* yacc.c:1646  */
+#line 2240 "ntp_parser.c" /* yacc.c:1646  */
     break;
 
   case 66:
-#line 558 "ntp_parser.y" /* yacc.c:1646  */
+#line 560 "ntp_parser.y" /* yacc.c:1646  */
     { cfgt.auth.keysdir = (yyvsp[0].String); }
-#line 2240 "ntp_parser.c" /* yacc.c:1646  */
+#line 2246 "ntp_parser.c" /* yacc.c:1646  */
     break;
 
   case 67:
-#line 560 "ntp_parser.y" /* yacc.c:1646  */
+#line 562 "ntp_parser.y" /* yacc.c:1646  */
     { cfgt.auth.request_key = (yyvsp[0].Integer); }
-#line 2246 "ntp_parser.c" /* yacc.c:1646  */
+#line 2252 "ntp_parser.c" /* yacc.c:1646  */
     break;
 
   case 68:
-#line 562 "ntp_parser.y" /* yacc.c:1646  */
+#line 564 "ntp_parser.y" /* yacc.c:1646  */
     { cfgt.auth.revoke = (yyvsp[0].Integer); }
-#line 2252 "ntp_parser.c" /* yacc.c:1646  */
+#line 2258 "ntp_parser.c" /* yacc.c:1646  */
     break;
 
   case 69:
-#line 564 "ntp_parser.y" /* yacc.c:1646  */
+#line 566 "ntp_parser.y" /* yacc.c:1646  */
     {
                        cfgt.auth.trusted_key_list = (yyvsp[0].Attr_val_fifo);
 
@@ -2261,38 +2267,38 @@ yyreduce:
                        // else
                        //      LINK_SLIST(cfgt.auth.trusted_key_list, $2, link);
                }
-#line 2265 "ntp_parser.c" /* yacc.c:1646  */
+#line 2271 "ntp_parser.c" /* yacc.c:1646  */
     break;
 
   case 70:
-#line 573 "ntp_parser.y" /* yacc.c:1646  */
+#line 575 "ntp_parser.y" /* yacc.c:1646  */
     { cfgt.auth.ntp_signd_socket = (yyvsp[0].String); }
-#line 2271 "ntp_parser.c" /* yacc.c:1646  */
+#line 2277 "ntp_parser.c" /* yacc.c:1646  */
     break;
 
   case 71:
-#line 578 "ntp_parser.y" /* yacc.c:1646  */
+#line 580 "ntp_parser.y" /* yacc.c:1646  */
     { (yyval.Attr_val_fifo) = NULL; }
-#line 2277 "ntp_parser.c" /* yacc.c:1646  */
+#line 2283 "ntp_parser.c" /* yacc.c:1646  */
     break;
 
   case 72:
-#line 580 "ntp_parser.y" /* yacc.c:1646  */
+#line 582 "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 2286 "ntp_parser.c" /* yacc.c:1646  */
+#line 2292 "ntp_parser.c" /* yacc.c:1646  */
     break;
 
   case 73:
-#line 588 "ntp_parser.y" /* yacc.c:1646  */
+#line 590 "ntp_parser.y" /* yacc.c:1646  */
     { (yyval.Attr_val) = create_attr_sval((yyvsp[-1].Integer), (yyvsp[0].String)); }
-#line 2292 "ntp_parser.c" /* yacc.c:1646  */
+#line 2298 "ntp_parser.c" /* yacc.c:1646  */
     break;
 
   case 74:
-#line 590 "ntp_parser.y" /* yacc.c:1646  */
+#line 592 "ntp_parser.y" /* yacc.c:1646  */
     {
                        (yyval.Attr_val) = NULL;
                        cfgt.auth.revoke = (yyvsp[0].Integer);
@@ -2301,59 +2307,59 @@ yyreduce:
                                "please use 'revoke %d' instead.",
                                cfgt.auth.revoke, cfgt.auth.revoke);
                }
-#line 2305 "ntp_parser.c" /* yacc.c:1646  */
+#line 2311 "ntp_parser.c" /* yacc.c:1646  */
     break;
 
   case 80:
-#line 615 "ntp_parser.y" /* yacc.c:1646  */
+#line 617 "ntp_parser.y" /* yacc.c:1646  */
     { CONCAT_G_FIFOS(cfgt.orphan_cmds, (yyvsp[0].Attr_val_fifo)); }
-#line 2311 "ntp_parser.c" /* yacc.c:1646  */
+#line 2317 "ntp_parser.c" /* yacc.c:1646  */
     break;
 
   case 81:
-#line 620 "ntp_parser.y" /* yacc.c:1646  */
+#line 622 "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 2320 "ntp_parser.c" /* yacc.c:1646  */
+#line 2326 "ntp_parser.c" /* yacc.c:1646  */
     break;
 
   case 82:
-#line 625 "ntp_parser.y" /* yacc.c:1646  */
+#line 627 "ntp_parser.y" /* yacc.c:1646  */
     {  
                        (yyval.Attr_val_fifo) = NULL;
                        APPEND_G_FIFO((yyval.Attr_val_fifo), (yyvsp[0].Attr_val));
                }
-#line 2329 "ntp_parser.c" /* yacc.c:1646  */
+#line 2335 "ntp_parser.c" /* yacc.c:1646  */
     break;
 
   case 83:
-#line 633 "ntp_parser.y" /* yacc.c:1646  */
+#line 635 "ntp_parser.y" /* yacc.c:1646  */
     { (yyval.Attr_val) = create_attr_dval((yyvsp[-1].Integer), (double)(yyvsp[0].Integer)); }
-#line 2335 "ntp_parser.c" /* yacc.c:1646  */
+#line 2341 "ntp_parser.c" /* yacc.c:1646  */
     break;
 
   case 84:
-#line 635 "ntp_parser.y" /* yacc.c:1646  */
+#line 637 "ntp_parser.y" /* yacc.c:1646  */
     { (yyval.Attr_val) = create_attr_dval((yyvsp[-1].Integer), (yyvsp[0].Double)); }
-#line 2341 "ntp_parser.c" /* yacc.c:1646  */
+#line 2347 "ntp_parser.c" /* yacc.c:1646  */
     break;
 
   case 85:
-#line 637 "ntp_parser.y" /* yacc.c:1646  */
+#line 639 "ntp_parser.y" /* yacc.c:1646  */
     { (yyval.Attr_val) = create_attr_dval((yyvsp[-1].Integer), (double)(yyvsp[0].Integer)); }
-#line 2347 "ntp_parser.c" /* yacc.c:1646  */
+#line 2353 "ntp_parser.c" /* yacc.c:1646  */
     break;
 
   case 96:
-#line 663 "ntp_parser.y" /* yacc.c:1646  */
+#line 665 "ntp_parser.y" /* yacc.c:1646  */
     { CONCAT_G_FIFOS(cfgt.stats_list, (yyvsp[0].Int_fifo)); }
-#line 2353 "ntp_parser.c" /* yacc.c:1646  */
+#line 2359 "ntp_parser.c" /* yacc.c:1646  */
     break;
 
   case 97:
-#line 665 "ntp_parser.y" /* yacc.c:1646  */
+#line 667 "ntp_parser.y" /* yacc.c:1646  */
     {
                        if (input_from_file) {
                                cfgt.stats_dir = (yyvsp[0].String);
@@ -2362,55 +2368,55 @@ yyreduce:
                                yyerror(ip_file, "statsdir remote configuration ignored");
                        }
                }
-#line 2366 "ntp_parser.c" /* yacc.c:1646  */
+#line 2372 "ntp_parser.c" /* yacc.c:1646  */
     break;
 
   case 98:
-#line 674 "ntp_parser.y" /* yacc.c:1646  */
+#line 676 "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 2377 "ntp_parser.c" /* yacc.c:1646  */
+#line 2383 "ntp_parser.c" /* yacc.c:1646  */
     break;
 
   case 99:
-#line 684 "ntp_parser.y" /* yacc.c:1646  */
+#line 686 "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 2386 "ntp_parser.c" /* yacc.c:1646  */
+#line 2392 "ntp_parser.c" /* yacc.c:1646  */
     break;
 
   case 100:
-#line 689 "ntp_parser.y" /* yacc.c:1646  */
+#line 691 "ntp_parser.y" /* yacc.c:1646  */
     {
                        (yyval.Int_fifo) = NULL;
                        APPEND_G_FIFO((yyval.Int_fifo), create_int_node((yyvsp[0].Integer)));
                }
-#line 2395 "ntp_parser.c" /* yacc.c:1646  */
+#line 2401 "ntp_parser.c" /* yacc.c:1646  */
     break;
 
   case 109:
-#line 708 "ntp_parser.y" /* yacc.c:1646  */
+#line 710 "ntp_parser.y" /* yacc.c:1646  */
     { (yyval.Attr_val_fifo) = NULL; }
-#line 2401 "ntp_parser.c" /* yacc.c:1646  */
+#line 2407 "ntp_parser.c" /* yacc.c:1646  */
     break;
 
   case 110:
-#line 710 "ntp_parser.y" /* yacc.c:1646  */
+#line 712 "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 2410 "ntp_parser.c" /* yacc.c:1646  */
+#line 2416 "ntp_parser.c" /* yacc.c:1646  */
     break;
 
   case 111:
-#line 718 "ntp_parser.y" /* yacc.c:1646  */
+#line 720 "ntp_parser.y" /* yacc.c:1646  */
     {
                        if (input_from_file) {
                                (yyval.Attr_val) = create_attr_sval((yyvsp[-1].Integer), (yyvsp[0].String));
@@ -2420,11 +2426,11 @@ yyreduce:
                                yyerror(ip_file, "filegen file remote config ignored");
                        }
                }
-#line 2424 "ntp_parser.c" /* yacc.c:1646  */
+#line 2430 "ntp_parser.c" /* yacc.c:1646  */
     break;
 
   case 112:
-#line 728 "ntp_parser.y" /* yacc.c:1646  */
+#line 730 "ntp_parser.y" /* yacc.c:1646  */
     {
                        if (input_from_file) {
                                (yyval.Attr_val) = create_attr_ival((yyvsp[-1].Integer), (yyvsp[0].Integer));
@@ -2433,11 +2439,11 @@ yyreduce:
                                yyerror(ip_file, "filegen type remote config ignored");
                        }
                }
-#line 2437 "ntp_parser.c" /* yacc.c:1646  */
+#line 2443 "ntp_parser.c" /* yacc.c:1646  */
     break;
 
   case 113:
-#line 737 "ntp_parser.y" /* yacc.c:1646  */
+#line 739 "ntp_parser.y" /* yacc.c:1646  */
     {
                        const char *err;
                        
@@ -2452,33 +2458,33 @@ yyreduce:
                                yyerror(ip_file, err);
                        }
                }
-#line 2456 "ntp_parser.c" /* yacc.c:1646  */
+#line 2462 "ntp_parser.c" /* yacc.c:1646  */
     break;
 
   case 114:
-#line 752 "ntp_parser.y" /* yacc.c:1646  */
+#line 754 "ntp_parser.y" /* yacc.c:1646  */
     { (yyval.Attr_val) = create_attr_ival(T_Flag, (yyvsp[0].Integer)); }
-#line 2462 "ntp_parser.c" /* yacc.c:1646  */
+#line 2468 "ntp_parser.c" /* yacc.c:1646  */
     break;
 
   case 126:
-#line 782 "ntp_parser.y" /* yacc.c:1646  */
+#line 784 "ntp_parser.y" /* yacc.c:1646  */
     {
                        CONCAT_G_FIFOS(cfgt.discard_opts, (yyvsp[0].Attr_val_fifo));
                }
-#line 2470 "ntp_parser.c" /* yacc.c:1646  */
+#line 2476 "ntp_parser.c" /* yacc.c:1646  */
     break;
 
   case 127:
-#line 786 "ntp_parser.y" /* yacc.c:1646  */
+#line 788 "ntp_parser.y" /* yacc.c:1646  */
     {
                        CONCAT_G_FIFOS(cfgt.mru_opts, (yyvsp[0].Attr_val_fifo));
                }
-#line 2478 "ntp_parser.c" /* yacc.c:1646  */
+#line 2484 "ntp_parser.c" /* yacc.c:1646  */
     break;
 
   case 128:
-#line 790 "ntp_parser.y" /* yacc.c:1646  */
+#line 792 "ntp_parser.y" /* yacc.c:1646  */
     {
                        restrict_node *rn;
 
@@ -2486,11 +2492,11 @@ yyreduce:
                                                  ip_file->line_no);
                        APPEND_G_FIFO(cfgt.restrict_opts, rn);
                }
-#line 2490 "ntp_parser.c" /* yacc.c:1646  */
+#line 2496 "ntp_parser.c" /* yacc.c:1646  */
     break;
 
   case 129:
-#line 798 "ntp_parser.y" /* yacc.c:1646  */
+#line 800 "ntp_parser.y" /* yacc.c:1646  */
     {
                        restrict_node *rn;
 
@@ -2498,11 +2504,11 @@ yyreduce:
                                                  ip_file->line_no);
                        APPEND_G_FIFO(cfgt.restrict_opts, rn);
                }
-#line 2502 "ntp_parser.c" /* yacc.c:1646  */
+#line 2508 "ntp_parser.c" /* yacc.c:1646  */
     break;
 
   case 130:
-#line 806 "ntp_parser.y" /* yacc.c:1646  */
+#line 808 "ntp_parser.y" /* yacc.c:1646  */
     {
                        restrict_node *rn;
 
@@ -2510,11 +2516,11 @@ yyreduce:
                                                  ip_file->line_no);
                        APPEND_G_FIFO(cfgt.restrict_opts, rn);
                }
-#line 2514 "ntp_parser.c" /* yacc.c:1646  */
+#line 2520 "ntp_parser.c" /* yacc.c:1646  */
     break;
 
   case 131:
-#line 814 "ntp_parser.y" /* yacc.c:1646  */
+#line 816 "ntp_parser.y" /* yacc.c:1646  */
     {
                        restrict_node *rn;
 
@@ -2529,11 +2535,11 @@ yyreduce:
                                ip_file->line_no);
                        APPEND_G_FIFO(cfgt.restrict_opts, rn);
                }
-#line 2533 "ntp_parser.c" /* yacc.c:1646  */
+#line 2539 "ntp_parser.c" /* yacc.c:1646  */
     break;
 
   case 132:
-#line 829 "ntp_parser.y" /* yacc.c:1646  */
+#line 831 "ntp_parser.y" /* yacc.c:1646  */
     {
                        restrict_node *rn;
                        
@@ -2548,11 +2554,11 @@ yyreduce:
                                ip_file->line_no);
                        APPEND_G_FIFO(cfgt.restrict_opts, rn);
                }
-#line 2552 "ntp_parser.c" /* yacc.c:1646  */
+#line 2558 "ntp_parser.c" /* yacc.c:1646  */
     break;
 
   case 133:
-#line 844 "ntp_parser.y" /* yacc.c:1646  */
+#line 846 "ntp_parser.y" /* yacc.c:1646  */
     {
                        restrict_node * rn;
 
@@ -2561,199 +2567,199 @@ yyreduce:
                                NULL, NULL, (yyvsp[0].Int_fifo), ip_file->line_no);
                        APPEND_G_FIFO(cfgt.restrict_opts, rn);
                }
-#line 2565 "ntp_parser.c" /* yacc.c:1646  */
+#line 2571 "ntp_parser.c" /* yacc.c:1646  */
     break;
 
   case 134:
-#line 856 "ntp_parser.y" /* yacc.c:1646  */
+#line 858 "ntp_parser.y" /* yacc.c:1646  */
     { (yyval.Int_fifo) = NULL; }
-#line 2571 "ntp_parser.c" /* yacc.c:1646  */
+#line 2577 "ntp_parser.c" /* yacc.c:1646  */
     break;
 
   case 135:
-#line 858 "ntp_parser.y" /* yacc.c:1646  */
+#line 860 "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 2580 "ntp_parser.c" /* yacc.c:1646  */
+#line 2586 "ntp_parser.c" /* yacc.c:1646  */
     break;
 
   case 151:
-#line 884 "ntp_parser.y" /* yacc.c:1646  */
+#line 886 "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 2589 "ntp_parser.c" /* yacc.c:1646  */
+#line 2595 "ntp_parser.c" /* yacc.c:1646  */
     break;
 
   case 152:
-#line 889 "ntp_parser.y" /* yacc.c:1646  */
+#line 891 "ntp_parser.y" /* yacc.c:1646  */
     {
                        (yyval.Attr_val_fifo) = NULL;
                        APPEND_G_FIFO((yyval.Attr_val_fifo), (yyvsp[0].Attr_val));
                }
-#line 2598 "ntp_parser.c" /* yacc.c:1646  */
+#line 2604 "ntp_parser.c" /* yacc.c:1646  */
     break;
 
   case 153:
-#line 897 "ntp_parser.y" /* yacc.c:1646  */
+#line 899 "ntp_parser.y" /* yacc.c:1646  */
     { (yyval.Attr_val) = create_attr_ival((yyvsp[-1].Integer), (yyvsp[0].Integer)); }
-#line 2604 "ntp_parser.c" /* yacc.c:1646  */
+#line 2610 "ntp_parser.c" /* yacc.c:1646  */
     break;
 
   case 157:
-#line 908 "ntp_parser.y" /* yacc.c:1646  */
+#line 910 "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 2613 "ntp_parser.c" /* yacc.c:1646  */
+#line 2619 "ntp_parser.c" /* yacc.c:1646  */
     break;
 
   case 158:
-#line 913 "ntp_parser.y" /* yacc.c:1646  */
+#line 915 "ntp_parser.y" /* yacc.c:1646  */
     {
                        (yyval.Attr_val_fifo) = NULL;
                        APPEND_G_FIFO((yyval.Attr_val_fifo), (yyvsp[0].Attr_val));
                }
-#line 2622 "ntp_parser.c" /* yacc.c:1646  */
+#line 2628 "ntp_parser.c" /* yacc.c:1646  */
     break;
 
   case 159:
-#line 921 "ntp_parser.y" /* yacc.c:1646  */
+#line 923 "ntp_parser.y" /* yacc.c:1646  */
     { (yyval.Attr_val) = create_attr_ival((yyvsp[-1].Integer), (yyvsp[0].Integer)); }
-#line 2628 "ntp_parser.c" /* yacc.c:1646  */
+#line 2634 "ntp_parser.c" /* yacc.c:1646  */
     break;
 
   case 168:
-#line 941 "ntp_parser.y" /* yacc.c:1646  */
+#line 943 "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 2639 "ntp_parser.c" /* yacc.c:1646  */
+#line 2645 "ntp_parser.c" /* yacc.c:1646  */
     break;
 
   case 169:
-#line 951 "ntp_parser.y" /* yacc.c:1646  */
+#line 953 "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 2648 "ntp_parser.c" /* yacc.c:1646  */
+#line 2654 "ntp_parser.c" /* yacc.c:1646  */
     break;
 
   case 170:
-#line 956 "ntp_parser.y" /* yacc.c:1646  */
+#line 958 "ntp_parser.y" /* yacc.c:1646  */
     {
                        (yyval.Attr_val_fifo) = NULL;
                        APPEND_G_FIFO((yyval.Attr_val_fifo), (yyvsp[0].Attr_val));
                }
-#line 2657 "ntp_parser.c" /* yacc.c:1646  */
+#line 2663 "ntp_parser.c" /* yacc.c:1646  */
     break;
 
   case 171:
-#line 964 "ntp_parser.y" /* yacc.c:1646  */
+#line 966 "ntp_parser.y" /* yacc.c:1646  */
     { (yyval.Attr_val) = create_attr_dval((yyvsp[-1].Integer), (yyvsp[0].Double)); }
-#line 2663 "ntp_parser.c" /* yacc.c:1646  */
+#line 2669 "ntp_parser.c" /* yacc.c:1646  */
     break;
 
   case 172:
-#line 966 "ntp_parser.y" /* yacc.c:1646  */
+#line 968 "ntp_parser.y" /* yacc.c:1646  */
     { (yyval.Attr_val) = create_attr_ival((yyvsp[-1].Integer), (yyvsp[0].Integer)); }
-#line 2669 "ntp_parser.c" /* yacc.c:1646  */
+#line 2675 "ntp_parser.c" /* yacc.c:1646  */
     break;
 
   case 173:
-#line 968 "ntp_parser.y" /* yacc.c:1646  */
+#line 970 "ntp_parser.y" /* yacc.c:1646  */
     { (yyval.Attr_val) = create_attr_ival((yyvsp[-1].Integer), (yyvsp[0].Integer)); }
-#line 2675 "ntp_parser.c" /* yacc.c:1646  */
+#line 2681 "ntp_parser.c" /* yacc.c:1646  */
     break;
 
   case 174:
-#line 970 "ntp_parser.y" /* yacc.c:1646  */
+#line 972 "ntp_parser.y" /* yacc.c:1646  */
     { (yyval.Attr_val) = create_attr_sval((yyvsp[-1].Integer), (yyvsp[0].String)); }
-#line 2681 "ntp_parser.c" /* yacc.c:1646  */
+#line 2687 "ntp_parser.c" /* yacc.c:1646  */
     break;
 
   case 175:
-#line 972 "ntp_parser.y" /* yacc.c:1646  */
+#line 974 "ntp_parser.y" /* yacc.c:1646  */
     { (yyval.Attr_val) = create_attr_sval((yyvsp[-1].Integer), (yyvsp[0].String)); }
-#line 2687 "ntp_parser.c" /* yacc.c:1646  */
+#line 2693 "ntp_parser.c" /* yacc.c:1646  */
     break;
 
   case 182:
-#line 993 "ntp_parser.y" /* yacc.c:1646  */
+#line 995 "ntp_parser.y" /* yacc.c:1646  */
     { CONCAT_G_FIFOS(cfgt.rlimit, (yyvsp[0].Attr_val_fifo)); }
-#line 2693 "ntp_parser.c" /* yacc.c:1646  */
+#line 2699 "ntp_parser.c" /* yacc.c:1646  */
     break;
 
   case 183:
-#line 998 "ntp_parser.y" /* yacc.c:1646  */
+#line 1000 "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 2702 "ntp_parser.c" /* yacc.c:1646  */
+#line 2708 "ntp_parser.c" /* yacc.c:1646  */
     break;
 
   case 184:
-#line 1003 "ntp_parser.y" /* yacc.c:1646  */
+#line 1005 "ntp_parser.y" /* yacc.c:1646  */
     {
                        (yyval.Attr_val_fifo) = NULL;
                        APPEND_G_FIFO((yyval.Attr_val_fifo), (yyvsp[0].Attr_val));
                }
-#line 2711 "ntp_parser.c" /* yacc.c:1646  */
+#line 2717 "ntp_parser.c" /* yacc.c:1646  */
     break;
 
   case 185:
-#line 1011 "ntp_parser.y" /* yacc.c:1646  */
+#line 1013 "ntp_parser.y" /* yacc.c:1646  */
     { (yyval.Attr_val) = create_attr_ival((yyvsp[-1].Integer), (yyvsp[0].Integer)); }
-#line 2717 "ntp_parser.c" /* yacc.c:1646  */
+#line 2723 "ntp_parser.c" /* yacc.c:1646  */
     break;
 
   case 189:
-#line 1027 "ntp_parser.y" /* yacc.c:1646  */
+#line 1029 "ntp_parser.y" /* yacc.c:1646  */
     { CONCAT_G_FIFOS(cfgt.enable_opts, (yyvsp[0].Attr_val_fifo)); }
-#line 2723 "ntp_parser.c" /* yacc.c:1646  */
+#line 2729 "ntp_parser.c" /* yacc.c:1646  */
     break;
 
   case 190:
-#line 1029 "ntp_parser.y" /* yacc.c:1646  */
+#line 1031 "ntp_parser.y" /* yacc.c:1646  */
     { CONCAT_G_FIFOS(cfgt.disable_opts, (yyvsp[0].Attr_val_fifo)); }
-#line 2729 "ntp_parser.c" /* yacc.c:1646  */
+#line 2735 "ntp_parser.c" /* yacc.c:1646  */
     break;
 
   case 191:
-#line 1034 "ntp_parser.y" /* yacc.c:1646  */
+#line 1036 "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 2738 "ntp_parser.c" /* yacc.c:1646  */
+#line 2744 "ntp_parser.c" /* yacc.c:1646  */
     break;
 
   case 192:
-#line 1039 "ntp_parser.y" /* yacc.c:1646  */
+#line 1041 "ntp_parser.y" /* yacc.c:1646  */
     {
                        (yyval.Attr_val_fifo) = NULL;
                        APPEND_G_FIFO((yyval.Attr_val_fifo), (yyvsp[0].Attr_val));
                }
-#line 2747 "ntp_parser.c" /* yacc.c:1646  */
+#line 2753 "ntp_parser.c" /* yacc.c:1646  */
     break;
 
   case 193:
-#line 1047 "ntp_parser.y" /* yacc.c:1646  */
+#line 1049 "ntp_parser.y" /* yacc.c:1646  */
     { (yyval.Attr_val) = create_attr_ival(T_Flag, (yyvsp[0].Integer)); }
-#line 2753 "ntp_parser.c" /* yacc.c:1646  */
+#line 2759 "ntp_parser.c" /* yacc.c:1646  */
     break;
 
   case 194:
-#line 1049 "ntp_parser.y" /* yacc.c:1646  */
+#line 1051 "ntp_parser.y" /* yacc.c:1646  */
     { 
                        if (input_from_file) {
                                (yyval.Attr_val) = create_attr_ival(T_Flag, (yyvsp[0].Integer));
@@ -2767,63 +2773,63 @@ yyreduce:
                                yyerror(ip_file, err_str);
                        }
                }
-#line 2771 "ntp_parser.c" /* yacc.c:1646  */
+#line 2777 "ntp_parser.c" /* yacc.c:1646  */
     break;
 
   case 203:
-#line 1084 "ntp_parser.y" /* yacc.c:1646  */
+#line 1086 "ntp_parser.y" /* yacc.c:1646  */
     { CONCAT_G_FIFOS(cfgt.tinker, (yyvsp[0].Attr_val_fifo)); }
-#line 2777 "ntp_parser.c" /* yacc.c:1646  */
+#line 2783 "ntp_parser.c" /* yacc.c:1646  */
     break;
 
   case 204:
-#line 1089 "ntp_parser.y" /* yacc.c:1646  */
+#line 1091 "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 2786 "ntp_parser.c" /* yacc.c:1646  */
+#line 2792 "ntp_parser.c" /* yacc.c:1646  */
     break;
 
   case 205:
-#line 1094 "ntp_parser.y" /* yacc.c:1646  */
+#line 1096 "ntp_parser.y" /* yacc.c:1646  */
     {
                        (yyval.Attr_val_fifo) = NULL;
                        APPEND_G_FIFO((yyval.Attr_val_fifo), (yyvsp[0].Attr_val));
                }
-#line 2795 "ntp_parser.c" /* yacc.c:1646  */
+#line 2801 "ntp_parser.c" /* yacc.c:1646  */
     break;
 
   case 206:
-#line 1102 "ntp_parser.y" /* yacc.c:1646  */
+#line 1104 "ntp_parser.y" /* yacc.c:1646  */
     { (yyval.Attr_val) = create_attr_dval((yyvsp[-1].Integer), (yyvsp[0].Double)); }
-#line 2801 "ntp_parser.c" /* yacc.c:1646  */
+#line 2807 "ntp_parser.c" /* yacc.c:1646  */
     break;
 
-  case 217:
-#line 1125 "ntp_parser.y" /* yacc.c:1646  */
+  case 219:
+#line 1129 "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 2812 "ntp_parser.c" /* yacc.c:1646  */
+#line 2818 "ntp_parser.c" /* yacc.c:1646  */
     break;
 
-  case 218:
-#line 1132 "ntp_parser.y" /* yacc.c:1646  */
+  case 220:
+#line 1136 "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 2823 "ntp_parser.c" /* yacc.c:1646  */
+#line 2829 "ntp_parser.c" /* yacc.c:1646  */
     break;
 
-  case 219:
-#line 1139 "ntp_parser.y" /* yacc.c:1646  */
+  case 221:
+#line 1143 "ntp_parser.y" /* yacc.c:1646  */
     {
                        char error_text[64];
                        attr_val *av;
@@ -2839,11 +2845,11 @@ yyreduce:
                                yyerror(ip_file, error_text);
                        }
                }
-#line 2843 "ntp_parser.c" /* yacc.c:1646  */
+#line 2849 "ntp_parser.c" /* yacc.c:1646  */
     break;
 
-  case 220:
-#line 1155 "ntp_parser.y" /* yacc.c:1646  */
+  case 222:
+#line 1159 "ntp_parser.y" /* yacc.c:1646  */
     {
                        if (!input_from_file) {
                                yyerror(ip_file, "remote includefile ignored");
@@ -2862,72 +2868,72 @@ yyreduce:
                                }
                        }
                }
-#line 2866 "ntp_parser.c" /* yacc.c:1646  */
+#line 2872 "ntp_parser.c" /* yacc.c:1646  */
     break;
 
-  case 221:
-#line 1174 "ntp_parser.y" /* yacc.c:1646  */
+  case 223:
+#line 1178 "ntp_parser.y" /* yacc.c:1646  */
     {
                        while (curr_include_level != -1)
                                FCLOSE(fp[curr_include_level--]);
                }
-#line 2875 "ntp_parser.c" /* yacc.c:1646  */
+#line 2881 "ntp_parser.c" /* yacc.c:1646  */
     break;
 
-  case 222:
-#line 1179 "ntp_parser.y" /* yacc.c:1646  */
+  case 224:
+#line 1183 "ntp_parser.y" /* yacc.c:1646  */
     { /* see drift_parm below for actions */ }
-#line 2881 "ntp_parser.c" /* yacc.c:1646  */
+#line 2887 "ntp_parser.c" /* yacc.c:1646  */
     break;
 
-  case 223:
-#line 1181 "ntp_parser.y" /* yacc.c:1646  */
+  case 225:
+#line 1185 "ntp_parser.y" /* yacc.c:1646  */
     { CONCAT_G_FIFOS(cfgt.logconfig, (yyvsp[0].Attr_val_fifo)); }
-#line 2887 "ntp_parser.c" /* yacc.c:1646  */
+#line 2893 "ntp_parser.c" /* yacc.c:1646  */
     break;
 
-  case 224:
-#line 1183 "ntp_parser.y" /* yacc.c:1646  */
+  case 226:
+#line 1187 "ntp_parser.y" /* yacc.c:1646  */
     { CONCAT_G_FIFOS(cfgt.phone, (yyvsp[0].String_fifo)); }
-#line 2893 "ntp_parser.c" /* yacc.c:1646  */
+#line 2899 "ntp_parser.c" /* yacc.c:1646  */
     break;
 
-  case 225:
-#line 1185 "ntp_parser.y" /* yacc.c:1646  */
+  case 227:
+#line 1189 "ntp_parser.y" /* yacc.c:1646  */
     { APPEND_G_FIFO(cfgt.setvar, (yyvsp[0].Set_var)); }
-#line 2899 "ntp_parser.c" /* yacc.c:1646  */
+#line 2905 "ntp_parser.c" /* yacc.c:1646  */
     break;
 
-  case 226:
-#line 1187 "ntp_parser.y" /* yacc.c:1646  */
+  case 228:
+#line 1191 "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 2910 "ntp_parser.c" /* yacc.c:1646  */
+#line 2916 "ntp_parser.c" /* yacc.c:1646  */
     break;
 
-  case 227:
-#line 1194 "ntp_parser.y" /* yacc.c:1646  */
+  case 229:
+#line 1198 "ntp_parser.y" /* yacc.c:1646  */
     { CONCAT_G_FIFOS(cfgt.ttl, (yyvsp[0].Attr_val_fifo)); }
-#line 2916 "ntp_parser.c" /* yacc.c:1646  */
+#line 2922 "ntp_parser.c" /* yacc.c:1646  */
     break;
 
-  case 236:
-#line 1216 "ntp_parser.y" /* yacc.c:1646  */
+  case 238:
+#line 1220 "ntp_parser.y" /* yacc.c:1646  */
     {
                        attr_val *av;
                        
                        av = create_attr_sval(T_Driftfile, (yyvsp[0].String));
                        APPEND_G_FIFO(cfgt.vars, av);
                }
-#line 2927 "ntp_parser.c" /* yacc.c:1646  */
+#line 2933 "ntp_parser.c" /* yacc.c:1646  */
     break;
 
-  case 237:
-#line 1223 "ntp_parser.y" /* yacc.c:1646  */
+  case 239:
+#line 1227 "ntp_parser.y" /* yacc.c:1646  */
     {
                        attr_val *av;
                        
@@ -2936,82 +2942,82 @@ yyreduce:
                        av = create_attr_dval(T_WanderThreshold, (yyvsp[0].Double));
                        APPEND_G_FIFO(cfgt.vars, av);
                }
-#line 2940 "ntp_parser.c" /* yacc.c:1646  */
+#line 2946 "ntp_parser.c" /* yacc.c:1646  */
     break;
 
-  case 238:
-#line 1232 "ntp_parser.y" /* yacc.c:1646  */
+  case 240:
+#line 1236 "ntp_parser.y" /* yacc.c:1646  */
     {
                        attr_val *av;
                        
                        av = create_attr_sval(T_Driftfile, "");
                        APPEND_G_FIFO(cfgt.vars, av);
                }
-#line 2951 "ntp_parser.c" /* yacc.c:1646  */
+#line 2957 "ntp_parser.c" /* yacc.c:1646  */
     break;
 
-  case 239:
-#line 1242 "ntp_parser.y" /* yacc.c:1646  */
+  case 241:
+#line 1246 "ntp_parser.y" /* yacc.c:1646  */
     { (yyval.Set_var) = create_setvar_node((yyvsp[-3].String), (yyvsp[-1].String), (yyvsp[0].Integer)); }
-#line 2957 "ntp_parser.c" /* yacc.c:1646  */
+#line 2963 "ntp_parser.c" /* yacc.c:1646  */
     break;
 
-  case 241:
-#line 1248 "ntp_parser.y" /* yacc.c:1646  */
+  case 243:
+#line 1252 "ntp_parser.y" /* yacc.c:1646  */
     { (yyval.Integer) = 0; }
-#line 2963 "ntp_parser.c" /* yacc.c:1646  */
+#line 2969 "ntp_parser.c" /* yacc.c:1646  */
     break;
 
-  case 242:
-#line 1253 "ntp_parser.y" /* yacc.c:1646  */
+  case 244:
+#line 1257 "ntp_parser.y" /* yacc.c:1646  */
     { (yyval.Attr_val_fifo) = NULL; }
-#line 2969 "ntp_parser.c" /* yacc.c:1646  */
+#line 2975 "ntp_parser.c" /* yacc.c:1646  */
     break;
 
-  case 243:
-#line 1255 "ntp_parser.y" /* yacc.c:1646  */
+  case 245:
+#line 1259 "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 2978 "ntp_parser.c" /* yacc.c:1646  */
+#line 2984 "ntp_parser.c" /* yacc.c:1646  */
     break;
 
-  case 244:
-#line 1263 "ntp_parser.y" /* yacc.c:1646  */
+  case 246:
+#line 1267 "ntp_parser.y" /* yacc.c:1646  */
     { (yyval.Attr_val) = create_attr_ival((yyvsp[-1].Integer), (yyvsp[0].Integer)); }
-#line 2984 "ntp_parser.c" /* yacc.c:1646  */
+#line 2990 "ntp_parser.c" /* yacc.c:1646  */
     break;
 
-  case 245:
-#line 1265 "ntp_parser.y" /* yacc.c:1646  */
+  case 247:
+#line 1269 "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 2993 "ntp_parser.c" /* yacc.c:1646  */
+#line 2999 "ntp_parser.c" /* yacc.c:1646  */
     break;
 
-  case 246:
-#line 1273 "ntp_parser.y" /* yacc.c:1646  */
+  case 248:
+#line 1277 "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 3002 "ntp_parser.c" /* yacc.c:1646  */
+#line 3008 "ntp_parser.c" /* yacc.c:1646  */
     break;
 
-  case 247:
-#line 1278 "ntp_parser.y" /* yacc.c:1646  */
+  case 249:
+#line 1282 "ntp_parser.y" /* yacc.c:1646  */
     {
                        (yyval.Attr_val_fifo) = NULL;
                        APPEND_G_FIFO((yyval.Attr_val_fifo), (yyvsp[0].Attr_val));
                }
-#line 3011 "ntp_parser.c" /* yacc.c:1646  */
+#line 3017 "ntp_parser.c" /* yacc.c:1646  */
     break;
 
-  case 248:
-#line 1286 "ntp_parser.y" /* yacc.c:1646  */
+  case 250:
+#line 1290 "ntp_parser.y" /* yacc.c:1646  */
     {
                        char    prefix;
                        char *  type;
@@ -3033,141 +3039,141 @@ yyreduce:
                        (yyval.Attr_val) = create_attr_sval(prefix, estrdup(type));
                        YYFREE((yyvsp[0].String));
                }
-#line 3037 "ntp_parser.c" /* yacc.c:1646  */
+#line 3043 "ntp_parser.c" /* yacc.c:1646  */
     break;
 
-  case 249:
-#line 1311 "ntp_parser.y" /* yacc.c:1646  */
+  case 251:
+#line 1315 "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 3048 "ntp_parser.c" /* yacc.c:1646  */
+#line 3054 "ntp_parser.c" /* yacc.c:1646  */
     break;
 
-  case 250:
-#line 1318 "ntp_parser.y" /* yacc.c:1646  */
+  case 252:
+#line 1322 "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 3059 "ntp_parser.c" /* yacc.c:1646  */
+#line 3065 "ntp_parser.c" /* yacc.c:1646  */
     break;
 
-  case 260:
-#line 1346 "ntp_parser.y" /* yacc.c:1646  */
+  case 262:
+#line 1350 "ntp_parser.y" /* yacc.c:1646  */
     { CONCAT_G_FIFOS(cfgt.reset_counters, (yyvsp[0].Int_fifo)); }
-#line 3065 "ntp_parser.c" /* yacc.c:1646  */
+#line 3071 "ntp_parser.c" /* yacc.c:1646  */
     break;
 
-  case 261:
-#line 1351 "ntp_parser.y" /* yacc.c:1646  */
+  case 263:
+#line 1355 "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 3074 "ntp_parser.c" /* yacc.c:1646  */
+#line 3080 "ntp_parser.c" /* yacc.c:1646  */
     break;
 
-  case 262:
-#line 1356 "ntp_parser.y" /* yacc.c:1646  */
+  case 264:
+#line 1360 "ntp_parser.y" /* yacc.c:1646  */
     {
                        (yyval.Int_fifo) = NULL;
                        APPEND_G_FIFO((yyval.Int_fifo), create_int_node((yyvsp[0].Integer)));
                }
-#line 3083 "ntp_parser.c" /* yacc.c:1646  */
+#line 3089 "ntp_parser.c" /* yacc.c:1646  */
     break;
 
-  case 270:
-#line 1380 "ntp_parser.y" /* yacc.c:1646  */
+  case 272:
+#line 1384 "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 3092 "ntp_parser.c" /* yacc.c:1646  */
+#line 3098 "ntp_parser.c" /* yacc.c:1646  */
     break;
 
-  case 271:
-#line 1385 "ntp_parser.y" /* yacc.c:1646  */
+  case 273:
+#line 1389 "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 3101 "ntp_parser.c" /* yacc.c:1646  */
+#line 3107 "ntp_parser.c" /* yacc.c:1646  */
     break;
 
-  case 272:
-#line 1393 "ntp_parser.y" /* yacc.c:1646  */
+  case 274:
+#line 1397 "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 3110 "ntp_parser.c" /* yacc.c:1646  */
+#line 3116 "ntp_parser.c" /* yacc.c:1646  */
     break;
 
-  case 273:
-#line 1398 "ntp_parser.y" /* yacc.c:1646  */
+  case 275:
+#line 1402 "ntp_parser.y" /* yacc.c:1646  */
     {
                        (yyval.Attr_val_fifo) = NULL;
                        APPEND_G_FIFO((yyval.Attr_val_fifo), (yyvsp[0].Attr_val));
                }
-#line 3119 "ntp_parser.c" /* yacc.c:1646  */
+#line 3125 "ntp_parser.c" /* yacc.c:1646  */
     break;
 
-  case 274:
-#line 1406 "ntp_parser.y" /* yacc.c:1646  */
+  case 276:
+#line 1410 "ntp_parser.y" /* yacc.c:1646  */
     { (yyval.Attr_val) = create_attr_ival('i', (yyvsp[0].Integer)); }
-#line 3125 "ntp_parser.c" /* yacc.c:1646  */
+#line 3131 "ntp_parser.c" /* yacc.c:1646  */
     break;
 
-  case 276:
-#line 1412 "ntp_parser.y" /* yacc.c:1646  */
+  case 278:
+#line 1416 "ntp_parser.y" /* yacc.c:1646  */
     { (yyval.Attr_val) = create_attr_rangeval('-', (yyvsp[-3].Integer), (yyvsp[-1].Integer)); }
-#line 3131 "ntp_parser.c" /* yacc.c:1646  */
+#line 3137 "ntp_parser.c" /* yacc.c:1646  */
     break;
 
-  case 277:
-#line 1417 "ntp_parser.y" /* yacc.c:1646  */
+  case 279:
+#line 1421 "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 3140 "ntp_parser.c" /* yacc.c:1646  */
+#line 3146 "ntp_parser.c" /* yacc.c:1646  */
     break;
 
-  case 278:
-#line 1422 "ntp_parser.y" /* yacc.c:1646  */
+  case 280:
+#line 1426 "ntp_parser.y" /* yacc.c:1646  */
     {
                        (yyval.String_fifo) = NULL;
                        APPEND_G_FIFO((yyval.String_fifo), create_string_node((yyvsp[0].String)));
                }
-#line 3149 "ntp_parser.c" /* yacc.c:1646  */
+#line 3155 "ntp_parser.c" /* yacc.c:1646  */
     break;
 
-  case 279:
-#line 1430 "ntp_parser.y" /* yacc.c:1646  */
+  case 281:
+#line 1434 "ntp_parser.y" /* yacc.c:1646  */
     {
                        (yyval.Address_fifo) = (yyvsp[-1].Address_fifo);
                        APPEND_G_FIFO((yyval.Address_fifo), (yyvsp[0].Address_node));
                }
-#line 3158 "ntp_parser.c" /* yacc.c:1646  */
+#line 3164 "ntp_parser.c" /* yacc.c:1646  */
     break;
 
-  case 280:
-#line 1435 "ntp_parser.y" /* yacc.c:1646  */
+  case 282:
+#line 1439 "ntp_parser.y" /* yacc.c:1646  */
     {
                        (yyval.Address_fifo) = NULL;
                        APPEND_G_FIFO((yyval.Address_fifo), (yyvsp[0].Address_node));
                }
-#line 3167 "ntp_parser.c" /* yacc.c:1646  */
+#line 3173 "ntp_parser.c" /* yacc.c:1646  */
     break;
 
-  case 281:
-#line 1443 "ntp_parser.y" /* yacc.c:1646  */
+  case 283:
+#line 1447 "ntp_parser.y" /* yacc.c:1646  */
     {
                        if ((yyvsp[0].Integer) != 0 && (yyvsp[0].Integer) != 1) {
                                yyerror(ip_file, "Integer value is not boolean (0 or 1). Assuming 1");
@@ -3176,29 +3182,29 @@ yyreduce:
                                (yyval.Integer) = (yyvsp[0].Integer);
                        }
                }
-#line 3180 "ntp_parser.c" /* yacc.c:1646  */
-    break;
-
-  case 282:
-#line 1451 "ntp_parser.y" /* yacc.c:1646  */
-    { (yyval.Integer) = 1; }
 #line 3186 "ntp_parser.c" /* yacc.c:1646  */
     break;
 
-  case 283:
-#line 1452 "ntp_parser.y" /* yacc.c:1646  */
-    { (yyval.Integer) = 0; }
+  case 284:
+#line 1455 "ntp_parser.y" /* yacc.c:1646  */
+    { (yyval.Integer) = 1; }
 #line 3192 "ntp_parser.c" /* yacc.c:1646  */
     break;
 
-  case 284:
+  case 285:
 #line 1456 "ntp_parser.y" /* yacc.c:1646  */
-    { (yyval.Double) = (double)(yyvsp[0].Integer); }
+    { (yyval.Integer) = 0; }
 #line 3198 "ntp_parser.c" /* yacc.c:1646  */
     break;
 
   case 286:
-#line 1467 "ntp_parser.y" /* yacc.c:1646  */
+#line 1460 "ntp_parser.y" /* yacc.c:1646  */
+    { (yyval.Double) = (double)(yyvsp[0].Integer); }
+#line 3204 "ntp_parser.c" /* yacc.c:1646  */
+    break;
+
+  case 288:
+#line 1471 "ntp_parser.y" /* yacc.c:1646  */
     {
                        sim_node *sn;
                        
@@ -3208,125 +3214,125 @@ yyreduce:
                        /* Revert from ; to \n for end-of-command */
                        old_config_style = 1;
                }
-#line 3212 "ntp_parser.c" /* yacc.c:1646  */
+#line 3218 "ntp_parser.c" /* yacc.c:1646  */
     break;
 
-  case 287:
-#line 1484 "ntp_parser.y" /* yacc.c:1646  */
+  case 289:
+#line 1488 "ntp_parser.y" /* yacc.c:1646  */
     { old_config_style = 0; }
-#line 3218 "ntp_parser.c" /* yacc.c:1646  */
+#line 3224 "ntp_parser.c" /* yacc.c:1646  */
     break;
 
-  case 288:
-#line 1489 "ntp_parser.y" /* yacc.c:1646  */
+  case 290:
+#line 1493 "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 3227 "ntp_parser.c" /* yacc.c:1646  */
+#line 3233 "ntp_parser.c" /* yacc.c:1646  */
     break;
 
-  case 289:
-#line 1494 "ntp_parser.y" /* yacc.c:1646  */
+  case 291:
+#line 1498 "ntp_parser.y" /* yacc.c:1646  */
     {
                        (yyval.Attr_val_fifo) = NULL;
                        APPEND_G_FIFO((yyval.Attr_val_fifo), (yyvsp[-1].Attr_val));
                }
-#line 3236 "ntp_parser.c" /* yacc.c:1646  */
+#line 3242 "ntp_parser.c" /* yacc.c:1646  */
     break;
 
-  case 290:
-#line 1502 "ntp_parser.y" /* yacc.c:1646  */
+  case 292:
+#line 1506 "ntp_parser.y" /* yacc.c:1646  */
     { (yyval.Attr_val) = create_attr_dval((yyvsp[-2].Integer), (yyvsp[0].Double)); }
-#line 3242 "ntp_parser.c" /* yacc.c:1646  */
+#line 3248 "ntp_parser.c" /* yacc.c:1646  */
     break;
 
-  case 293:
-#line 1512 "ntp_parser.y" /* yacc.c:1646  */
+  case 295:
+#line 1516 "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 3251 "ntp_parser.c" /* yacc.c:1646  */
+#line 3257 "ntp_parser.c" /* yacc.c:1646  */
     break;
 
-  case 294:
-#line 1517 "ntp_parser.y" /* yacc.c:1646  */
+  case 296:
+#line 1521 "ntp_parser.y" /* yacc.c:1646  */
     {
                        (yyval.Sim_server_fifo) = NULL;
                        APPEND_G_FIFO((yyval.Sim_server_fifo), (yyvsp[0].Sim_server));
                }
-#line 3260 "ntp_parser.c" /* yacc.c:1646  */
+#line 3266 "ntp_parser.c" /* yacc.c:1646  */
     break;
 
-  case 295:
-#line 1525 "ntp_parser.y" /* yacc.c:1646  */
+  case 297:
+#line 1529 "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 3266 "ntp_parser.c" /* yacc.c:1646  */
+#line 3272 "ntp_parser.c" /* yacc.c:1646  */
     break;
 
-  case 296:
-#line 1530 "ntp_parser.y" /* yacc.c:1646  */
+  case 298:
+#line 1534 "ntp_parser.y" /* yacc.c:1646  */
     { (yyval.Double) = (yyvsp[-1].Double); }
-#line 3272 "ntp_parser.c" /* yacc.c:1646  */
+#line 3278 "ntp_parser.c" /* yacc.c:1646  */
     break;
 
-  case 297:
-#line 1535 "ntp_parser.y" /* yacc.c:1646  */
+  case 299:
+#line 1539 "ntp_parser.y" /* yacc.c:1646  */
     { (yyval.Address_node) = (yyvsp[0].Address_node); }
-#line 3278 "ntp_parser.c" /* yacc.c:1646  */
+#line 3284 "ntp_parser.c" /* yacc.c:1646  */
     break;
 
-  case 298:
-#line 1540 "ntp_parser.y" /* yacc.c:1646  */
+  case 300:
+#line 1544 "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 3287 "ntp_parser.c" /* yacc.c:1646  */
+#line 3293 "ntp_parser.c" /* yacc.c:1646  */
     break;
 
-  case 299:
-#line 1545 "ntp_parser.y" /* yacc.c:1646  */
+  case 301:
+#line 1549 "ntp_parser.y" /* yacc.c:1646  */
     {
                        (yyval.Sim_script_fifo) = NULL;
                        APPEND_G_FIFO((yyval.Sim_script_fifo), (yyvsp[0].Sim_script));
                }
-#line 3296 "ntp_parser.c" /* yacc.c:1646  */
+#line 3302 "ntp_parser.c" /* yacc.c:1646  */
     break;
 
-  case 300:
-#line 1553 "ntp_parser.y" /* yacc.c:1646  */
+  case 302:
+#line 1557 "ntp_parser.y" /* yacc.c:1646  */
     { (yyval.Sim_script) = ONLY_SIM(create_sim_script_info((yyvsp[-3].Double), (yyvsp[-1].Attr_val_fifo))); }
-#line 3302 "ntp_parser.c" /* yacc.c:1646  */
+#line 3308 "ntp_parser.c" /* yacc.c:1646  */
     break;
 
-  case 301:
-#line 1558 "ntp_parser.y" /* yacc.c:1646  */
+  case 303:
+#line 1562 "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 3311 "ntp_parser.c" /* yacc.c:1646  */
+#line 3317 "ntp_parser.c" /* yacc.c:1646  */
     break;
 
-  case 302:
-#line 1563 "ntp_parser.y" /* yacc.c:1646  */
+  case 304:
+#line 1567 "ntp_parser.y" /* yacc.c:1646  */
     {
                        (yyval.Attr_val_fifo) = NULL;
                        APPEND_G_FIFO((yyval.Attr_val_fifo), (yyvsp[-1].Attr_val));
                }
-#line 3320 "ntp_parser.c" /* yacc.c:1646  */
+#line 3326 "ntp_parser.c" /* yacc.c:1646  */
     break;
 
-  case 303:
-#line 1571 "ntp_parser.y" /* yacc.c:1646  */
+  case 305:
+#line 1575 "ntp_parser.y" /* yacc.c:1646  */
     { (yyval.Attr_val) = create_attr_dval((yyvsp[-2].Integer), (yyvsp[0].Double)); }
-#line 3326 "ntp_parser.c" /* yacc.c:1646  */
+#line 3332 "ntp_parser.c" /* yacc.c:1646  */
     break;
 
 
-#line 3330 "ntp_parser.c" /* yacc.c:1646  */
+#line 3336 "ntp_parser.c" /* yacc.c:1646  */
       default: break;
     }
   /* User semantic actions sometimes alter yychar, and that requires
@@ -3554,7 +3560,7 @@ yyreturn:
 #endif
   return yyresult;
 }
-#line 1582 "ntp_parser.y" /* yacc.c:1906  */
+#line 1586 "ntp_parser.y" /* yacc.c:1906  */
 
 
 void 
index fc2e971ce0a9ea847d5ce934dff291e249ed8ab4..2804e544973cd8047f09c5c4c290a0d1514afd1a 100644 (file)
@@ -194,44 +194,46 @@ extern int yydebug;
     T_Stats = 404,
     T_Statsdir = 405,
     T_Step = 406,
-    T_Stepout = 407,
-    T_Stratum = 408,
-    T_String = 409,
-    T_Sys = 410,
-    T_Sysstats = 411,
-    T_Tick = 412,
-    T_Time1 = 413,
-    T_Time2 = 414,
-    T_Timer = 415,
-    T_Timingstats = 416,
-    T_Tinker = 417,
-    T_Tos = 418,
-    T_Trap = 419,
-    T_True = 420,
-    T_Trustedkey = 421,
-    T_Ttl = 422,
-    T_Type = 423,
-    T_U_int = 424,
-    T_Unconfig = 425,
-    T_Unpeer = 426,
-    T_Version = 427,
-    T_WanderThreshold = 428,
-    T_Week = 429,
-    T_Wildcard = 430,
-    T_Xleave = 431,
-    T_Year = 432,
-    T_Flag = 433,
-    T_EOC = 434,
-    T_Simulate = 435,
-    T_Beep_Delay = 436,
-    T_Sim_Duration = 437,
-    T_Server_Offset = 438,
-    T_Duration = 439,
-    T_Freq_Offset = 440,
-    T_Wander = 441,
-    T_Jitter = 442,
-    T_Prop_Delay = 443,
-    T_Proc_Delay = 444
+    T_Stepback = 407,
+    T_Stepfwd = 408,
+    T_Stepout = 409,
+    T_Stratum = 410,
+    T_String = 411,
+    T_Sys = 412,
+    T_Sysstats = 413,
+    T_Tick = 414,
+    T_Time1 = 415,
+    T_Time2 = 416,
+    T_Timer = 417,
+    T_Timingstats = 418,
+    T_Tinker = 419,
+    T_Tos = 420,
+    T_Trap = 421,
+    T_True = 422,
+    T_Trustedkey = 423,
+    T_Ttl = 424,
+    T_Type = 425,
+    T_U_int = 426,
+    T_Unconfig = 427,
+    T_Unpeer = 428,
+    T_Version = 429,
+    T_WanderThreshold = 430,
+    T_Week = 431,
+    T_Wildcard = 432,
+    T_Xleave = 433,
+    T_Year = 434,
+    T_Flag = 435,
+    T_EOC = 436,
+    T_Simulate = 437,
+    T_Beep_Delay = 438,
+    T_Sim_Duration = 439,
+    T_Server_Offset = 440,
+    T_Duration = 441,
+    T_Freq_Offset = 442,
+    T_Wander = 443,
+    T_Jitter = 444,
+    T_Prop_Delay = 445,
+    T_Proc_Delay = 446
   };
 #endif
 /* Tokens.  */
@@ -384,44 +386,46 @@ extern int yydebug;
 #define T_Stats 404
 #define T_Statsdir 405
 #define T_Step 406
-#define T_Stepout 407
-#define T_Stratum 408
-#define T_String 409
-#define T_Sys 410
-#define T_Sysstats 411
-#define T_Tick 412
-#define T_Time1 413
-#define T_Time2 414
-#define T_Timer 415
-#define T_Timingstats 416
-#define T_Tinker 417
-#define T_Tos 418
-#define T_Trap 419
-#define T_True 420
-#define T_Trustedkey 421
-#define T_Ttl 422
-#define T_Type 423
-#define T_U_int 424
-#define T_Unconfig 425
-#define T_Unpeer 426
-#define T_Version 427
-#define T_WanderThreshold 428
-#define T_Week 429
-#define T_Wildcard 430
-#define T_Xleave 431
-#define T_Year 432
-#define T_Flag 433
-#define T_EOC 434
-#define T_Simulate 435
-#define T_Beep_Delay 436
-#define T_Sim_Duration 437
-#define T_Server_Offset 438
-#define T_Duration 439
-#define T_Freq_Offset 440
-#define T_Wander 441
-#define T_Jitter 442
-#define T_Prop_Delay 443
-#define T_Proc_Delay 444
+#define T_Stepback 407
+#define T_Stepfwd 408
+#define T_Stepout 409
+#define T_Stratum 410
+#define T_String 411
+#define T_Sys 412
+#define T_Sysstats 413
+#define T_Tick 414
+#define T_Time1 415
+#define T_Time2 416
+#define T_Timer 417
+#define T_Timingstats 418
+#define T_Tinker 419
+#define T_Tos 420
+#define T_Trap 421
+#define T_True 422
+#define T_Trustedkey 423
+#define T_Ttl 424
+#define T_Type 425
+#define T_U_int 426
+#define T_Unconfig 427
+#define T_Unpeer 428
+#define T_Version 429
+#define T_WanderThreshold 430
+#define T_Week 431
+#define T_Wildcard 432
+#define T_Xleave 433
+#define T_Year 434
+#define T_Flag 435
+#define T_EOC 436
+#define T_Simulate 437
+#define T_Beep_Delay 438
+#define T_Sim_Duration 439
+#define T_Server_Offset 440
+#define T_Duration 441
+#define T_Freq_Offset 442
+#define T_Wander 443
+#define T_Jitter 444
+#define T_Prop_Delay 445
+#define T_Proc_Delay 446
 
 /* Value type.  */
 #if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED
@@ -447,7 +451,7 @@ union YYSTYPE
        script_info *           Sim_script;
        script_info_fifo *      Sim_script_fifo;
 
-#line 451 "ntp_parser.h" /* yacc.c:1909  */
+#line 455 "ntp_parser.h" /* yacc.c:1909  */
 };
 # define YYSTYPE_IS_TRIVIAL 1
 # define YYSTYPE_IS_DECLARED 1
index c55e0697dee4b8ebed517bc9632edffb972513cb..e878e794d269b51391aa0d391630d3f01e99d477 100644 (file)
 %token <Integer>       T_Stats
 %token <Integer>       T_Statsdir
 %token <Integer>       T_Step
+%token <Integer>       T_Stepback
+%token <Integer>       T_Stepfwd
 %token <Integer>       T_Stepout
 %token <Integer>       T_Stratum
 %token <String>        T_String                /* not a token */
@@ -1109,6 +1111,8 @@ tinker_option_keyword
        |       T_Huffpuff
        |       T_Panic
        |       T_Step
+       |       T_Stepback
+       |       T_Stepfwd
        |       T_Stepout
        |       T_Tick
        ;