From: Wouter Wijngaards Date: Mon, 6 Apr 2009 14:09:33 +0000 (+0000) Subject: signature clock skew code. X-Git-Tag: release-1.3.0~33 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=1e1ac9900a76d71deb7c3bb85db931a82c0fd714;p=thirdparty%2Funbound.git signature clock skew code. git-svn-id: file:///svn/unbound/trunk@1590 be551aaa-1e26-0410-a405-d3ace91eadb9 --- diff --git a/doc/Changelog b/doc/Changelog index 7a11065a4..de87d18f3 100644 --- a/doc/Changelog +++ b/doc/Changelog @@ -11,6 +11,7 @@ The example python scripts (pythonmod/examples and libunbound/python/examples) are not installed. - python invalidate routine respects packed rrset ids and locks. + - clock skew checks in unbound, config statements. 3 April 2009: Wouter - Fixed a bug that caused messages to be stored in the cache too diff --git a/doc/example.conf.in b/doc/example.conf.in index d7ece167d..d5760f0ad 100644 --- a/doc/example.conf.in +++ b/doc/example.conf.in @@ -319,6 +319,12 @@ server: # some of the revalidation, until the time interval expires. in secs. # val-bogus-ttl: 60 + # The signature inception and expiration dates are allowed to be off + # by 10% of the lifetime of the signature from our local clock. + # This leeway is capped with a minimum and a maximum. In seconds. + # val-sig-skew-min: 3600 + # val-sig-skew-max: 86400 + # Should additional section of secure message also be kept clean of # unsecure data. Useful to shield the users of this validator from # potential bogus data in the additional section. All unsigned data diff --git a/doc/unbound.conf.5.in b/doc/unbound.conf.5.in index 6c071d52e..75dc24b4d 100644 --- a/doc/unbound.conf.5.in +++ b/doc/unbound.conf.5.in @@ -528,6 +528,20 @@ giving a RRSIG style date, that date is used for verifying RRSIG inception and expiration dates, instead of the current date. Do not set this unless you are debugging signature inception and expiration. .TP +.B val\-sig\-skew\-min: \fI +Minimum number of seconds of clock skew to apply to validated signatures. +A value of 10% of the signature lifetime is used, capped by this setting. +Default is 3600 (1 hour) which allows for daylight savings differences. +Lower this value for more strict checking of short lived signatures. +.TP +.B val\-sig\-skew\-max: \fI +Maximum number of seconds of clock skew to apply to validated signatures. +A value of 10% of the signature lifetime is used, capped by this setting. +Default is 86400 (24 hours) which allows for timezone setting problems in +stable domains. Setting both min and max very low disables the clock skew +allowances. Setting both min and max very high makes the validator check +the signature timestamps less strictly. +.TP .B val\-bogus\-ttl: \fI The time to live for bogus data. This is data that has failed validation; due to invalid signatures or other checks. The TTL from that data cannot be diff --git a/util/config_file.c b/util/config_file.c index bb52ceefb..fb27519ee 100644 --- a/util/config_file.c +++ b/util/config_file.c @@ -148,6 +148,8 @@ config_create() cfg->dlv_anchor_list = NULL; cfg->domain_insecure = NULL; cfg->val_date_override = 0; + cfg->val_sig_skew_min = 3600; /* at least daylight savings trouble */ + cfg->val_sig_skew_max = 86400; /* at most timezone settings trouble */ cfg->val_clean_additional = 1; cfg->val_permissive_mode = 0; cfg->key_cache_size = 4 * 1024 * 1024; diff --git a/util/config_file.h b/util/config_file.h index b5f88239b..74da24547 100644 --- a/util/config_file.h +++ b/util/config_file.h @@ -203,6 +203,10 @@ struct config_file { int max_ttl; /** if not 0, this value is the validation date for RRSIGs */ int32_t val_date_override; + /** the minimum for signature clock skew */ + int32_t val_sig_skew_min; + /** the maximum for signature clock skew */ + int32_t val_sig_skew_max; /** this value sets the number of seconds before revalidating bogus */ int bogus_ttl; /** should validator clean additional section for secure msgs */ diff --git a/util/configlexer.c b/util/configlexer.c index d7dbde8ff..86dfb3971 100644 --- a/util/configlexer.c +++ b/util/configlexer.c @@ -362,8 +362,8 @@ static void yy_fatal_error (yyconst char msg[] ); *yy_cp = '\0'; \ (yy_c_buf_p) = yy_cp; -#define YY_NUM_RULES 117 -#define YY_END_OF_BUFFER 118 +#define YY_NUM_RULES 119 +#define YY_END_OF_BUFFER 120 /* This struct is not used in this scanner, but its presence is necessary. */ struct yy_trans_info @@ -371,127 +371,130 @@ struct yy_trans_info flex_int32_t yy_verify; flex_int32_t yy_nxt; }; -static yyconst flex_int16_t yy_accept[1088] = +static yyconst flex_int16_t yy_accept[1104] = { 0, - 1, 1, 99, 99, 103, 103, 107, 107, 111, 111, - 1, 1, 118, 115, 1, 97, 97, 116, 115, 116, - 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, - 115, 115, 115, 115, 115, 115, 115, 115, 115, 99, - 100, 100, 101, 116, 103, 104, 104, 105, 116, 110, - 107, 108, 108, 109, 116, 111, 112, 112, 113, 116, - 114, 98, 114, 102, 116, 114, 115, 0, 1, 0, - 115, 0, 2, 0, 115, 115, 115, 115, 115, 115, - 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, - 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, - - 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, - 115, 99, 0, 103, 0, 110, 0, 107, 111, 0, - 114, 0, 114, 0, 114, 115, 115, 115, 115, 115, - 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, - 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, - 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, - 115, 115, 115, 115, 115, 115, 115, 114, 115, 115, - 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, - 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, - 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, - - 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, - 115, 115, 115, 115, 115, 115, 115, 115, 114, 115, - 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, - 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, - 115, 115, 115, 115, 115, 115, 115, 115, 50, 115, - 115, 115, 115, 115, 6, 115, 115, 115, 115, 115, - 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, - 115, 115, 115, 115, 115, 115, 114, 115, 115, 115, - 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, - 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, - - 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, - 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, - 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, - 115, 115, 115, 115, 115, 115, 115, 115, 114, 115, - 115, 20, 115, 115, 115, 115, 12, 13, 115, 15, - 14, 115, 115, 115, 115, 115, 115, 115, 115, 115, - 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, - 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, - 95, 115, 115, 115, 115, 3, 115, 115, 115, 115, - 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, - - 115, 115, 115, 115, 115, 114, 115, 115, 115, 115, - 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, - 115, 115, 115, 115, 106, 115, 115, 115, 115, 115, - 115, 115, 115, 115, 115, 23, 115, 115, 115, 115, - 115, 115, 115, 24, 115, 115, 115, 115, 115, 115, - 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, - 115, 115, 115, 115, 115, 115, 115, 115, 115, 63, - 106, 115, 115, 115, 115, 115, 115, 115, 115, 115, - 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, - 115, 115, 115, 115, 62, 115, 115, 115, 115, 115, - - 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, - 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, - 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, - 115, 21, 115, 115, 115, 115, 115, 115, 115, 115, - 115, 115, 115, 115, 115, 22, 115, 115, 115, 115, - 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, - 115, 115, 115, 115, 115, 115, 17, 115, 115, 115, - 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, - 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, - 115, 51, 52, 115, 49, 115, 115, 115, 115, 115, - - 115, 115, 115, 115, 115, 115, 5, 115, 115, 115, - 115, 115, 115, 115, 115, 65, 115, 115, 115, 115, - 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, - 115, 115, 115, 115, 115, 115, 115, 115, 81, 80, - 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, - 115, 115, 115, 115, 115, 25, 115, 115, 115, 115, - 53, 115, 115, 115, 115, 115, 78, 115, 115, 115, - 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, - 115, 115, 115, 115, 115, 115, 115, 115, 42, 115, - 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, - - 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, - 4, 115, 115, 115, 115, 115, 115, 115, 115, 115, - 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, - 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, - 89, 115, 16, 115, 115, 115, 55, 56, 54, 115, - 115, 115, 115, 115, 61, 115, 115, 115, 115, 115, - 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, - 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, - 115, 115, 115, 115, 115, 115, 115, 115, 69, 115, - 115, 115, 115, 115, 115, 115, 115, 115, 31, 115, - - 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, - 115, 115, 60, 115, 115, 115, 115, 115, 115, 115, - 115, 115, 115, 115, 115, 64, 115, 115, 115, 115, - 115, 115, 115, 115, 115, 115, 115, 94, 115, 115, - 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, - 71, 115, 115, 115, 115, 59, 115, 87, 115, 115, - 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, - 115, 115, 115, 32, 33, 115, 38, 74, 115, 82, - 79, 115, 27, 115, 76, 115, 115, 115, 115, 115, - 7, 115, 48, 86, 115, 115, 115, 115, 115, 115, - - 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, - 115, 115, 66, 115, 115, 96, 115, 115, 115, 115, - 115, 115, 115, 115, 115, 115, 75, 26, 28, 115, - 115, 115, 115, 115, 47, 115, 115, 115, 90, 115, - 115, 115, 115, 115, 115, 45, 115, 115, 115, 115, - 115, 115, 92, 115, 115, 115, 115, 115, 115, 115, - 11, 115, 115, 115, 115, 115, 115, 10, 115, 115, - 29, 115, 91, 115, 115, 115, 115, 115, 115, 115, - 115, 115, 115, 93, 88, 115, 115, 115, 115, 115, - 115, 115, 115, 115, 34, 115, 115, 115, 115, 115, - - 30, 115, 115, 115, 67, 68, 115, 115, 115, 70, - 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, - 115, 115, 18, 115, 115, 115, 115, 115, 115, 115, - 115, 115, 115, 115, 85, 115, 115, 115, 115, 115, - 115, 19, 115, 9, 115, 115, 83, 39, 115, 115, - 115, 73, 57, 115, 115, 41, 44, 40, 115, 35, - 115, 8, 115, 115, 72, 115, 115, 115, 36, 115, - 84, 115, 115, 58, 43, 37, 115, 115, 115, 115, - 46, 115, 115, 115, 115, 77, 0 + 1, 1, 101, 101, 105, 105, 109, 109, 113, 113, + 1, 1, 120, 117, 1, 99, 99, 118, 117, 118, + 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, + 117, 117, 117, 117, 117, 117, 117, 117, 117, 101, + 102, 102, 103, 118, 105, 106, 106, 107, 118, 112, + 109, 110, 110, 111, 118, 113, 114, 114, 115, 118, + 116, 100, 116, 104, 118, 116, 117, 0, 1, 0, + 117, 0, 2, 0, 117, 117, 117, 117, 117, 117, + 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, + 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, + + 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, + 117, 101, 0, 105, 0, 112, 0, 109, 113, 0, + 116, 0, 116, 0, 116, 117, 117, 117, 117, 117, + 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, + 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, + 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, + 117, 117, 117, 117, 117, 117, 117, 116, 117, 117, + 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, + 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, + 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, + + 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, + 117, 117, 117, 117, 117, 117, 117, 117, 116, 117, + 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, + 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, + 117, 117, 117, 117, 117, 117, 117, 117, 50, 117, + 117, 117, 117, 117, 6, 117, 117, 117, 117, 117, + 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, + 117, 117, 117, 117, 117, 117, 117, 116, 117, 117, + 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, + 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, + + 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, + 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, + 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, + 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, + 116, 117, 117, 20, 117, 117, 117, 117, 12, 13, + 117, 15, 14, 117, 117, 117, 117, 117, 117, 117, + 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, + 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, + 117, 117, 97, 117, 117, 117, 117, 3, 117, 117, + 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, + + 117, 117, 117, 117, 117, 117, 117, 117, 116, 117, + 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, + 117, 117, 117, 117, 117, 117, 117, 108, 117, 117, + 117, 117, 117, 117, 117, 117, 117, 117, 23, 117, + 117, 117, 117, 117, 117, 117, 24, 117, 117, 117, + 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, + 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, + 117, 117, 117, 63, 108, 117, 117, 117, 117, 117, + 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, + 117, 117, 117, 117, 117, 117, 117, 117, 62, 117, + + 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, + 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, + 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, + 117, 117, 117, 117, 117, 21, 117, 117, 117, 117, + 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, + 22, 117, 117, 117, 117, 117, 117, 117, 117, 117, + 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, + 117, 17, 117, 117, 117, 117, 117, 117, 117, 117, + 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, + 117, 117, 117, 117, 117, 117, 51, 52, 117, 49, + + 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, + 117, 117, 5, 117, 117, 117, 117, 117, 117, 117, + 117, 65, 117, 117, 117, 117, 117, 117, 117, 117, + 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, + 117, 117, 117, 117, 83, 82, 117, 117, 117, 117, + 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, + 117, 25, 117, 117, 117, 117, 53, 117, 117, 117, + 117, 117, 80, 117, 117, 117, 117, 117, 117, 117, + 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, + 117, 117, 117, 117, 117, 42, 117, 117, 117, 117, + + 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, + 117, 117, 117, 117, 117, 117, 117, 4, 117, 117, + 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, + 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, + 117, 117, 117, 117, 117, 117, 117, 117, 91, 117, + 16, 117, 117, 117, 55, 56, 54, 117, 117, 117, + 117, 117, 61, 117, 117, 117, 117, 117, 117, 117, + 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, + 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, + 117, 117, 117, 117, 117, 117, 69, 117, 117, 117, + + 117, 117, 117, 117, 117, 117, 117, 31, 117, 117, + 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, + 117, 60, 117, 117, 117, 117, 117, 117, 117, 117, + 117, 117, 117, 117, 64, 117, 117, 117, 117, 117, + 117, 117, 117, 117, 117, 117, 96, 117, 117, 117, + 117, 117, 117, 117, 117, 117, 117, 117, 117, 73, + 117, 117, 117, 117, 117, 59, 117, 89, 117, 117, + 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, + 117, 117, 117, 32, 33, 117, 38, 76, 117, 84, + 81, 117, 27, 117, 78, 117, 117, 117, 117, 117, + + 7, 117, 48, 88, 117, 117, 117, 117, 117, 117, + 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, + 117, 117, 117, 117, 66, 117, 117, 98, 117, 117, + 117, 117, 117, 117, 117, 117, 117, 117, 77, 26, + 28, 117, 117, 117, 117, 117, 47, 117, 117, 117, + 92, 117, 117, 117, 117, 117, 117, 45, 117, 117, + 117, 117, 117, 117, 117, 117, 94, 117, 117, 117, + 117, 117, 117, 117, 11, 117, 117, 117, 117, 117, + 117, 10, 117, 117, 29, 117, 93, 117, 117, 117, + 117, 117, 117, 117, 117, 117, 117, 72, 71, 95, + + 90, 117, 117, 117, 117, 117, 117, 117, 117, 117, + 34, 117, 117, 117, 117, 117, 30, 117, 117, 117, + 67, 68, 117, 117, 117, 70, 117, 117, 117, 117, + 117, 117, 117, 117, 117, 117, 117, 117, 18, 117, + 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, + 87, 117, 117, 117, 117, 117, 117, 19, 117, 9, + 117, 117, 85, 39, 117, 117, 117, 75, 57, 117, + 117, 41, 44, 40, 117, 35, 117, 8, 117, 117, + 74, 117, 117, 117, 36, 117, 86, 117, 117, 58, + 43, 37, 117, 117, 117, 117, 46, 117, 117, 117, + + 117, 79, 0 } ; static yyconst flex_int32_t yy_ec[256] = @@ -534,22 +537,22 @@ static yyconst flex_int32_t yy_meta[40] = 1, 1, 1, 1, 1, 1, 1, 1, 1 } ; -static yyconst flex_int16_t yy_base[1102] = +static yyconst flex_int16_t yy_base[1118] = { 0, 0, 0, 37, 40, 44, 51, 63, 75, 56, 68, - 87, 108, 2101, 2087, 50, 2184, 2184, 2184, 129, 94, + 87, 108, 2128, 2114, 50, 2218, 2218, 2218, 129, 94, 33, 124, 94, 49, 74, 61, 91, 92, 110, 111, - 112, 133, 50, 135, 137, 136, 145, 143, 164, 2086, - 2184, 2184, 2184, 122, 2084, 2184, 2184, 2184, 157, 2081, - 2091, 2184, 2184, 2184, 179, 2079, 2184, 2184, 2184, 167, - 2078, 2184, 185, 2184, 189, 90, 2077, 195, 199, 2086, - 206, 1658, 2184, 1620, 190, 199, 122, 116, 149, 182, + 112, 133, 50, 135, 137, 136, 145, 143, 164, 2113, + 2218, 2218, 2218, 122, 2112, 2218, 2218, 2218, 157, 2110, + 1950, 2218, 2218, 2218, 179, 1739, 2218, 2218, 2218, 167, + 1324, 2218, 185, 2218, 189, 90, 1191, 195, 199, 1155, + 206, 1110, 2218, 1062, 190, 199, 122, 116, 149, 182, 208, 191, 201, 207, 209, 161, 212, 210, 147, 217, 222, 216, 214, 228, 230, 231, 233, 234, 236, 238, 240, 239, 241, 244, 246, 248, 242, 249, 250, 72, - 256, 1547, 273, 880, 277, 812, 284, 736, 600, 278, - 526, 288, 294, 502, 287, 291, 281, 292, 293, 295, + 256, 1042, 273, 939, 277, 885, 284, 740, 663, 278, + 521, 288, 294, 502, 287, 291, 281, 292, 293, 295, 302, 314, 298, 301, 303, 257, 304, 305, 310, 311, 312, 316, 320, 330, 332, 321, 344, 340, 346, 348, 347, 349, 333, 337, 350, 351, 352, 356, 357, 360, @@ -560,233 +563,235 @@ static yyconst flex_int16_t yy_base[1102] = 445, 447, 449, 452, 453, 460, 456, 458, 459, 466, 464, 462, 465, 471, 470, 491, 472, 477, 475, 478, - 485, 481, 483, 488, 489, 495, 512, 499, 502, 504, - 511, 513, 514, 515, 521, 522, 523, 524, 539, 535, - 537, 544, 551, 538, 516, 548, 536, 549, 2184, 554, - 540, 552, 556, 558, 2184, 559, 562, 563, 564, 571, - 567, 569, 573, 575, 582, 578, 583, 580, 590, 586, - 592, 593, 594, 597, 596, 603, 606, 613, 607, 622, - 611, 609, 614, 619, 626, 628, 634, 631, 636, 638, - 637, 639, 645, 644, 641, 647, 649, 650, 653, 651, - - 660, 659, 666, 658, 663, 674, 672, 673, 677, 679, - 657, 681, 682, 683, 690, 691, 693, 694, 701, 698, - 699, 704, 705, 706, 712, 708, 710, 711, 713, 715, - 717, 720, 726, 728, 732, 722, 735, 724, 736, 739, - 745, 2184, 748, 747, 749, 751, 2184, 2184, 750, 2184, - 2184, 752, 754, 760, 768, 759, 753, 756, 763, 769, - 773, 770, 777, 779, 783, 784, 788, 790, 791, 794, - 795, 800, 799, 801, 797, 808, 804, 817, 819, 802, - 2184, 820, 810, 825, 827, 2184, 822, 828, 818, 833, - 829, 834, 835, 841, 844, 839, 845, 846, 847, 852, - - 856, 854, 850, 855, 861, 865, 862, 866, 891, 867, - 869, 871, 874, 873, 881, 878, 883, 870, 888, 893, - 901, 899, 903, 906, 2184, 915, 908, 912, 914, 916, - 917, 918, 919, 920, 929, 2184, 925, 928, 930, 932, - 936, 941, 943, 2184, 946, 948, 944, 949, 952, 953, - 956, 954, 960, 962, 963, 965, 966, 964, 968, 977, - 980, 973, 984, 974, 981, 989, 986, 987, 990, 2184, - 259, 991, 997, 994, 998, 1000, 1001, 1002, 1008, 1003, - 1009, 1011, 1010, 1013, 1019, 1020, 1022, 1024, 1025, 1026, - 1027, 1030, 1028, 1031, 2184, 1036, 1034, 1038, 1047, 1054, - - 1051, 1060, 1056, 1061, 1062, 1059, 1065, 1072, 1074, 1070, - 1076, 1068, 1081, 1078, 1071, 1087, 1079, 1088, 1090, 1091, - 1092, 1095, 1100, 1097, 1104, 1105, 1106, 1107, 1109, 1113, - 1110, 2184, 1120, 1123, 1126, 1122, 1124, 1129, 1130, 1132, - 1133, 1134, 1136, 1137, 1139, 2184, 1145, 1138, 1141, 1142, - 1146, 1149, 1148, 1154, 1155, 1158, 1165, 1170, 1160, 1171, - 1161, 1169, 1177, 1184, 1186, 1187, 2184, 1189, 1173, 1196, - 1198, 1183, 1193, 1205, 1185, 1201, 1203, 1206, 1207, 1208, - 1209, 1210, 1212, 1213, 1214, 1215, 1218, 1227, 1219, 1233, - 1236, 2184, 2184, 1238, 2184, 1240, 1230, 1234, 1241, 1242, - - 1248, 1244, 1249, 1251, 1252, 1253, 2184, 1255, 1254, 1258, - 1039, 1260, 1266, 1263, 1269, 2184, 1271, 1267, 1277, 1281, - 1268, 1270, 1279, 1288, 1295, 1291, 1285, 1287, 1289, 1297, - 1299, 1305, 1298, 1301, 1302, 1304, 1308, 1306, 2184, 2184, - 1310, 1315, 1314, 1316, 1326, 1332, 1330, 1331, 1334, 1336, - 1338, 1337, 1339, 1341, 1342, 2184, 1348, 1349, 1350, 1358, - 2184, 1345, 1346, 1359, 1363, 1362, 2184, 1365, 1366, 1368, - 1369, 1372, 1371, 1375, 1382, 1376, 1383, 1384, 1392, 1389, - 1394, 1400, 1396, 1399, 1403, 1405, 1407, 1408, 2184, 1414, - 1397, 1418, 1410, 1421, 1427, 1412, 1416, 1423, 1425, 1428, - - 1429, 1432, 1430, 1437, 1434, 1438, 1439, 1451, 1440, 1442, - 2184, 1448, 1459, 1444, 1456, 1457, 1460, 1461, 1467, 1468, - 1470, 1471, 1472, 1474, 1478, 1484, 1490, 1477, 1491, 1492, - 1494, 1475, 1501, 1495, 1497, 1503, 1499, 1506, 1507, 1510, - 2184, 1508, 2184, 1514, 1512, 1516, 2184, 2184, 2184, 1523, - 1521, 1527, 1522, 1532, 2184, 1529, 1533, 1535, 1536, 1539, - 1540, 1542, 1541, 1545, 1544, 1537, 1553, 1559, 1543, 1560, - 1564, 1563, 1567, 1570, 1554, 1576, 1573, 1575, 1577, 1580, - 1581, 1583, 1587, 1585, 1586, 1582, 1584, 1598, 2184, 1601, - 1589, 1603, 1606, 1608, 1590, 1611, 1613, 1620, 2184, 1616, - - 1622, 1623, 1626, 1627, 1629, 1628, 1630, 1631, 1634, 1636, - 1637, 1639, 2184, 1641, 1642, 1645, 1646, 1652, 1662, 1654, - 1664, 1666, 1640, 1669, 1671, 2184, 1672, 1674, 1656, 1679, - 1676, 1680, 1681, 1682, 1688, 1685, 1690, 2184, 1692, 1693, - 1695, 1697, 1700, 1699, 1701, 1702, 1703, 1707, 1713, 1710, - 2184, 1711, 1715, 1721, 1723, 2184, 1725, 2184, 1726, 1727, - 1734, 1735, 1738, 1743, 1728, 1730, 1740, 1749, 1746, 1747, - 1751, 1753, 1755, 2184, 2184, 1758, 2184, 2184, 1765, 2184, - 2184, 1767, 2184, 1769, 2184, 1775, 1771, 1760, 1762, 1773, - 2184, 1780, 2184, 2184, 1777, 1781, 1785, 1787, 1788, 1736, - - 1789, 1791, 1792, 1774, 1796, 1793, 1797, 1798, 1799, 1805, - 1806, 1808, 2184, 1809, 1813, 2184, 1815, 1816, 1817, 1820, - 1819, 1822, 1830, 1826, 1828, 1829, 2184, 2184, 2184, 1831, - 1837, 1833, 1839, 1842, 2184, 1844, 1845, 1853, 2184, 1855, - 1846, 1848, 1858, 1861, 1859, 2184, 1850, 1869, 1870, 1862, - 1872, 1879, 2184, 1876, 1873, 1880, 1882, 1884, 1886, 1888, - 2184, 1889, 1890, 1895, 1892, 1896, 1898, 2184, 1902, 1899, - 2184, 1906, 2184, 1900, 1913, 1907, 1916, 1918, 1919, 1921, - 1927, 1924, 1925, 2184, 2184, 1926, 1928, 1930, 1931, 1933, - 1932, 1934, 1939, 1941, 2184, 1940, 1944, 1951, 1942, 1954, - - 2184, 1955, 1953, 1956, 2184, 2184, 1966, 1957, 1959, 2184, - 1967, 1969, 1970, 1974, 1975, 1976, 1978, 1977, 1979, 1980, - 1984, 1987, 2184, 1990, 1993, 1994, 1997, 2001, 1998, 2002, - 2003, 2007, 2009, 2010, 2184, 2015, 2012, 2019, 2022, 2025, - 2027, 2184, 2031, 2184, 2034, 2035, 2184, 2184, 2028, 2038, - 2039, 2184, 2184, 2004, 2041, 2184, 2184, 2184, 2043, 2184, - 2046, 2184, 2048, 2049, 2184, 2051, 2053, 2055, 2184, 2057, - 2184, 2058, 2059, 2184, 2184, 2184, 2061, 2062, 2067, 2063, - 2184, 2068, 2071, 2073, 2075, 2184, 2184, 2105, 2111, 2117, - 2123, 2129, 94, 2135, 2141, 2147, 2153, 2159, 2165, 2171, - - 2177 + 485, 481, 483, 488, 489, 495, 514, 499, 502, 504, + 509, 513, 515, 516, 522, 525, 524, 526, 532, 536, + 538, 539, 546, 545, 537, 547, 529, 555, 2218, 557, + 548, 551, 553, 560, 2218, 561, 563, 565, 566, 573, + 564, 567, 575, 578, 584, 580, 587, 571, 592, 590, + 585, 594, 595, 599, 602, 603, 606, 608, 614, 607, + 616, 618, 610, 623, 619, 628, 634, 629, 636, 638, + 644, 640, 642, 648, 647, 649, 641, 650, 652, 656, + + 657, 665, 667, 669, 662, 671, 677, 674, 678, 679, + 683, 684, 685, 686, 687, 694, 701, 697, 700, 709, + 690, 707, 698, 705, 712, 719, 715, 717, 720, 718, + 722, 724, 726, 730, 731, 738, 728, 732, 740, 742, + 745, 744, 751, 2218, 753, 754, 755, 758, 2218, 2218, + 757, 2218, 2218, 759, 760, 766, 775, 762, 765, 770, + 777, 771, 780, 769, 785, 788, 789, 790, 796, 792, + 799, 801, 802, 806, 803, 808, 810, 813, 814, 820, + 822, 815, 2218, 823, 824, 829, 832, 2218, 827, 833, + 825, 831, 839, 841, 842, 850, 848, 846, 849, 854, + + 851, 857, 860, 855, 862, 869, 866, 868, 871, 874, + 876, 901, 877, 878, 880, 882, 881, 884, 890, 883, + 887, 907, 909, 888, 905, 892, 921, 2218, 918, 922, + 915, 923, 924, 926, 927, 928, 930, 938, 2218, 931, + 937, 940, 947, 941, 953, 956, 2218, 957, 959, 949, + 943, 965, 955, 966, 967, 969, 972, 973, 974, 975, + 978, 977, 989, 990, 976, 983, 993, 994, 999, 996, + 997, 998, 1000, 2218, 259, 1001, 1007, 1004, 1005, 1010, + 1011, 1003, 1021, 1013, 1023, 1022, 1026, 1028, 1029, 1034, + 1035, 1036, 1030, 1038, 1037, 1039, 1040, 1044, 2218, 1048, + + 1057, 1041, 1058, 1069, 1046, 1071, 1072, 1070, 1076, 1067, + 1074, 1083, 1084, 1080, 1082, 1087, 1089, 1091, 1090, 1088, + 1094, 1099, 1097, 1095, 1098, 1110, 1112, 1114, 1122, 1104, + 1118, 1123, 1116, 1125, 1129, 2218, 1132, 1135, 1138, 1137, + 1139, 1140, 1142, 1143, 1144, 1147, 1148, 1150, 1152, 1153, + 2218, 1160, 1154, 1156, 1157, 1161, 1168, 1166, 1169, 1167, + 1173, 1175, 1179, 1176, 1187, 1188, 1189, 1190, 1197, 1198, + 1199, 2218, 1201, 1202, 1209, 1212, 1205, 1207, 1219, 1215, + 1216, 1217, 1218, 1225, 1220, 1223, 1226, 1228, 1229, 1222, + 1230, 1244, 1240, 1233, 1251, 1252, 2218, 2218, 1249, 2218, + + 1254, 1255, 1256, 1258, 1259, 1261, 1262, 1264, 1266, 1267, + 1268, 1273, 2218, 1272, 1269, 1275, 1283, 1279, 1291, 1276, + 1288, 2218, 1292, 1280, 1298, 1299, 1293, 1302, 1303, 1304, + 1307, 1310, 1312, 1313, 1314, 1317, 1316, 1323, 1319, 1320, + 1321, 1326, 1335, 1327, 2218, 2218, 1325, 1336, 1332, 1337, + 1348, 1355, 1353, 1338, 1354, 1356, 1359, 1360, 1361, 1363, + 1364, 2218, 1370, 1371, 1369, 1377, 2218, 1368, 1372, 1381, + 1383, 1384, 2218, 1385, 1387, 1388, 1389, 1392, 1395, 1396, + 1397, 1403, 1404, 1406, 1407, 1415, 1408, 1420, 1426, 1410, + 1412, 1423, 1428, 1430, 1433, 2218, 1439, 1425, 1440, 1437, + + 1442, 1449, 1438, 1445, 1446, 1447, 1448, 1451, 1453, 1455, + 1459, 1456, 1461, 1458, 1471, 1460, 1464, 2218, 1473, 1479, + 1476, 1481, 1482, 1483, 1485, 1489, 1490, 1491, 1493, 1494, + 1498, 1500, 1508, 1506, 1499, 1518, 1510, 1516, 1514, 1524, + 631, 1526, 1517, 1528, 1525, 1530, 1532, 1533, 2218, 1534, + 2218, 1536, 1523, 1540, 2218, 2218, 2218, 1550, 1543, 1551, + 1553, 1557, 2218, 1544, 1558, 1547, 1554, 1561, 1562, 1563, + 1565, 1567, 1569, 1570, 1575, 1577, 1579, 1581, 1580, 1587, + 1589, 1583, 1590, 1596, 1593, 1595, 1597, 1600, 1603, 1604, + 1608, 1606, 1607, 1602, 1609, 1621, 2218, 1623, 1612, 1619, + + 1631, 1624, 1626, 1632, 1634, 1635, 1641, 2218, 1638, 1643, + 1649, 1644, 1646, 1653, 1652, 1654, 1655, 1658, 1660, 1661, + 1662, 2218, 1663, 1665, 1669, 1670, 1676, 1680, 1672, 1687, + 1689, 1684, 1691, 1693, 2218, 1694, 1696, 1697, 1701, 1702, + 1698, 1705, 1706, 1710, 1711, 1713, 2218, 1715, 1717, 1718, + 1721, 1723, 1724, 1726, 1725, 1727, 1729, 1737, 1664, 2218, + 1734, 1735, 1741, 1751, 1747, 2218, 1749, 2218, 1750, 1752, + 1759, 1760, 1762, 1767, 1755, 1763, 1768, 1774, 1770, 1771, + 1772, 1778, 1779, 2218, 2218, 1784, 2218, 2218, 1789, 2218, + 2218, 1791, 2218, 1793, 2218, 1799, 1795, 1782, 1780, 1800, + + 2218, 1804, 2218, 2218, 1801, 1807, 1808, 1811, 1812, 1797, + 1814, 1816, 1817, 1818, 1820, 1821, 1822, 1823, 1827, 1825, + 1831, 1832, 1834, 1836, 2218, 1833, 1841, 2218, 1844, 1846, + 1847, 1850, 1852, 1855, 1861, 1857, 1858, 1859, 2218, 2218, + 2218, 1860, 1867, 1863, 1868, 1869, 2218, 1874, 1875, 1882, + 2218, 1884, 1876, 1886, 1888, 1891, 1889, 2218, 1890, 1899, + 1901, 1892, 1903, 1909, 1911, 1913, 2218, 1914, 1915, 1917, + 1916, 1921, 1922, 1924, 2218, 1918, 1926, 1929, 1931, 1934, + 1936, 2218, 1935, 1938, 2218, 1947, 2218, 1932, 1948, 1950, + 1955, 1957, 1943, 1958, 1964, 1963, 1965, 2218, 2218, 2218, + + 2218, 1960, 1966, 1967, 1968, 1970, 1971, 1973, 1976, 1977, + 2218, 1978, 1980, 1983, 1988, 1987, 2218, 1993, 1989, 1990, + 2218, 2218, 1995, 2003, 2005, 2218, 2006, 1994, 2007, 2009, + 2010, 2012, 2016, 2018, 2017, 2019, 2021, 2025, 2218, 2028, + 2029, 1878, 2033, 2035, 2036, 2039, 2037, 2041, 2045, 2042, + 2218, 2047, 2054, 2059, 2063, 2060, 2067, 2218, 2068, 2218, + 2071, 2072, 2218, 2218, 2048, 2074, 2075, 2218, 2218, 2064, + 2046, 2218, 2218, 2218, 2079, 2218, 2081, 2218, 2083, 2076, + 2218, 2086, 2088, 2090, 2218, 2093, 2218, 2094, 2095, 2218, + 2218, 2218, 2097, 2098, 2100, 2102, 2218, 2105, 2103, 2107, + + 2109, 2218, 2218, 2139, 2145, 2151, 2157, 2163, 94, 2169, + 2175, 2181, 2187, 2193, 2199, 2205, 2211 } ; -static yyconst flex_int16_t yy_def[1102] = +static yyconst flex_int16_t yy_def[1118] = { 0, - 1087, 1, 1088, 1088, 1089, 1089, 1090, 1090, 1091, 1091, - 1092, 1092, 1087, 1093, 1087, 1087, 1087, 1087, 1094, 1093, - 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, - 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1095, - 1087, 1087, 1087, 1095, 1096, 1087, 1087, 1087, 1096, 1097, - 1087, 1087, 1087, 1087, 1097, 1098, 1087, 1087, 1087, 1098, - 1099, 1087, 1100, 1087, 1099, 1099, 1093, 1093, 1087, 1101, - 1094, 1101, 1087, 1094, 1093, 1093, 1093, 1093, 1093, 1093, - 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, - 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, - - 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, - 1093, 1095, 1095, 1096, 1096, 1097, 1097, 1087, 1098, 1098, - 1099, 1099, 1100, 1100, 1099, 1093, 1093, 1093, 1093, 1093, - 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, - 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, - 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, - 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1099, 1093, 1093, - 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, - 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, - 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, - - 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, - 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1099, 1093, - 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, - 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, - 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1087, 1093, - 1093, 1093, 1093, 1093, 1087, 1093, 1093, 1093, 1093, 1093, - 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, - 1093, 1093, 1093, 1093, 1093, 1093, 1099, 1093, 1093, 1093, - 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, - 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, - - 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, - 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, - 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, - 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1099, 1093, - 1093, 1087, 1093, 1093, 1093, 1093, 1087, 1087, 1093, 1087, - 1087, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, - 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, - 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, - 1087, 1093, 1093, 1093, 1093, 1087, 1093, 1093, 1093, 1093, - 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, - - 1093, 1093, 1093, 1093, 1093, 1099, 1093, 1093, 1093, 1093, - 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, - 1093, 1093, 1093, 1093, 1087, 1093, 1093, 1093, 1093, 1093, - 1093, 1093, 1093, 1093, 1093, 1087, 1093, 1093, 1093, 1093, - 1093, 1093, 1093, 1087, 1093, 1093, 1093, 1093, 1093, 1093, - 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, - 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1087, - 1099, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, - 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, - 1093, 1093, 1093, 1093, 1087, 1093, 1093, 1093, 1093, 1093, - - 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, - 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, - 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, - 1093, 1087, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, - 1093, 1093, 1093, 1093, 1093, 1087, 1093, 1093, 1093, 1093, - 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, - 1093, 1093, 1093, 1093, 1093, 1093, 1087, 1093, 1093, 1093, - 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, - 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, - 1093, 1087, 1087, 1093, 1087, 1093, 1093, 1093, 1093, 1093, - - 1093, 1093, 1093, 1093, 1093, 1093, 1087, 1093, 1093, 1093, - 1093, 1093, 1093, 1093, 1093, 1087, 1093, 1093, 1093, 1093, - 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, - 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1087, 1087, - 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, - 1093, 1093, 1093, 1093, 1093, 1087, 1093, 1093, 1093, 1093, - 1087, 1093, 1093, 1093, 1093, 1093, 1087, 1093, 1093, 1093, - 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, - 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1087, 1093, - 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, - - 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, - 1087, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, - 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, - 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, - 1087, 1093, 1087, 1093, 1093, 1093, 1087, 1087, 1087, 1093, - 1093, 1093, 1093, 1093, 1087, 1093, 1093, 1093, 1093, 1093, - 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, - 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, - 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1087, 1093, - 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1087, 1093, - - 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, - 1093, 1093, 1087, 1093, 1093, 1093, 1093, 1093, 1093, 1093, - 1093, 1093, 1093, 1093, 1093, 1087, 1093, 1093, 1093, 1093, - 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1087, 1093, 1093, - 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, - 1087, 1093, 1093, 1093, 1093, 1087, 1093, 1087, 1093, 1093, - 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, - 1093, 1093, 1093, 1087, 1087, 1093, 1087, 1087, 1093, 1087, - 1087, 1093, 1087, 1093, 1087, 1093, 1093, 1093, 1093, 1093, - 1087, 1093, 1087, 1087, 1093, 1093, 1093, 1093, 1093, 1093, - - 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, - 1093, 1093, 1087, 1093, 1093, 1087, 1093, 1093, 1093, 1093, - 1093, 1093, 1093, 1093, 1093, 1093, 1087, 1087, 1087, 1093, - 1093, 1093, 1093, 1093, 1087, 1093, 1093, 1093, 1087, 1093, - 1093, 1093, 1093, 1093, 1093, 1087, 1093, 1093, 1093, 1093, - 1093, 1093, 1087, 1093, 1093, 1093, 1093, 1093, 1093, 1093, - 1087, 1093, 1093, 1093, 1093, 1093, 1093, 1087, 1093, 1093, - 1087, 1093, 1087, 1093, 1093, 1093, 1093, 1093, 1093, 1093, - 1093, 1093, 1093, 1087, 1087, 1093, 1093, 1093, 1093, 1093, - 1093, 1093, 1093, 1093, 1087, 1093, 1093, 1093, 1093, 1093, - - 1087, 1093, 1093, 1093, 1087, 1087, 1093, 1093, 1093, 1087, - 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, - 1093, 1093, 1087, 1093, 1093, 1093, 1093, 1093, 1093, 1093, - 1093, 1093, 1093, 1093, 1087, 1093, 1093, 1093, 1093, 1093, - 1093, 1087, 1093, 1087, 1093, 1093, 1087, 1087, 1093, 1093, - 1093, 1087, 1087, 1093, 1093, 1087, 1087, 1087, 1093, 1087, - 1093, 1087, 1093, 1093, 1087, 1093, 1093, 1093, 1087, 1093, - 1087, 1093, 1093, 1087, 1087, 1087, 1093, 1093, 1093, 1093, - 1087, 1093, 1093, 1093, 1093, 1087, 0, 1087, 1087, 1087, - 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, - - 1087 + 1103, 1, 1104, 1104, 1105, 1105, 1106, 1106, 1107, 1107, + 1108, 1108, 1103, 1109, 1103, 1103, 1103, 1103, 1110, 1109, + 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, + 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1111, + 1103, 1103, 1103, 1111, 1112, 1103, 1103, 1103, 1112, 1113, + 1103, 1103, 1103, 1103, 1113, 1114, 1103, 1103, 1103, 1114, + 1115, 1103, 1116, 1103, 1115, 1115, 1109, 1109, 1103, 1117, + 1110, 1117, 1103, 1110, 1109, 1109, 1109, 1109, 1109, 1109, + 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, + 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, + + 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, + 1109, 1111, 1111, 1112, 1112, 1113, 1113, 1103, 1114, 1114, + 1115, 1115, 1116, 1116, 1115, 1109, 1109, 1109, 1109, 1109, + 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, + 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, + 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, + 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1115, 1109, 1109, + 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, + 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, + 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, + + 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, + 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1115, 1109, + 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, + 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, + 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1103, 1109, + 1109, 1109, 1109, 1109, 1103, 1109, 1109, 1109, 1109, 1109, + 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, + 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1115, 1109, 1109, + 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, + 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, + + 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, + 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, + 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, + 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, + 1115, 1109, 1109, 1103, 1109, 1109, 1109, 1109, 1103, 1103, + 1109, 1103, 1103, 1109, 1109, 1109, 1109, 1109, 1109, 1109, + 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, + 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, + 1109, 1109, 1103, 1109, 1109, 1109, 1109, 1103, 1109, 1109, + 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, + + 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1115, 1109, + 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, + 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1103, 1109, 1109, + 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1103, 1109, + 1109, 1109, 1109, 1109, 1109, 1109, 1103, 1109, 1109, 1109, + 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, + 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, + 1109, 1109, 1109, 1103, 1115, 1109, 1109, 1109, 1109, 1109, + 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, + 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1103, 1109, + + 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, + 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, + 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, + 1109, 1109, 1109, 1109, 1109, 1103, 1109, 1109, 1109, 1109, + 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, + 1103, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, + 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, + 1109, 1103, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, + 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, + 1109, 1109, 1109, 1109, 1109, 1109, 1103, 1103, 1109, 1103, + + 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, + 1109, 1109, 1103, 1109, 1109, 1109, 1109, 1109, 1109, 1109, + 1109, 1103, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, + 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, + 1109, 1109, 1109, 1109, 1103, 1103, 1109, 1109, 1109, 1109, + 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, + 1109, 1103, 1109, 1109, 1109, 1109, 1103, 1109, 1109, 1109, + 1109, 1109, 1103, 1109, 1109, 1109, 1109, 1109, 1109, 1109, + 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, + 1109, 1109, 1109, 1109, 1109, 1103, 1109, 1109, 1109, 1109, + + 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, + 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1103, 1109, 1109, + 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, + 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, + 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1103, 1109, + 1103, 1109, 1109, 1109, 1103, 1103, 1103, 1109, 1109, 1109, + 1109, 1109, 1103, 1109, 1109, 1109, 1109, 1109, 1109, 1109, + 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, + 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, + 1109, 1109, 1109, 1109, 1109, 1109, 1103, 1109, 1109, 1109, + + 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1103, 1109, 1109, + 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, + 1109, 1103, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, + 1109, 1109, 1109, 1109, 1103, 1109, 1109, 1109, 1109, 1109, + 1109, 1109, 1109, 1109, 1109, 1109, 1103, 1109, 1109, 1109, + 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1103, + 1109, 1109, 1109, 1109, 1109, 1103, 1109, 1103, 1109, 1109, + 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, + 1109, 1109, 1109, 1103, 1103, 1109, 1103, 1103, 1109, 1103, + 1103, 1109, 1103, 1109, 1103, 1109, 1109, 1109, 1109, 1109, + + 1103, 1109, 1103, 1103, 1109, 1109, 1109, 1109, 1109, 1109, + 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, + 1109, 1109, 1109, 1109, 1103, 1109, 1109, 1103, 1109, 1109, + 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1103, 1103, + 1103, 1109, 1109, 1109, 1109, 1109, 1103, 1109, 1109, 1109, + 1103, 1109, 1109, 1109, 1109, 1109, 1109, 1103, 1109, 1109, + 1109, 1109, 1109, 1109, 1109, 1109, 1103, 1109, 1109, 1109, + 1109, 1109, 1109, 1109, 1103, 1109, 1109, 1109, 1109, 1109, + 1109, 1103, 1109, 1109, 1103, 1109, 1103, 1109, 1109, 1109, + 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1103, 1103, 1103, + + 1103, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, + 1103, 1109, 1109, 1109, 1109, 1109, 1103, 1109, 1109, 1109, + 1103, 1103, 1109, 1109, 1109, 1103, 1109, 1109, 1109, 1109, + 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1103, 1109, + 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, + 1103, 1109, 1109, 1109, 1109, 1109, 1109, 1103, 1109, 1103, + 1109, 1109, 1103, 1103, 1109, 1109, 1109, 1103, 1103, 1109, + 1109, 1103, 1103, 1103, 1109, 1103, 1109, 1103, 1109, 1109, + 1103, 1109, 1109, 1109, 1103, 1109, 1103, 1109, 1109, 1103, + 1103, 1103, 1109, 1109, 1109, 1109, 1103, 1109, 1109, 1109, + + 1109, 1103, 0, 1103, 1103, 1103, 1103, 1103, 1103, 1103, + 1103, 1103, 1103, 1103, 1103, 1103, 1103 } ; -static yyconst flex_int16_t yy_nxt[2224] = +static yyconst flex_int16_t yy_nxt[2258] = { 0, 14, 15, 16, 17, 18, 19, 18, 14, 14, 14, 14, 18, 20, 21, 14, 22, 23, 24, 25, 14, @@ -841,201 +846,204 @@ static yyconst flex_int16_t yy_nxt[2224] = 251, 68, 256, 252, 68, 68, 254, 259, 68, 253, 68, 68, 68, 263, 68, 261, 68, 68, 68, 257, 262, 264, 68, 68, 68, 258, 267, 122, 260, 68, - 68, 266, 279, 68, 265, 68, 269, 68, 276, 275, - - 68, 68, 268, 68, 73, 270, 271, 68, 277, 278, - 281, 68, 284, 280, 68, 283, 68, 272, 273, 274, - 282, 285, 286, 68, 68, 68, 68, 68, 68, 291, - 288, 287, 289, 68, 68, 68, 68, 290, 122, 297, - 305, 293, 294, 296, 292, 298, 299, 68, 68, 68, - 68, 68, 68, 300, 301, 295, 68, 302, 303, 304, - 68, 68, 308, 68, 68, 306, 68, 309, 68, 307, - 68, 68, 311, 310, 68, 68, 68, 312, 318, 68, - 316, 68, 313, 68, 317, 68, 321, 68, 315, 326, - 68, 314, 68, 322, 68, 68, 329, 319, 68, 327, - - 320, 323, 68, 331, 68, 68, 68, 325, 68, 68, - 328, 324, 120, 332, 336, 68, 333, 330, 122, 68, - 340, 68, 339, 68, 334, 68, 68, 337, 335, 345, - 338, 68, 341, 342, 68, 343, 344, 347, 68, 348, - 68, 349, 350, 68, 346, 352, 68, 351, 68, 68, - 68, 68, 355, 68, 353, 354, 68, 68, 357, 68, - 356, 68, 68, 68, 364, 68, 359, 365, 361, 68, - 68, 68, 68, 362, 366, 68, 360, 363, 68, 358, - 370, 371, 367, 369, 68, 68, 68, 376, 373, 68, - 372, 68, 374, 68, 68, 68, 375, 380, 382, 378, - - 379, 381, 68, 68, 368, 68, 68, 377, 385, 384, - 68, 68, 386, 68, 383, 388, 68, 68, 68, 392, - 68, 393, 68, 68, 68, 68, 394, 68, 395, 68, - 387, 389, 68, 391, 68, 390, 68, 118, 68, 399, - 68, 396, 398, 400, 68, 401, 397, 68, 122, 402, - 405, 68, 403, 406, 407, 409, 404, 68, 408, 68, - 68, 68, 68, 68, 68, 68, 68, 416, 68, 411, - 415, 68, 68, 414, 425, 68, 422, 410, 412, 413, - 68, 68, 68, 423, 417, 68, 427, 418, 426, 68, - 429, 68, 419, 424, 430, 68, 68, 428, 420, 421, - - 68, 433, 68, 68, 432, 436, 68, 68, 435, 68, - 437, 68, 68, 68, 68, 431, 68, 434, 438, 439, - 68, 440, 68, 443, 117, 442, 445, 441, 444, 68, - 68, 68, 68, 446, 68, 447, 448, 68, 449, 68, - 68, 68, 450, 452, 453, 68, 68, 68, 459, 454, - 451, 68, 457, 68, 455, 456, 68, 68, 68, 68, - 460, 458, 68, 463, 68, 465, 68, 68, 68, 462, - 461, 466, 470, 68, 68, 468, 471, 122, 68, 68, - 464, 68, 68, 68, 467, 68, 68, 469, 484, 472, - 68, 485, 115, 68, 489, 68, 480, 481, 486, 483, - - 68, 490, 473, 68, 479, 68, 474, 482, 475, 488, - 491, 68, 476, 68, 477, 68, 487, 495, 68, 478, - 68, 492, 496, 497, 68, 493, 68, 68, 68, 68, - 68, 68, 68, 500, 494, 502, 505, 68, 501, 499, - 68, 68, 68, 498, 68, 507, 504, 508, 68, 509, - 512, 503, 506, 68, 511, 68, 68, 510, 68, 513, - 68, 68, 514, 515, 68, 68, 68, 518, 68, 521, - 519, 516, 68, 520, 68, 68, 68, 68, 68, 527, - 68, 517, 525, 526, 529, 68, 68, 530, 524, 68, - 522, 528, 68, 68, 523, 532, 68, 535, 68, 68, - - 531, 68, 68, 68, 540, 533, 68, 534, 537, 68, - 68, 541, 68, 68, 68, 68, 536, 539, 544, 546, - 68, 68, 68, 68, 542, 68, 543, 538, 549, 545, - 548, 68, 68, 547, 68, 552, 68, 68, 68, 68, - 68, 550, 68, 68, 551, 558, 68, 553, 68, 554, - 68, 68, 561, 676, 563, 555, 557, 559, 556, 68, - 560, 566, 562, 68, 565, 567, 68, 569, 68, 570, - 564, 68, 68, 68, 68, 572, 568, 68, 571, 575, - 68, 576, 68, 68, 68, 573, 68, 577, 68, 579, - 68, 68, 578, 68, 580, 574, 581, 583, 582, 68, - - 68, 585, 68, 68, 68, 584, 592, 68, 588, 68, - 587, 593, 68, 586, 594, 595, 68, 68, 68, 68, - 589, 68, 68, 591, 598, 68, 597, 602, 590, 601, - 603, 600, 68, 604, 68, 68, 68, 596, 68, 599, - 607, 68, 68, 605, 68, 68, 68, 611, 68, 68, - 68, 68, 615, 68, 68, 606, 616, 68, 68, 619, - 68, 68, 608, 610, 609, 621, 68, 68, 612, 614, - 68, 618, 68, 68, 613, 625, 617, 68, 620, 622, - 623, 68, 68, 68, 626, 68, 624, 627, 630, 68, - 628, 633, 629, 634, 632, 68, 68, 68, 68, 68, - - 635, 68, 631, 638, 637, 68, 636, 639, 68, 640, - 68, 642, 643, 68, 641, 68, 644, 68, 68, 68, - 68, 68, 68, 651, 68, 68, 68, 68, 652, 656, - 68, 68, 645, 648, 646, 654, 650, 647, 653, 68, - 659, 649, 68, 660, 657, 68, 68, 655, 68, 661, - 68, 658, 68, 68, 68, 662, 68, 663, 665, 667, - 68, 68, 669, 68, 68, 68, 68, 68, 671, 666, - 68, 664, 68, 678, 670, 68, 668, 677, 68, 68, - 68, 68, 68, 68, 672, 673, 674, 680, 681, 68, - 675, 68, 683, 68, 684, 679, 687, 68, 685, 68, - - 68, 68, 686, 68, 682, 688, 689, 68, 690, 68, - 68, 68, 696, 68, 68, 691, 68, 68, 68, 692, - 68, 693, 68, 694, 695, 704, 68, 68, 68, 701, - 697, 700, 702, 698, 703, 699, 705, 707, 68, 710, - 708, 711, 68, 68, 68, 706, 68, 709, 68, 68, - 68, 68, 717, 68, 68, 720, 721, 68, 68, 713, - 68, 68, 68, 712, 715, 725, 714, 716, 722, 718, - 68, 68, 719, 723, 68, 68, 726, 68, 68, 724, - 68, 68, 731, 68, 68, 732, 733, 68, 68, 737, - 727, 728, 729, 734, 68, 68, 68, 730, 735, 736, - - 738, 68, 740, 741, 68, 743, 68, 744, 68, 68, - 742, 68, 68, 739, 747, 68, 748, 68, 749, 68, - 68, 751, 68, 750, 68, 753, 68, 752, 68, 745, - 68, 746, 755, 68, 756, 68, 757, 68, 758, 68, - 68, 68, 68, 759, 68, 765, 68, 754, 760, 68, - 68, 68, 68, 768, 68, 761, 68, 762, 767, 769, - 68, 763, 766, 68, 771, 774, 775, 764, 68, 68, - 773, 68, 68, 68, 778, 777, 776, 770, 772, 68, - 68, 779, 68, 68, 68, 787, 68, 68, 783, 68, - 68, 788, 784, 780, 781, 789, 68, 790, 792, 782, - - 786, 791, 68, 68, 68, 785, 68, 68, 796, 68, - 794, 68, 795, 68, 799, 68, 793, 800, 68, 68, - 68, 798, 68, 801, 68, 802, 68, 805, 68, 797, - 809, 803, 804, 68, 68, 68, 812, 808, 806, 68, - 811, 68, 807, 813, 68, 68, 815, 68, 68, 68, - 810, 68, 68, 68, 68, 68, 68, 68, 823, 113, - 817, 814, 822, 818, 819, 68, 68, 824, 816, 820, - 826, 68, 68, 821, 825, 68, 68, 828, 829, 68, - 830, 827, 68, 834, 831, 68, 833, 68, 68, 68, - 835, 838, 68, 68, 68, 68, 68, 68, 68, 68, - - 832, 68, 68, 837, 840, 839, 836, 841, 842, 843, - 68, 844, 846, 68, 845, 68, 847, 851, 68, 848, - 68, 853, 73, 68, 850, 68, 849, 854, 68, 852, - 855, 856, 68, 858, 68, 68, 859, 857, 68, 68, - 68, 68, 68, 68, 861, 862, 68, 864, 68, 68, - 860, 68, 68, 68, 68, 863, 870, 68, 68, 873, - 73, 868, 865, 874, 68, 866, 68, 871, 68, 867, - 872, 879, 869, 875, 68, 877, 68, 878, 68, 876, - 880, 68, 881, 68, 68, 883, 68, 884, 68, 882, - 885, 68, 68, 68, 68, 889, 888, 68, 887, 891, - - 68, 893, 68, 894, 68, 68, 886, 68, 896, 68, - 890, 68, 68, 68, 68, 68, 892, 898, 900, 68, - 904, 897, 68, 68, 902, 68, 905, 68, 903, 901, - 909, 895, 899, 68, 908, 68, 907, 68, 68, 68, - 68, 911, 68, 906, 912, 913, 68, 68, 68, 910, - 68, 914, 68, 915, 916, 68, 920, 919, 68, 68, - 917, 68, 918, 68, 921, 68, 941, 68, 923, 925, - 68, 926, 68, 924, 68, 922, 927, 68, 928, 68, - 929, 68, 930, 68, 931, 68, 68, 68, 932, 68, - 934, 935, 68, 68, 936, 937, 933, 68, 939, 68, - - 68, 68, 938, 68, 68, 68, 945, 946, 68, 68, - 68, 68, 940, 942, 947, 943, 944, 68, 68, 953, - 68, 68, 951, 952, 950, 68, 955, 68, 68, 68, - 949, 68, 68, 961, 68, 948, 956, 962, 68, 954, - 68, 68, 68, 68, 968, 68, 957, 958, 959, 68, - 960, 68, 967, 963, 68, 971, 68, 68, 68, 964, - 68, 965, 68, 966, 973, 68, 969, 68, 974, 976, - 68, 68, 970, 68, 68, 977, 972, 980, 978, 979, - 975, 68, 68, 984, 68, 68, 981, 982, 68, 983, - 985, 68, 68, 986, 68, 988, 68, 987, 68, 991, - - 68, 68, 68, 989, 68, 990, 995, 68, 68, 992, - 68, 68, 68, 996, 68, 998, 997, 1001, 68, 68, - 993, 994, 1004, 999, 1000, 68, 1003, 1005, 68, 1006, - 68, 68, 1002, 68, 1009, 1010, 68, 68, 68, 68, - 68, 1011, 68, 68, 68, 68, 68, 1008, 1013, 1007, - 1016, 68, 68, 68, 68, 1021, 68, 1012, 1024, 1015, - 1019, 1014, 1023, 68, 1017, 68, 68, 68, 68, 68, - 1030, 68, 1018, 1020, 1022, 1025, 1026, 1027, 68, 68, - 1031, 68, 68, 1029, 1032, 1035, 68, 68, 68, 68, - 68, 68, 68, 1028, 1039, 1042, 68, 1034, 1038, 68, - - 1033, 1044, 68, 1036, 1043, 68, 68, 1037, 1047, 68, - 68, 1041, 1048, 68, 68, 68, 68, 1040, 1052, 68, - 1053, 68, 68, 1056, 68, 1045, 1050, 68, 1046, 1049, - 1057, 68, 1055, 1058, 68, 1051, 1067, 68, 1060, 68, - 68, 1054, 1059, 68, 1061, 1062, 68, 68, 1064, 1065, - 68, 68, 1063, 68, 1069, 68, 1066, 1068, 68, 1071, - 68, 68, 1070, 68, 1074, 68, 1075, 68, 1076, 68, - 68, 68, 1078, 68, 68, 68, 1072, 1079, 1081, 68, - 68, 1073, 1077, 68, 1082, 68, 1086, 68, 73, 68, - 122, 120, 118, 117, 1080, 1083, 115, 1084, 113, 68, - - 1087, 1087, 1087, 1087, 1085, 40, 40, 40, 40, 40, - 40, 45, 45, 45, 45, 45, 45, 50, 50, 50, - 50, 50, 50, 56, 56, 56, 56, 56, 56, 61, - 61, 61, 61, 61, 61, 71, 71, 71, 71, 71, - 71, 112, 112, 1087, 1087, 112, 112, 114, 114, 1087, - 114, 1087, 114, 116, 1087, 1087, 1087, 1087, 116, 119, - 119, 1087, 1087, 119, 119, 121, 1087, 1087, 1087, 1087, - 121, 123, 123, 123, 123, 123, 123, 72, 72, 72, - 72, 72, 72, 13, 1087, 1087, 1087, 1087, 1087, 1087, - 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, - - 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, - 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, - 1087, 1087, 1087 + 68, 266, 280, 68, 265, 68, 269, 68, 277, 276, + + 68, 68, 268, 68, 73, 270, 271, 68, 278, 279, + 282, 68, 285, 281, 68, 284, 68, 272, 273, 274, + 283, 68, 275, 286, 287, 68, 68, 68, 68, 292, + 289, 288, 290, 122, 68, 291, 68, 68, 68, 300, + 298, 68, 294, 295, 68, 293, 297, 299, 68, 68, + 68, 68, 303, 304, 301, 302, 296, 68, 68, 68, + 68, 306, 308, 68, 307, 68, 305, 68, 309, 68, + 310, 312, 68, 68, 313, 68, 68, 68, 68, 68, + 319, 311, 317, 68, 314, 68, 318, 68, 322, 316, + 68, 327, 68, 315, 320, 323, 68, 68, 321, 68, + + 330, 328, 68, 324, 68, 332, 68, 68, 331, 334, + 326, 68, 329, 325, 68, 68, 337, 333, 68, 68, + 122, 342, 68, 338, 341, 335, 68, 344, 68, 336, + 68, 68, 343, 340, 339, 68, 351, 346, 347, 349, + 68, 68, 345, 68, 348, 350, 68, 352, 68, 353, + 68, 354, 68, 68, 68, 357, 68, 355, 356, 68, + 68, 68, 68, 358, 68, 805, 359, 361, 68, 68, + 366, 363, 367, 360, 68, 120, 364, 68, 362, 68, + 365, 68, 368, 68, 373, 369, 68, 371, 372, 68, + 68, 68, 374, 375, 376, 68, 68, 68, 68, 68, + + 377, 382, 68, 380, 381, 383, 68, 370, 384, 68, + 68, 379, 68, 68, 378, 386, 387, 68, 385, 68, + 388, 68, 389, 390, 68, 391, 394, 68, 395, 68, + 68, 68, 68, 396, 68, 392, 68, 397, 68, 393, + 68, 118, 68, 68, 68, 401, 398, 402, 403, 400, + 68, 406, 68, 399, 68, 404, 68, 122, 405, 410, + 412, 407, 409, 68, 411, 68, 68, 68, 408, 68, + 68, 68, 68, 419, 68, 414, 418, 68, 68, 425, + 417, 68, 68, 68, 413, 415, 416, 68, 428, 68, + 429, 420, 68, 430, 421, 426, 431, 68, 432, 422, + + 68, 68, 68, 433, 68, 423, 424, 427, 68, 436, + 435, 68, 439, 68, 68, 68, 438, 440, 68, 437, + 68, 434, 68, 442, 441, 68, 68, 68, 443, 448, + 445, 447, 68, 446, 68, 68, 68, 68, 450, 68, + 444, 68, 452, 68, 68, 68, 449, 453, 455, 456, + 451, 68, 458, 68, 68, 454, 457, 462, 68, 460, + 68, 68, 68, 68, 463, 459, 68, 68, 461, 68, + 468, 466, 68, 465, 68, 469, 472, 464, 68, 474, + 68, 68, 475, 122, 467, 470, 68, 471, 68, 68, + 68, 488, 68, 68, 68, 68, 68, 117, 473, 68, + + 68, 476, 68, 489, 68, 484, 485, 487, 496, 492, + 490, 493, 477, 68, 483, 486, 478, 68, 479, 68, + 494, 68, 480, 498, 481, 500, 495, 68, 491, 482, + 68, 497, 499, 68, 68, 68, 68, 501, 68, 68, + 68, 504, 68, 68, 506, 509, 502, 505, 503, 68, + 68, 115, 68, 68, 511, 68, 508, 512, 510, 68, + 507, 68, 514, 516, 513, 68, 515, 68, 68, 68, + 517, 68, 523, 518, 519, 521, 520, 68, 68, 68, + 522, 68, 525, 524, 68, 68, 68, 68, 68, 68, + 68, 529, 530, 531, 536, 68, 533, 534, 528, 526, + + 532, 68, 68, 535, 527, 68, 68, 539, 68, 68, + 68, 68, 68, 68, 545, 68, 68, 68, 541, 68, + 538, 546, 68, 68, 537, 68, 540, 544, 549, 542, + 550, 547, 551, 68, 68, 68, 548, 543, 68, 554, + 68, 68, 68, 552, 553, 557, 68, 68, 68, 68, + 68, 68, 68, 68, 113, 563, 68, 555, 68, 556, + 68, 558, 559, 561, 73, 566, 564, 560, 562, 68, + 68, 573, 565, 569, 567, 570, 571, 568, 574, 68, + 572, 68, 68, 68, 68, 575, 68, 576, 68, 577, + 580, 581, 68, 578, 68, 68, 68, 582, 583, 68, + + 68, 68, 68, 68, 579, 588, 68, 68, 584, 68, + 68, 68, 73, 585, 591, 586, 68, 587, 589, 593, + 590, 597, 68, 598, 68, 592, 68, 594, 68, 596, + 68, 599, 595, 600, 68, 68, 601, 68, 602, 607, + 603, 68, 608, 605, 68, 609, 604, 68, 606, 68, + 68, 68, 68, 613, 68, 68, 68, 73, 610, 68, + 68, 617, 68, 612, 68, 68, 68, 621, 68, 68, + 611, 622, 68, 68, 625, 614, 615, 616, 68, 68, + 68, 68, 618, 620, 627, 68, 624, 68, 68, 619, + 631, 68, 623, 626, 632, 629, 633, 628, 630, 68, + + 68, 68, 68, 68, 639, 640, 634, 638, 635, 68, + 68, 68, 641, 68, 68, 636, 644, 68, 642, 68, + 645, 68, 637, 646, 68, 648, 649, 68, 68, 68, + 68, 68, 68, 643, 68, 68, 647, 68, 68, 657, + 68, 68, 68, 660, 658, 68, 650, 651, 652, 653, + 656, 654, 68, 655, 659, 662, 68, 663, 665, 666, + 667, 68, 661, 68, 68, 664, 68, 68, 68, 668, + 68, 68, 673, 68, 68, 671, 68, 675, 68, 68, + 68, 68, 669, 677, 68, 68, 672, 68, 68, 676, + 679, 68, 68, 670, 674, 68, 684, 683, 685, 678, + + 68, 681, 680, 68, 68, 68, 687, 682, 686, 688, + 68, 68, 691, 690, 68, 68, 68, 689, 696, 68, + 694, 695, 68, 692, 68, 68, 68, 697, 68, 68, + 703, 68, 68, 68, 693, 68, 122, 68, 68, 68, + 711, 702, 698, 701, 68, 699, 700, 68, 68, 68, + 68, 704, 705, 707, 706, 710, 708, 712, 714, 709, + 68, 715, 717, 713, 718, 68, 68, 68, 68, 716, + 719, 68, 68, 68, 724, 68, 68, 727, 728, 720, + 68, 68, 68, 68, 68, 722, 721, 729, 732, 68, + 723, 725, 730, 68, 726, 68, 68, 68, 731, 68, + + 68, 68, 733, 738, 68, 739, 740, 68, 68, 68, + 745, 735, 734, 741, 736, 68, 68, 737, 68, 68, + 68, 744, 68, 743, 68, 748, 749, 68, 746, 750, + 742, 751, 68, 752, 755, 68, 747, 68, 68, 756, + 68, 757, 68, 753, 754, 68, 759, 761, 758, 68, + 68, 68, 68, 763, 68, 760, 764, 68, 68, 68, + 68, 68, 765, 68, 766, 68, 773, 68, 68, 767, + 68, 68, 68, 68, 762, 776, 68, 768, 769, 770, + 775, 771, 777, 68, 779, 68, 783, 774, 68, 772, + 782, 68, 781, 68, 68, 68, 778, 68, 780, 786, + + 785, 68, 68, 68, 787, 68, 68, 795, 784, 791, + 68, 68, 68, 798, 792, 796, 789, 788, 68, 797, + 68, 790, 68, 799, 794, 800, 68, 793, 68, 68, + 68, 804, 802, 806, 801, 68, 68, 68, 68, 808, + 68, 807, 68, 809, 68, 68, 68, 810, 68, 814, + 811, 803, 68, 816, 812, 68, 68, 818, 813, 68, + 815, 817, 68, 68, 820, 68, 68, 821, 822, 68, + 68, 824, 819, 68, 68, 68, 823, 68, 826, 68, + 825, 68, 68, 832, 831, 827, 828, 68, 835, 68, + 829, 68, 68, 68, 838, 68, 834, 830, 837, 68, + + 833, 68, 68, 843, 839, 68, 840, 68, 68, 68, + 844, 847, 68, 841, 68, 68, 68, 836, 68, 68, + 68, 68, 842, 846, 68, 849, 845, 848, 850, 851, + 852, 68, 853, 68, 854, 68, 68, 855, 68, 856, + 859, 857, 860, 68, 68, 861, 68, 68, 863, 858, + 68, 864, 866, 68, 868, 68, 68, 862, 68, 867, + 865, 68, 869, 871, 68, 68, 68, 68, 870, 872, + 68, 874, 68, 68, 68, 68, 68, 68, 880, 873, + 915, 68, 68, 883, 68, 878, 875, 884, 68, 876, + 881, 885, 68, 877, 882, 879, 68, 886, 887, 68, + + 888, 68, 890, 68, 891, 68, 68, 893, 68, 68, + 68, 892, 895, 68, 68, 889, 897, 68, 68, 899, + 898, 901, 68, 68, 903, 68, 904, 68, 894, 68, + 68, 906, 896, 68, 900, 68, 68, 68, 68, 68, + 908, 68, 902, 910, 914, 907, 68, 68, 912, 68, + 913, 120, 911, 68, 918, 905, 917, 909, 919, 68, + 920, 68, 68, 68, 68, 923, 916, 68, 921, 924, + 925, 68, 68, 922, 68, 68, 926, 927, 928, 68, + 68, 932, 68, 68, 68, 931, 68, 929, 933, 935, + 68, 68, 68, 937, 68, 930, 68, 938, 936, 934, + + 939, 68, 940, 68, 941, 68, 942, 68, 943, 68, + 944, 68, 68, 68, 945, 947, 68, 946, 948, 68, + 68, 949, 951, 68, 68, 950, 68, 953, 68, 68, + 68, 958, 68, 68, 68, 68, 952, 68, 954, 68, + 955, 956, 959, 68, 68, 68, 68, 967, 68, 965, + 957, 966, 962, 68, 969, 961, 68, 964, 68, 68, + 960, 963, 68, 968, 68, 970, 975, 68, 976, 68, + 68, 68, 68, 68, 982, 68, 971, 972, 973, 68, + 68, 68, 981, 974, 977, 985, 68, 68, 68, 978, + 68, 979, 980, 987, 68, 983, 68, 988, 68, 984, + + 68, 68, 68, 68, 68, 991, 986, 990, 992, 993, + 989, 68, 1062, 68, 998, 68, 995, 994, 996, 997, + 999, 68, 1000, 68, 1001, 68, 68, 68, 68, 68, + 68, 1002, 1004, 68, 68, 1007, 68, 1005, 68, 1003, + 1011, 68, 1006, 68, 68, 1008, 68, 68, 68, 1009, + 68, 118, 1012, 1014, 1013, 68, 1015, 1010, 1017, 68, + 68, 1019, 68, 1016, 1018, 1020, 1021, 68, 1022, 68, + 68, 1025, 68, 1023, 1026, 68, 68, 68, 68, 68, + 68, 1027, 68, 68, 1024, 68, 1029, 1032, 68, 68, + 68, 1028, 68, 1037, 1039, 68, 1031, 1035, 1030, 68, + + 68, 68, 68, 1033, 1040, 68, 68, 68, 1041, 1036, + 1038, 1034, 1045, 1043, 1042, 68, 1046, 68, 68, 68, + 1051, 68, 68, 1048, 68, 1049, 1047, 1044, 68, 68, + 68, 68, 1058, 68, 1050, 1055, 1054, 68, 1052, 1060, + 68, 68, 1059, 1053, 1063, 68, 1064, 68, 68, 68, + 1057, 68, 1068, 68, 68, 1056, 1069, 68, 68, 68, + 68, 1061, 1084, 1066, 1071, 1072, 68, 1065, 1080, 1067, + 1073, 68, 68, 1070, 1074, 68, 68, 1075, 1076, 68, + 68, 1077, 1078, 68, 68, 1081, 68, 68, 68, 1079, + 1085, 68, 1082, 68, 1087, 68, 1083, 1086, 68, 1090, + + 68, 1091, 68, 1088, 1092, 68, 68, 68, 1094, 68, + 68, 1097, 68, 1095, 68, 68, 1089, 68, 1093, 68, + 1102, 68, 117, 1098, 115, 113, 68, 1103, 1103, 1100, + 1096, 1103, 1099, 1103, 1103, 1103, 1103, 1103, 1101, 40, + 40, 40, 40, 40, 40, 45, 45, 45, 45, 45, + 45, 50, 50, 50, 50, 50, 50, 56, 56, 56, + 56, 56, 56, 61, 61, 61, 61, 61, 61, 71, + 71, 71, 71, 71, 71, 112, 112, 1103, 1103, 112, + 112, 114, 114, 1103, 114, 1103, 114, 116, 1103, 1103, + 1103, 1103, 116, 119, 119, 1103, 1103, 119, 119, 121, + + 1103, 1103, 1103, 1103, 121, 123, 123, 123, 123, 123, + 123, 72, 72, 72, 72, 72, 72, 13, 1103, 1103, + 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, + 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, + 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, + 1103, 1103, 1103, 1103, 1103, 1103, 1103 } ; -static yyconst flex_int16_t yy_chk[2224] = +static yyconst flex_int16_t yy_chk[2258] = { 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, @@ -1046,7 +1054,7 @@ static yyconst flex_int16_t yy_chk[2224] = 9, 24, 33, 6, 7, 7, 7, 7, 9, 7, 10, 10, 10, 26, 26, 7, 8, 8, 8, 8, 10, 8, 26, 33, 110, 24, 25, 8, 11, 11, - 11, 11, 11, 11, 1093, 20, 110, 20, 20, 11, + 11, 11, 11, 11, 1109, 20, 110, 20, 20, 11, 20, 25, 66, 27, 28, 20, 23, 27, 11, 12, 12, 12, 12, 12, 12, 23, 66, 27, 23, 28, @@ -1066,7 +1074,7 @@ static yyconst flex_int16_t yy_chk[2224] = 94, 88, 95, 96, 87, 97, 98, 94, 99, 97, 100, 102, 101, 103, 107, 95, 104, 99, 105, 105, 106, 108, 109, 96, 98, 101, 102, 109, 111, 136, - 100, 471, 103, 136, 104, 107, 113, 113, 106, 105, + 100, 475, 103, 136, 104, 107, 113, 113, 106, 105, 115, 120, 120, 115, 108, 117, 111, 117, 117, 122, 117, 122, 122, 127, 122, 123, 123, 123, 123, 125, @@ -1094,194 +1102,197 @@ static yyconst flex_int16_t yy_chk[2224] = 224, 225, 214, 216, 124, 216, 216, 226, 219, 220, 223, 228, 226, 222, 229, 225, 230, 216, 216, 216, - 224, 227, 227, 231, 227, 232, 233, 234, 245, 232, - 229, 228, 230, 235, 236, 237, 238, 231, 121, 237, - 245, 234, 235, 236, 233, 238, 239, 240, 247, 241, - 244, 239, 251, 240, 241, 235, 242, 242, 243, 244, - 246, 248, 248, 243, 252, 246, 250, 250, 253, 247, - 254, 256, 252, 251, 257, 258, 259, 253, 260, 261, - 258, 262, 254, 260, 259, 263, 263, 264, 257, 265, - 266, 256, 268, 263, 265, 267, 267, 261, 270, 265, - - 262, 263, 269, 269, 271, 272, 273, 264, 275, 274, - 266, 263, 119, 270, 274, 276, 271, 268, 277, 279, - 278, 282, 277, 281, 272, 278, 283, 275, 273, 283, - 276, 284, 279, 280, 280, 281, 282, 285, 285, 286, - 286, 287, 288, 288, 284, 290, 287, 289, 289, 291, - 290, 292, 293, 295, 291, 292, 294, 293, 295, 296, - 294, 297, 298, 300, 300, 299, 297, 301, 299, 311, - 304, 302, 301, 299, 302, 305, 298, 299, 303, 296, - 305, 306, 303, 304, 307, 308, 306, 311, 308, 309, - 307, 310, 309, 312, 313, 314, 310, 315, 316, 313, - - 314, 315, 315, 316, 303, 317, 318, 312, 319, 318, - 320, 321, 319, 319, 317, 321, 322, 323, 324, 325, - 326, 326, 327, 328, 325, 329, 327, 330, 328, 331, - 320, 322, 332, 324, 336, 323, 338, 118, 333, 332, - 334, 329, 331, 333, 335, 334, 330, 337, 339, 335, - 338, 340, 336, 339, 340, 343, 337, 341, 341, 344, - 343, 345, 349, 346, 352, 357, 353, 354, 358, 345, - 353, 356, 354, 352, 359, 359, 356, 344, 346, 349, - 355, 360, 362, 357, 355, 361, 361, 355, 360, 363, - 363, 364, 355, 358, 364, 365, 366, 362, 355, 355, - - 367, 367, 368, 369, 366, 370, 370, 371, 369, 375, - 371, 373, 372, 374, 380, 365, 377, 368, 372, 373, - 376, 374, 383, 377, 116, 376, 379, 375, 378, 378, - 389, 379, 382, 380, 387, 382, 383, 384, 384, 385, - 388, 391, 385, 387, 388, 390, 392, 393, 394, 389, - 385, 396, 392, 394, 390, 391, 395, 397, 398, 399, - 395, 393, 403, 398, 400, 400, 402, 404, 401, 397, - 396, 401, 405, 405, 407, 403, 406, 406, 408, 410, - 399, 411, 418, 412, 402, 414, 413, 404, 415, 407, - 416, 416, 114, 415, 418, 417, 411, 412, 416, 414, - - 419, 419, 408, 409, 410, 420, 409, 413, 409, 417, - 420, 422, 409, 421, 409, 423, 416, 424, 424, 409, - 427, 421, 426, 427, 428, 422, 429, 426, 430, 431, - 432, 433, 434, 430, 423, 432, 435, 437, 431, 429, - 438, 435, 439, 428, 440, 438, 434, 439, 441, 440, - 443, 433, 437, 442, 442, 443, 447, 441, 445, 445, - 446, 448, 445, 446, 449, 450, 452, 449, 451, 452, - 450, 447, 453, 451, 454, 455, 458, 456, 457, 458, - 459, 448, 456, 457, 460, 462, 464, 461, 455, 460, - 453, 459, 461, 465, 454, 463, 463, 466, 467, 468, - - 462, 466, 469, 472, 473, 464, 474, 465, 468, 473, - 475, 474, 476, 477, 478, 480, 467, 472, 477, 479, - 479, 481, 483, 482, 475, 484, 476, 469, 482, 478, - 481, 485, 486, 480, 487, 485, 488, 489, 490, 491, - 493, 483, 492, 494, 484, 491, 497, 486, 496, 487, - 498, 611, 494, 611, 497, 488, 490, 492, 489, 499, - 493, 500, 496, 501, 499, 500, 500, 502, 503, 503, - 498, 506, 502, 504, 505, 505, 501, 507, 504, 508, - 512, 509, 510, 515, 508, 506, 509, 510, 511, 512, - 514, 517, 511, 513, 512, 507, 512, 513, 512, 516, - - 518, 515, 519, 520, 521, 514, 522, 522, 518, 524, - 517, 523, 523, 516, 524, 525, 525, 526, 527, 528, - 519, 529, 531, 521, 528, 530, 527, 533, 520, 531, - 534, 530, 533, 535, 536, 534, 537, 526, 535, 529, - 538, 538, 539, 536, 540, 541, 542, 542, 543, 544, - 548, 545, 547, 549, 550, 537, 547, 547, 551, 550, - 553, 552, 539, 541, 540, 552, 554, 555, 543, 545, - 556, 549, 559, 561, 544, 556, 548, 557, 551, 553, - 554, 562, 558, 560, 557, 569, 555, 558, 561, 563, - 559, 564, 560, 565, 563, 572, 564, 575, 565, 566, - - 566, 568, 562, 570, 569, 573, 568, 570, 570, 571, - 571, 573, 574, 576, 572, 577, 575, 574, 578, 579, - 580, 581, 582, 582, 583, 584, 585, 586, 583, 587, - 587, 589, 576, 579, 577, 585, 581, 578, 584, 588, - 590, 580, 597, 591, 588, 590, 598, 586, 591, 594, - 594, 589, 596, 599, 600, 596, 602, 597, 599, 601, - 601, 603, 603, 604, 605, 606, 609, 608, 605, 600, - 610, 598, 612, 613, 604, 614, 602, 612, 613, 618, - 621, 615, 622, 617, 606, 608, 609, 615, 617, 619, - 610, 623, 619, 620, 620, 614, 623, 627, 621, 628, - - 624, 629, 622, 626, 618, 624, 625, 625, 626, 630, - 633, 631, 632, 634, 635, 627, 636, 632, 638, 628, - 637, 629, 641, 630, 631, 641, 643, 642, 644, 637, - 633, 636, 637, 634, 638, 635, 642, 644, 645, 646, - 644, 647, 647, 648, 646, 643, 649, 645, 650, 652, - 651, 653, 653, 654, 655, 657, 658, 662, 663, 649, - 657, 658, 659, 648, 651, 662, 650, 652, 659, 654, - 660, 664, 655, 660, 666, 665, 663, 668, 669, 660, - 670, 671, 669, 673, 672, 670, 671, 674, 676, 675, - 664, 665, 666, 672, 675, 677, 678, 668, 673, 674, - - 676, 680, 678, 679, 679, 681, 681, 682, 683, 691, - 680, 684, 682, 677, 685, 685, 686, 686, 687, 687, - 688, 690, 693, 688, 696, 692, 690, 691, 697, 683, - 692, 684, 694, 694, 695, 698, 696, 699, 696, 695, - 700, 701, 703, 696, 702, 702, 705, 693, 697, 704, - 706, 707, 709, 705, 710, 698, 714, 699, 704, 706, - 712, 700, 703, 708, 708, 712, 713, 701, 715, 716, - 710, 713, 717, 718, 716, 715, 714, 707, 709, 719, - 720, 717, 721, 722, 723, 725, 724, 732, 721, 728, - 725, 726, 722, 718, 719, 726, 726, 727, 729, 720, - - 724, 728, 727, 729, 730, 723, 731, 734, 733, 735, - 731, 737, 732, 733, 736, 736, 730, 737, 738, 739, - 742, 735, 740, 738, 745, 739, 744, 744, 746, 734, - 750, 740, 742, 751, 753, 750, 753, 746, 744, 752, - 752, 756, 745, 754, 754, 757, 757, 758, 759, 766, - 751, 760, 761, 763, 762, 769, 765, 764, 765, 112, - 759, 756, 764, 760, 761, 767, 775, 766, 758, 762, - 768, 768, 770, 763, 767, 772, 771, 770, 771, 773, - 772, 769, 774, 776, 773, 777, 775, 778, 776, 779, - 777, 780, 780, 781, 786, 782, 787, 784, 785, 783, - - 774, 791, 795, 779, 782, 781, 778, 782, 783, 784, - 788, 785, 787, 790, 786, 792, 788, 793, 793, 790, - 794, 795, 74, 796, 792, 797, 791, 796, 800, 794, - 797, 798, 798, 801, 801, 802, 802, 800, 803, 804, - 806, 805, 807, 808, 804, 805, 809, 807, 810, 811, - 803, 812, 823, 814, 815, 806, 814, 816, 817, 817, - 72, 811, 808, 818, 818, 809, 820, 815, 829, 810, - 816, 823, 812, 819, 819, 821, 821, 822, 822, 820, - 824, 824, 825, 825, 827, 828, 828, 829, 831, 827, - 830, 830, 832, 833, 834, 834, 833, 836, 832, 835, - - 835, 837, 837, 839, 839, 840, 831, 841, 841, 842, - 834, 844, 843, 845, 846, 847, 836, 843, 845, 848, - 849, 842, 850, 852, 847, 849, 850, 853, 848, 846, - 855, 840, 844, 854, 854, 855, 853, 857, 859, 860, - 865, 859, 866, 852, 860, 861, 861, 862, 900, 857, - 863, 862, 867, 863, 864, 864, 868, 867, 869, 870, - 865, 868, 866, 871, 869, 872, 900, 873, 871, 873, - 876, 876, 888, 872, 889, 870, 879, 879, 882, 882, - 884, 884, 886, 887, 887, 890, 904, 886, 888, 895, - 890, 892, 892, 896, 895, 896, 889, 897, 898, 898, - - 899, 901, 897, 902, 903, 906, 904, 905, 905, 907, - 908, 909, 899, 901, 906, 902, 903, 910, 911, 912, - 912, 914, 910, 911, 909, 915, 915, 917, 918, 919, - 908, 921, 920, 922, 922, 907, 917, 923, 924, 914, - 925, 926, 923, 930, 932, 932, 918, 919, 920, 931, - 921, 933, 931, 924, 934, 936, 936, 937, 941, 925, - 942, 926, 947, 930, 938, 938, 933, 940, 940, 942, - 943, 945, 934, 944, 950, 943, 937, 947, 944, 945, - 941, 948, 949, 951, 951, 955, 948, 949, 954, 950, - 952, 952, 956, 954, 957, 956, 958, 955, 959, 959, - - 960, 962, 963, 957, 965, 958, 964, 964, 966, 960, - 967, 970, 974, 965, 969, 967, 966, 972, 972, 976, - 962, 963, 976, 969, 970, 975, 975, 977, 977, 978, - 978, 979, 974, 980, 981, 982, 982, 983, 986, 981, - 987, 983, 988, 989, 991, 990, 992, 980, 987, 979, - 990, 993, 996, 994, 999, 996, 997, 986, 999, 989, - 993, 988, 998, 998, 991, 1003, 1000, 1002, 1004, 1008, - 1008, 1009, 992, 994, 997, 1000, 1002, 1003, 1007, 1011, - 1009, 1012, 1013, 1007, 1011, 1014, 1014, 1015, 1016, 1018, - 1017, 1019, 1020, 1004, 1018, 1021, 1021, 1013, 1017, 1022, - - 1012, 1024, 1024, 1015, 1022, 1025, 1026, 1016, 1027, 1027, - 1029, 1020, 1028, 1028, 1030, 1031, 1054, 1019, 1032, 1032, - 1033, 1033, 1034, 1037, 1037, 1025, 1030, 1036, 1026, 1029, - 1038, 1038, 1036, 1039, 1039, 1031, 1054, 1040, 1041, 1041, - 1049, 1034, 1040, 1043, 1043, 1045, 1045, 1046, 1049, 1050, - 1050, 1051, 1046, 1055, 1059, 1059, 1051, 1055, 1061, 1063, - 1063, 1064, 1061, 1066, 1067, 1067, 1068, 1068, 1070, 1070, - 1072, 1073, 1073, 1077, 1078, 1080, 1064, 1077, 1079, 1079, - 1082, 1066, 1072, 1083, 1080, 1084, 1085, 1085, 70, 67, - 61, 56, 51, 50, 1078, 1082, 45, 1083, 40, 14, - - 13, 0, 0, 0, 1084, 1088, 1088, 1088, 1088, 1088, - 1088, 1089, 1089, 1089, 1089, 1089, 1089, 1090, 1090, 1090, - 1090, 1090, 1090, 1091, 1091, 1091, 1091, 1091, 1091, 1092, - 1092, 1092, 1092, 1092, 1092, 1094, 1094, 1094, 1094, 1094, - 1094, 1095, 1095, 0, 0, 1095, 1095, 1096, 1096, 0, - 1096, 0, 1096, 1097, 0, 0, 0, 0, 1097, 1098, - 1098, 0, 0, 1098, 1098, 1099, 0, 0, 0, 0, - 1099, 1100, 1100, 1100, 1100, 1100, 1100, 1101, 1101, 1101, - 1101, 1101, 1101, 1087, 1087, 1087, 1087, 1087, 1087, 1087, - 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, - - 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, - 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, - 1087, 1087, 1087 + 224, 231, 216, 227, 227, 232, 227, 233, 234, 232, + 229, 228, 230, 121, 235, 231, 237, 236, 238, 239, + 237, 247, 234, 235, 239, 233, 236, 238, 240, 245, + 241, 242, 242, 243, 240, 241, 235, 244, 243, 246, + 251, 245, 247, 252, 246, 253, 244, 248, 248, 250, + 250, 252, 254, 256, 253, 257, 261, 258, 259, 262, + 260, 251, 258, 268, 254, 260, 259, 263, 263, 257, + 264, 265, 266, 256, 261, 263, 265, 271, 262, 267, + + 267, 265, 270, 263, 269, 269, 272, 273, 268, 271, + 264, 274, 266, 263, 275, 276, 274, 270, 277, 280, + 278, 279, 283, 275, 278, 272, 279, 281, 281, 273, + 282, 285, 280, 277, 276, 284, 288, 283, 284, 286, + 286, 288, 282, 741, 285, 287, 287, 289, 289, 290, + 290, 291, 292, 297, 293, 294, 291, 292, 293, 295, + 294, 296, 298, 295, 299, 741, 296, 298, 300, 301, + 301, 300, 302, 297, 305, 119, 300, 302, 299, 303, + 300, 304, 303, 306, 307, 304, 308, 305, 306, 307, + 309, 310, 308, 309, 310, 311, 312, 313, 314, 315, + + 311, 316, 321, 314, 315, 316, 316, 304, 317, 318, + 323, 313, 319, 317, 312, 319, 320, 324, 318, 322, + 320, 320, 321, 322, 325, 323, 326, 327, 327, 328, + 330, 326, 329, 328, 331, 324, 332, 329, 333, 325, + 337, 118, 334, 335, 338, 333, 330, 334, 335, 332, + 336, 338, 339, 331, 340, 336, 342, 341, 337, 342, + 345, 339, 341, 343, 343, 345, 346, 347, 340, 351, + 348, 354, 355, 356, 358, 347, 355, 359, 356, 358, + 354, 364, 360, 362, 346, 348, 351, 357, 361, 361, + 362, 357, 363, 363, 357, 359, 364, 365, 365, 357, + + 366, 367, 368, 366, 370, 357, 357, 360, 369, 369, + 368, 371, 372, 372, 373, 375, 371, 373, 374, 370, + 376, 367, 377, 375, 374, 378, 379, 382, 376, 381, + 378, 380, 380, 379, 381, 384, 385, 391, 384, 389, + 377, 386, 386, 392, 387, 390, 382, 387, 389, 390, + 385, 393, 392, 394, 395, 387, 391, 396, 398, 394, + 397, 399, 396, 401, 397, 393, 400, 404, 395, 402, + 402, 400, 403, 399, 405, 403, 406, 398, 407, 408, + 408, 406, 409, 409, 401, 404, 410, 405, 411, 413, + 414, 418, 415, 417, 416, 420, 418, 116, 407, 421, + + 424, 410, 419, 419, 426, 414, 415, 417, 424, 420, + 419, 421, 411, 412, 413, 416, 412, 425, 412, 422, + 422, 423, 412, 426, 412, 429, 423, 431, 419, 412, + 429, 425, 427, 427, 430, 432, 433, 430, 434, 435, + 436, 433, 437, 440, 435, 438, 431, 434, 432, 441, + 438, 114, 442, 444, 441, 451, 437, 442, 440, 443, + 436, 450, 444, 446, 443, 445, 445, 453, 446, 448, + 448, 449, 453, 448, 449, 451, 450, 452, 454, 455, + 452, 456, 455, 454, 457, 458, 459, 460, 465, 462, + 461, 459, 460, 461, 466, 466, 463, 464, 458, 456, + + 462, 463, 464, 465, 457, 467, 468, 469, 470, 471, + 472, 469, 473, 476, 477, 482, 478, 479, 471, 477, + 468, 478, 480, 481, 467, 484, 470, 476, 481, 472, + 482, 479, 483, 483, 486, 485, 480, 473, 487, 486, + 488, 489, 493, 484, 485, 489, 490, 491, 492, 495, + 494, 496, 497, 502, 112, 495, 498, 487, 505, 488, + 500, 490, 491, 493, 74, 498, 496, 492, 494, 501, + 503, 505, 497, 502, 500, 503, 504, 501, 506, 510, + 504, 504, 508, 506, 507, 507, 511, 508, 509, 509, + 512, 513, 514, 510, 515, 512, 513, 514, 515, 516, + + 520, 517, 519, 518, 511, 517, 521, 524, 516, 523, + 525, 522, 72, 516, 520, 516, 530, 516, 518, 522, + 519, 526, 526, 527, 527, 521, 528, 523, 533, 525, + 531, 528, 524, 529, 529, 532, 530, 534, 531, 537, + 532, 535, 538, 534, 537, 539, 533, 538, 535, 540, + 539, 541, 542, 543, 543, 544, 545, 70, 540, 546, + 547, 547, 548, 542, 549, 550, 553, 552, 554, 555, + 541, 552, 552, 556, 555, 544, 545, 546, 558, 560, + 557, 559, 548, 550, 557, 561, 554, 562, 564, 549, + 561, 563, 553, 556, 562, 559, 563, 558, 560, 565, + + 566, 567, 568, 67, 569, 570, 564, 568, 565, 569, + 570, 571, 571, 573, 574, 566, 575, 577, 573, 578, + 575, 575, 567, 576, 576, 578, 579, 580, 581, 582, + 583, 579, 585, 574, 590, 586, 577, 584, 587, 587, + 588, 589, 591, 590, 588, 594, 580, 581, 582, 583, + 586, 584, 593, 585, 589, 592, 592, 593, 595, 596, + 599, 599, 591, 595, 596, 594, 601, 602, 603, 601, + 604, 605, 606, 606, 607, 604, 608, 608, 609, 610, + 611, 615, 602, 610, 614, 612, 605, 616, 620, 609, + 612, 618, 624, 603, 607, 617, 618, 617, 619, 611, + + 621, 615, 614, 619, 623, 627, 621, 616, 620, 623, + 625, 626, 626, 625, 628, 629, 630, 624, 631, 631, + 629, 630, 632, 627, 633, 634, 635, 632, 637, 636, + 638, 639, 640, 641, 628, 638, 61, 647, 642, 644, + 647, 637, 633, 636, 649, 634, 635, 643, 648, 650, + 654, 639, 640, 642, 641, 644, 643, 648, 650, 643, + 651, 650, 652, 649, 653, 653, 655, 652, 656, 651, + 654, 657, 658, 659, 659, 660, 661, 663, 664, 655, + 668, 665, 663, 664, 669, 657, 656, 665, 668, 666, + 658, 660, 666, 670, 661, 671, 672, 674, 666, 675, + + 676, 677, 669, 675, 678, 676, 677, 679, 680, 681, + 682, 671, 670, 678, 672, 682, 683, 674, 684, 685, + 687, 681, 690, 680, 691, 685, 686, 686, 683, 687, + 679, 688, 688, 689, 692, 692, 684, 698, 689, 693, + 693, 694, 694, 690, 691, 695, 697, 699, 695, 700, + 703, 697, 699, 701, 701, 698, 702, 704, 705, 706, + 707, 702, 703, 708, 703, 709, 709, 710, 712, 703, + 714, 711, 716, 713, 700, 712, 717, 704, 705, 706, + 711, 707, 713, 715, 715, 719, 720, 710, 721, 708, + 719, 720, 717, 722, 723, 724, 714, 725, 716, 723, + + 722, 726, 727, 728, 724, 729, 730, 732, 721, 728, + 731, 735, 732, 734, 729, 733, 726, 725, 734, 733, + 733, 727, 737, 735, 731, 736, 739, 730, 738, 743, + 736, 740, 738, 742, 737, 753, 740, 745, 742, 744, + 744, 743, 746, 745, 747, 748, 750, 746, 752, 752, + 747, 739, 754, 753, 748, 759, 764, 758, 750, 766, + 752, 754, 758, 760, 760, 761, 767, 761, 762, 762, + 765, 765, 759, 768, 769, 770, 764, 771, 767, 772, + 766, 773, 774, 773, 772, 768, 769, 775, 776, 776, + 770, 777, 779, 778, 779, 782, 775, 771, 778, 780, + + 774, 781, 783, 784, 780, 785, 781, 786, 784, 787, + 785, 788, 788, 782, 794, 789, 790, 777, 792, 793, + 791, 795, 783, 787, 799, 790, 786, 789, 790, 791, + 792, 800, 793, 796, 794, 798, 802, 795, 803, 796, + 800, 798, 801, 801, 804, 802, 805, 806, 804, 799, + 809, 805, 807, 807, 810, 810, 812, 803, 813, 809, + 806, 811, 811, 813, 815, 814, 816, 817, 812, 814, + 818, 816, 819, 820, 821, 823, 859, 824, 823, 815, + 859, 825, 826, 826, 829, 820, 817, 827, 827, 818, + 824, 828, 828, 819, 825, 821, 832, 829, 830, 830, + + 831, 831, 833, 833, 834, 834, 836, 837, 837, 838, + 841, 836, 839, 839, 840, 832, 841, 842, 843, 843, + 842, 844, 844, 845, 846, 846, 848, 848, 838, 849, + 850, 850, 840, 851, 843, 852, 853, 855, 854, 856, + 852, 857, 845, 854, 858, 851, 861, 862, 856, 858, + 857, 56, 855, 863, 863, 849, 862, 853, 864, 865, + 865, 867, 869, 864, 870, 869, 861, 875, 865, 870, + 871, 871, 872, 867, 873, 876, 872, 873, 874, 874, + 877, 878, 879, 880, 881, 877, 878, 875, 879, 881, + 882, 883, 899, 883, 898, 876, 886, 886, 882, 880, + + 889, 889, 892, 892, 894, 894, 896, 897, 897, 910, + 898, 896, 900, 905, 899, 902, 902, 900, 905, 906, + 907, 906, 908, 908, 909, 907, 911, 910, 912, 913, + 914, 915, 915, 916, 917, 918, 909, 920, 911, 919, + 912, 913, 916, 921, 922, 926, 923, 924, 924, 922, + 914, 923, 919, 927, 927, 918, 929, 921, 930, 931, + 917, 920, 932, 926, 933, 929, 934, 934, 935, 936, + 937, 938, 942, 935, 944, 944, 930, 931, 932, 943, + 945, 946, 943, 933, 936, 948, 948, 949, 953, 937, + 1042, 938, 942, 950, 950, 945, 952, 952, 954, 946, + + 955, 957, 959, 956, 962, 955, 949, 954, 956, 957, + 953, 960, 1042, 961, 963, 963, 960, 959, 961, 962, + 964, 964, 965, 965, 966, 966, 968, 969, 971, 970, + 976, 968, 970, 972, 973, 973, 974, 971, 977, 969, + 978, 978, 972, 979, 988, 974, 980, 983, 981, 976, + 984, 51, 979, 981, 980, 993, 983, 977, 986, 986, + 989, 989, 990, 984, 988, 990, 991, 991, 992, 992, + 994, 995, 1002, 993, 996, 996, 995, 997, 1003, 1004, + 1005, 997, 1006, 1007, 994, 1008, 1003, 1006, 1009, 1010, + 1012, 1002, 1013, 1012, 1014, 1014, 1005, 1009, 1004, 1016, + + 1015, 1019, 1020, 1007, 1015, 1018, 1028, 1023, 1016, 1010, + 1013, 1008, 1023, 1019, 1018, 1024, 1024, 1025, 1027, 1029, + 1030, 1030, 1031, 1027, 1032, 1028, 1025, 1020, 1033, 1035, + 1034, 1036, 1037, 1037, 1029, 1034, 1033, 1038, 1031, 1040, + 1040, 1041, 1038, 1032, 1043, 1043, 1044, 1044, 1045, 1047, + 1036, 1046, 1048, 1048, 1050, 1035, 1049, 1049, 1071, 1052, + 1065, 1041, 1071, 1046, 1052, 1053, 1053, 1045, 1065, 1047, + 1054, 1054, 1056, 1050, 1055, 1055, 1070, 1056, 1057, 1057, + 1059, 1059, 1061, 1061, 1062, 1066, 1066, 1067, 1080, 1062, + 1075, 1075, 1067, 1077, 1079, 1079, 1070, 1077, 1082, 1083, + + 1083, 1084, 1084, 1080, 1086, 1086, 1088, 1089, 1089, 1093, + 1094, 1095, 1095, 1093, 1096, 1099, 1082, 1098, 1088, 1100, + 1101, 1101, 50, 1096, 45, 40, 14, 13, 0, 1099, + 1094, 0, 1098, 0, 0, 0, 0, 0, 1100, 1104, + 1104, 1104, 1104, 1104, 1104, 1105, 1105, 1105, 1105, 1105, + 1105, 1106, 1106, 1106, 1106, 1106, 1106, 1107, 1107, 1107, + 1107, 1107, 1107, 1108, 1108, 1108, 1108, 1108, 1108, 1110, + 1110, 1110, 1110, 1110, 1110, 1111, 1111, 0, 0, 1111, + 1111, 1112, 1112, 0, 1112, 0, 1112, 1113, 0, 0, + 0, 0, 1113, 1114, 1114, 0, 0, 1114, 1114, 1115, + + 0, 0, 0, 0, 1115, 1116, 1116, 1116, 1116, 1116, + 1116, 1117, 1117, 1117, 1117, 1117, 1117, 1103, 1103, 1103, + 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, + 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, + 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, + 1103, 1103, 1103, 1103, 1103, 1103, 1103 } ; static yy_state_type yy_last_accepting_state; @@ -1405,7 +1416,7 @@ static void config_end_include(void) #define YY_NO_INPUT 1 #endif -#line 1407 "" +#line 1418 "" #define INITIAL 0 #define quotedstring 1 @@ -1592,7 +1603,7 @@ YY_DECL #line 120 "util/configlexer.lex" -#line 1594 "" +#line 1605 "" if ( !(yy_init) ) { @@ -1651,13 +1662,13 @@ yy_match: while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state ) { yy_current_state = (int) yy_def[yy_current_state]; - if ( yy_current_state >= 1088 ) + if ( yy_current_state >= 1104 ) yy_c = yy_meta[(unsigned int) yy_c]; } yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c]; ++yy_cp; } - while ( yy_base[yy_current_state] != 2184 ); + while ( yy_base[yy_current_state] != 2218 ); yy_find_action: yy_act = yy_accept[yy_current_state]; @@ -2039,169 +2050,179 @@ YY_RULE_SETUP case 71: YY_RULE_SETUP #line 193 "util/configlexer.lex" -{ YDVAR(1, VAR_BOGUS_TTL) } +{ YDVAR(1, VAR_VAL_SIG_SKEW_MIN) } YY_BREAK case 72: YY_RULE_SETUP #line 194 "util/configlexer.lex" -{ YDVAR(1, VAR_VAL_CLEAN_ADDITIONAL) } +{ YDVAR(1, VAR_VAL_SIG_SKEW_MAX) } YY_BREAK case 73: YY_RULE_SETUP #line 195 "util/configlexer.lex" -{ YDVAR(1, VAR_VAL_PERMISSIVE_MODE) } +{ YDVAR(1, VAR_BOGUS_TTL) } YY_BREAK case 74: YY_RULE_SETUP #line 196 "util/configlexer.lex" -{ YDVAR(1, VAR_KEY_CACHE_SIZE) } +{ YDVAR(1, VAR_VAL_CLEAN_ADDITIONAL) } YY_BREAK case 75: YY_RULE_SETUP #line 197 "util/configlexer.lex" -{ YDVAR(1, VAR_KEY_CACHE_SLABS) } +{ YDVAR(1, VAR_VAL_PERMISSIVE_MODE) } YY_BREAK case 76: YY_RULE_SETUP #line 198 "util/configlexer.lex" -{ YDVAR(1, VAR_NEG_CACHE_SIZE) } +{ YDVAR(1, VAR_KEY_CACHE_SIZE) } YY_BREAK case 77: YY_RULE_SETUP #line 199 "util/configlexer.lex" -{ - YDVAR(1, VAR_VAL_NSEC3_KEYSIZE_ITERATIONS) } +{ YDVAR(1, VAR_KEY_CACHE_SLABS) } YY_BREAK case 78: YY_RULE_SETUP -#line 201 "util/configlexer.lex" -{ YDVAR(1, VAR_USE_SYSLOG) } +#line 200 "util/configlexer.lex" +{ YDVAR(1, VAR_NEG_CACHE_SIZE) } YY_BREAK case 79: YY_RULE_SETUP -#line 202 "util/configlexer.lex" -{ YDVAR(1, VAR_LOG_TIME_ASCII) } +#line 201 "util/configlexer.lex" +{ + YDVAR(1, VAR_VAL_NSEC3_KEYSIZE_ITERATIONS) } YY_BREAK case 80: YY_RULE_SETUP #line 203 "util/configlexer.lex" -{ YDVAR(2, VAR_LOCAL_ZONE) } +{ YDVAR(1, VAR_USE_SYSLOG) } YY_BREAK case 81: YY_RULE_SETUP #line 204 "util/configlexer.lex" -{ YDVAR(1, VAR_LOCAL_DATA) } +{ YDVAR(1, VAR_LOG_TIME_ASCII) } YY_BREAK case 82: YY_RULE_SETUP #line 205 "util/configlexer.lex" -{ YDVAR(1, VAR_LOCAL_DATA_PTR) } +{ YDVAR(2, VAR_LOCAL_ZONE) } YY_BREAK case 83: YY_RULE_SETUP #line 206 "util/configlexer.lex" -{ YDVAR(1, VAR_STATISTICS_INTERVAL) } +{ YDVAR(1, VAR_LOCAL_DATA) } YY_BREAK case 84: YY_RULE_SETUP #line 207 "util/configlexer.lex" -{ YDVAR(1, VAR_STATISTICS_CUMULATIVE) } +{ YDVAR(1, VAR_LOCAL_DATA_PTR) } YY_BREAK case 85: YY_RULE_SETUP #line 208 "util/configlexer.lex" -{ YDVAR(1, VAR_EXTENDED_STATISTICS) } +{ YDVAR(1, VAR_STATISTICS_INTERVAL) } YY_BREAK case 86: YY_RULE_SETUP #line 209 "util/configlexer.lex" -{ YDVAR(0, VAR_REMOTE_CONTROL) } +{ YDVAR(1, VAR_STATISTICS_CUMULATIVE) } YY_BREAK case 87: YY_RULE_SETUP #line 210 "util/configlexer.lex" -{ YDVAR(1, VAR_CONTROL_ENABLE) } +{ YDVAR(1, VAR_EXTENDED_STATISTICS) } YY_BREAK case 88: YY_RULE_SETUP #line 211 "util/configlexer.lex" -{ YDVAR(1, VAR_CONTROL_INTERFACE) } +{ YDVAR(0, VAR_REMOTE_CONTROL) } YY_BREAK case 89: YY_RULE_SETUP #line 212 "util/configlexer.lex" -{ YDVAR(1, VAR_CONTROL_PORT) } +{ YDVAR(1, VAR_CONTROL_ENABLE) } YY_BREAK case 90: YY_RULE_SETUP #line 213 "util/configlexer.lex" -{ YDVAR(1, VAR_SERVER_KEY_FILE) } +{ YDVAR(1, VAR_CONTROL_INTERFACE) } YY_BREAK case 91: YY_RULE_SETUP #line 214 "util/configlexer.lex" -{ YDVAR(1, VAR_SERVER_CERT_FILE) } +{ YDVAR(1, VAR_CONTROL_PORT) } YY_BREAK case 92: YY_RULE_SETUP #line 215 "util/configlexer.lex" -{ YDVAR(1, VAR_CONTROL_KEY_FILE) } +{ YDVAR(1, VAR_SERVER_KEY_FILE) } YY_BREAK case 93: YY_RULE_SETUP #line 216 "util/configlexer.lex" -{ YDVAR(1, VAR_CONTROL_CERT_FILE) } +{ YDVAR(1, VAR_SERVER_CERT_FILE) } YY_BREAK case 94: YY_RULE_SETUP #line 217 "util/configlexer.lex" -{ YDVAR(1, VAR_PYTHON_SCRIPT) } +{ YDVAR(1, VAR_CONTROL_KEY_FILE) } YY_BREAK case 95: YY_RULE_SETUP #line 218 "util/configlexer.lex" -{ YDVAR(0, VAR_PYTHON) } +{ YDVAR(1, VAR_CONTROL_CERT_FILE) } YY_BREAK case 96: YY_RULE_SETUP #line 219 "util/configlexer.lex" -{ YDVAR(1, VAR_DOMAIN_INSECURE) } +{ YDVAR(1, VAR_PYTHON_SCRIPT) } YY_BREAK case 97: -/* rule 97 can match eol */ YY_RULE_SETUP #line 220 "util/configlexer.lex" +{ YDVAR(0, VAR_PYTHON) } + YY_BREAK +case 98: +YY_RULE_SETUP +#line 221 "util/configlexer.lex" +{ YDVAR(1, VAR_DOMAIN_INSECURE) } + YY_BREAK +case 99: +/* rule 99 can match eol */ +YY_RULE_SETUP +#line 222 "util/configlexer.lex" { LEXOUT(("NL\n")); cfg_parser->line++; } YY_BREAK /* Quoted strings. Strip leading and ending quotes */ -case 98: +case 100: YY_RULE_SETUP -#line 223 "util/configlexer.lex" +#line 225 "util/configlexer.lex" { BEGIN(quotedstring); LEXOUT(("QS ")); } YY_BREAK case YY_STATE_EOF(quotedstring): -#line 224 "util/configlexer.lex" +#line 226 "util/configlexer.lex" { yyerror("EOF inside quoted string"); if(--num_args == 0) { BEGIN(INITIAL); } else { BEGIN(val); } } YY_BREAK -case 99: +case 101: YY_RULE_SETUP -#line 229 "util/configlexer.lex" +#line 231 "util/configlexer.lex" { LEXOUT(("STR(%s) ", yytext)); yymore(); } YY_BREAK -case 100: -/* rule 100 can match eol */ +case 102: +/* rule 102 can match eol */ YY_RULE_SETUP -#line 230 "util/configlexer.lex" +#line 232 "util/configlexer.lex" { yyerror("newline inside quoted string, no end \""); cfg_parser->line++; BEGIN(INITIAL); } YY_BREAK -case 101: +case 103: YY_RULE_SETUP -#line 232 "util/configlexer.lex" +#line 234 "util/configlexer.lex" { LEXOUT(("QE ")); if(--num_args == 0) { BEGIN(INITIAL); } @@ -2214,34 +2235,34 @@ YY_RULE_SETUP } YY_BREAK /* Single Quoted strings. Strip leading and ending quotes */ -case 102: +case 104: YY_RULE_SETUP -#line 244 "util/configlexer.lex" +#line 246 "util/configlexer.lex" { BEGIN(singlequotedstr); LEXOUT(("SQS ")); } YY_BREAK case YY_STATE_EOF(singlequotedstr): -#line 245 "util/configlexer.lex" +#line 247 "util/configlexer.lex" { yyerror("EOF inside quoted string"); if(--num_args == 0) { BEGIN(INITIAL); } else { BEGIN(val); } } YY_BREAK -case 103: +case 105: YY_RULE_SETUP -#line 250 "util/configlexer.lex" +#line 252 "util/configlexer.lex" { LEXOUT(("STR(%s) ", yytext)); yymore(); } YY_BREAK -case 104: -/* rule 104 can match eol */ +case 106: +/* rule 106 can match eol */ YY_RULE_SETUP -#line 251 "util/configlexer.lex" +#line 253 "util/configlexer.lex" { yyerror("newline inside quoted string, no end '"); cfg_parser->line++; BEGIN(INITIAL); } YY_BREAK -case 105: +case 107: YY_RULE_SETUP -#line 253 "util/configlexer.lex" +#line 255 "util/configlexer.lex" { LEXOUT(("SQE ")); if(--num_args == 0) { BEGIN(INITIAL); } @@ -2254,38 +2275,38 @@ YY_RULE_SETUP } YY_BREAK /* include: directive */ -case 106: +case 108: YY_RULE_SETUP -#line 265 "util/configlexer.lex" +#line 267 "util/configlexer.lex" { LEXOUT(("v(%s) ", yytext)); inc_prev = YYSTATE; BEGIN(include); } YY_BREAK case YY_STATE_EOF(include): -#line 267 "util/configlexer.lex" +#line 269 "util/configlexer.lex" { yyerror("EOF inside include directive"); BEGIN(inc_prev); } YY_BREAK -case 107: +case 109: YY_RULE_SETUP -#line 271 "util/configlexer.lex" +#line 273 "util/configlexer.lex" { LEXOUT(("ISP ")); /* ignore */ } YY_BREAK -case 108: -/* rule 108 can match eol */ +case 110: +/* rule 110 can match eol */ YY_RULE_SETUP -#line 272 "util/configlexer.lex" +#line 274 "util/configlexer.lex" { LEXOUT(("NL\n")); cfg_parser->line++;} YY_BREAK -case 109: +case 111: YY_RULE_SETUP -#line 273 "util/configlexer.lex" +#line 275 "util/configlexer.lex" { LEXOUT(("IQS ")); BEGIN(include_quoted); } YY_BREAK -case 110: +case 112: YY_RULE_SETUP -#line 274 "util/configlexer.lex" +#line 276 "util/configlexer.lex" { LEXOUT(("Iunquotedstr(%s) ", yytext)); config_start_include(yytext); @@ -2293,27 +2314,27 @@ YY_RULE_SETUP } YY_BREAK case YY_STATE_EOF(include_quoted): -#line 279 "util/configlexer.lex" +#line 281 "util/configlexer.lex" { yyerror("EOF inside quoted string"); BEGIN(inc_prev); } YY_BREAK -case 111: +case 113: YY_RULE_SETUP -#line 283 "util/configlexer.lex" +#line 285 "util/configlexer.lex" { LEXOUT(("ISTR(%s) ", yytext)); yymore(); } YY_BREAK -case 112: -/* rule 112 can match eol */ +case 114: +/* rule 114 can match eol */ YY_RULE_SETUP -#line 284 "util/configlexer.lex" +#line 286 "util/configlexer.lex" { yyerror("newline before \" in include name"); cfg_parser->line++; BEGIN(inc_prev); } YY_BREAK -case 113: +case 115: YY_RULE_SETUP -#line 286 "util/configlexer.lex" +#line 288 "util/configlexer.lex" { LEXOUT(("IQE ")); yytext[yyleng - 1] = '\0'; @@ -2323,7 +2344,7 @@ YY_RULE_SETUP YY_BREAK case YY_STATE_EOF(INITIAL): case YY_STATE_EOF(val): -#line 292 "util/configlexer.lex" +#line 294 "util/configlexer.lex" { yy_set_bol(1); /* Set beginning of line, so "^" rules match. */ if (config_include_stack_ptr == 0) { @@ -2334,33 +2355,33 @@ case YY_STATE_EOF(val): } } YY_BREAK -case 114: +case 116: YY_RULE_SETUP -#line 302 "util/configlexer.lex" +#line 304 "util/configlexer.lex" { LEXOUT(("unquotedstr(%s) ", yytext)); if(--num_args == 0) { BEGIN(INITIAL); } yylval.str = strdup(yytext); return STRING; } YY_BREAK -case 115: +case 117: YY_RULE_SETUP -#line 306 "util/configlexer.lex" +#line 308 "util/configlexer.lex" { ub_c_error_msg("unknown keyword '%s'", yytext); } YY_BREAK -case 116: +case 118: YY_RULE_SETUP -#line 310 "util/configlexer.lex" +#line 312 "util/configlexer.lex" { ub_c_error_msg("stray '%s'", yytext); } YY_BREAK -case 117: +case 119: YY_RULE_SETUP -#line 314 "util/configlexer.lex" +#line 316 "util/configlexer.lex" ECHO; YY_BREAK -#line 2362 "" +#line 2383 "" case YY_END_OF_BUFFER: { @@ -2650,7 +2671,7 @@ static int yy_get_next_buffer (void) while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state ) { yy_current_state = (int) yy_def[yy_current_state]; - if ( yy_current_state >= 1088 ) + if ( yy_current_state >= 1104 ) yy_c = yy_meta[(unsigned int) yy_c]; } yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c]; @@ -2678,11 +2699,11 @@ static int yy_get_next_buffer (void) while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state ) { yy_current_state = (int) yy_def[yy_current_state]; - if ( yy_current_state >= 1088 ) + if ( yy_current_state >= 1104 ) yy_c = yy_meta[(unsigned int) yy_c]; } yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c]; - yy_is_jam = (yy_current_state == 1087); + yy_is_jam = (yy_current_state == 1103); return yy_is_jam ? 0 : yy_current_state; } @@ -3319,7 +3340,7 @@ void yyfree (void * ptr ) #define YYTABLES_NAME "yytables" -#line 314 "util/configlexer.lex" +#line 316 "util/configlexer.lex" diff --git a/util/configlexer.lex b/util/configlexer.lex index 1d47b77e3..c49ecf871 100644 --- a/util/configlexer.lex +++ b/util/configlexer.lex @@ -190,6 +190,8 @@ trust-anchor-file{COLON} { YDVAR(1, VAR_TRUST_ANCHOR_FILE) } trusted-keys-file{COLON} { YDVAR(1, VAR_TRUSTED_KEYS_FILE) } trust-anchor{COLON} { YDVAR(1, VAR_TRUST_ANCHOR) } val-override-date{COLON} { YDVAR(1, VAR_VAL_OVERRIDE_DATE) } +val-sig-skew-min{COLON} { YDVAR(1, VAR_VAL_SIG_SKEW_MIN) } +val-sig-skew-max{COLON} { YDVAR(1, VAR_VAL_SIG_SKEW_MAX) } val-bogus-ttl{COLON} { YDVAR(1, VAR_BOGUS_TTL) } val-clean-additional{COLON} { YDVAR(1, VAR_VAL_CLEAN_ADDITIONAL) } val-permissive-mode{COLON} { YDVAR(1, VAR_VAL_PERMISSIVE_MODE) } diff --git a/util/configparser.c b/util/configparser.c index b63ece883..0fd1db1a1 100644 --- a/util/configparser.c +++ b/util/configparser.c @@ -167,7 +167,9 @@ VAR_LOG_TIME_ASCII = 356, VAR_DOMAIN_INSECURE = 357, VAR_PYTHON = 358, - VAR_PYTHON_SCRIPT = 359 + VAR_PYTHON_SCRIPT = 359, + VAR_VAL_SIG_SKEW_MIN = 360, + VAR_VAL_SIG_SKEW_MAX = 361 }; #endif /* Tokens. */ @@ -273,6 +275,8 @@ #define VAR_DOMAIN_INSECURE 357 #define VAR_PYTHON 358 #define VAR_PYTHON_SCRIPT 359 +#define VAR_VAL_SIG_SKEW_MIN 360 +#define VAR_VAL_SIG_SKEW_MAX 361 @@ -331,7 +335,7 @@ typedef union YYSTYPE char* str; } /* Line 187 of yacc.c. */ -#line 335 "util/configparser.c" +#line 339 "util/configparser.c" YYSTYPE; # define yystype YYSTYPE /* obsolescent; will be withdrawn */ # define YYSTYPE_IS_DECLARED 1 @@ -344,7 +348,7 @@ typedef union YYSTYPE /* Line 216 of yacc.c. */ -#line 348 "util/configparser.c" +#line 352 "util/configparser.c" #ifdef short # undef short @@ -559,20 +563,20 @@ union yyalloc /* YYFINAL -- State number of the termination state. */ #define YYFINAL 2 /* YYLAST -- Last index in YYTABLE. */ -#define YYLAST 194 +#define YYLAST 198 /* YYNTOKENS -- Number of terminals. */ -#define YYNTOKENS 105 +#define YYNTOKENS 107 /* YYNNTS -- Number of nonterminals. */ -#define YYNNTS 108 +#define YYNNTS 110 /* YYNRULES -- Number of rules. */ -#define YYNRULES 203 +#define YYNRULES 207 /* YYNRULES -- Number of states. */ -#define YYNSTATES 296 +#define YYNSTATES 302 /* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX. */ #define YYUNDEFTOK 2 -#define YYMAXUTOK 359 +#define YYMAXUTOK 361 #define YYTRANSLATE(YYX) \ ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK) @@ -615,7 +619,8 @@ static const yytype_uint8 yytranslate[] = 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, - 95, 96, 97, 98, 99, 100, 101, 102, 103, 104 + 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, + 105, 106 }; #if YYDEBUG @@ -631,101 +636,102 @@ static const yytype_uint16 yyprhs[] = 104, 106, 108, 110, 112, 114, 116, 118, 120, 122, 124, 126, 128, 130, 132, 134, 136, 138, 140, 142, 144, 146, 148, 150, 152, 154, 156, 158, 160, 162, - 164, 166, 168, 170, 172, 174, 176, 178, 180, 183, - 184, 186, 188, 190, 192, 194, 197, 198, 200, 202, - 204, 207, 210, 213, 216, 219, 222, 225, 228, 231, - 234, 237, 240, 243, 246, 249, 252, 255, 258, 261, - 264, 267, 270, 273, 276, 279, 282, 285, 288, 291, - 294, 297, 300, 303, 306, 309, 312, 315, 318, 321, - 324, 327, 330, 333, 336, 339, 342, 345, 348, 351, - 354, 357, 360, 363, 366, 369, 372, 375, 378, 381, - 384, 387, 391, 394, 397, 400, 403, 406, 409, 412, - 415, 418, 421, 425, 428, 431, 434, 437, 440, 443, - 446, 449, 452, 454, 457, 458, 460, 462, 464, 466, - 468, 470, 472, 475, 478, 481, 484, 487, 490, 493, - 495, 498, 499, 501 + 164, 166, 168, 170, 172, 174, 176, 178, 180, 182, + 184, 187, 188, 190, 192, 194, 196, 198, 201, 202, + 204, 206, 208, 211, 214, 217, 220, 223, 226, 229, + 232, 235, 238, 241, 244, 247, 250, 253, 256, 259, + 262, 265, 268, 271, 274, 277, 280, 283, 286, 289, + 292, 295, 298, 301, 304, 307, 310, 313, 316, 319, + 322, 325, 328, 331, 334, 337, 340, 343, 346, 349, + 352, 355, 358, 361, 364, 367, 370, 373, 376, 379, + 382, 385, 388, 391, 395, 398, 401, 404, 407, 410, + 413, 416, 419, 422, 425, 428, 431, 435, 438, 441, + 444, 447, 450, 453, 456, 459, 462, 464, 467, 468, + 470, 472, 474, 476, 478, 480, 482, 485, 488, 491, + 494, 497, 500, 503, 505, 508, 509, 511 }; /* YYRHS -- A `-1'-separated list of the rules' RHS. */ static const yytype_int16 yyrhs[] = { - 106, 0, -1, -1, 106, 107, -1, 108, 109, -1, - 111, 112, -1, 114, 115, -1, 209, 210, -1, 199, - 200, -1, 11, -1, 109, 110, -1, -1, 117, -1, - 118, -1, 122, -1, 125, -1, 131, -1, 132, -1, - 133, -1, 134, -1, 123, -1, 138, -1, 139, -1, - 140, -1, 141, -1, 142, -1, 155, -1, 156, -1, - 157, -1, 159, -1, 160, -1, 128, -1, 161, -1, - 162, -1, 165, -1, 163, -1, 164, -1, 166, -1, - 167, -1, 168, -1, 176, -1, 150, -1, 151, -1, - 152, -1, 153, -1, 169, -1, 179, -1, 146, -1, - 148, -1, 180, -1, 182, -1, 183, -1, 184, -1, - 129, -1, 154, -1, 186, -1, 187, -1, 147, -1, - 185, -1, 136, -1, 124, -1, 143, -1, 177, -1, - 181, -1, 170, -1, 178, -1, 189, -1, 190, -1, - 130, -1, 119, -1, 135, -1, 172, -1, 120, -1, - 126, -1, 127, -1, 144, -1, 145, -1, 188, -1, - 171, -1, 173, -1, 174, -1, 121, -1, 191, -1, - 158, -1, 175, -1, 137, -1, 149, -1, 38, -1, - 112, 113, -1, -1, 192, -1, 193, -1, 194, -1, - 195, -1, 44, -1, 115, 116, -1, -1, 196, -1, - 197, -1, 198, -1, 13, 10, -1, 12, 10, -1, - 76, 10, -1, 79, 10, -1, 96, 10, -1, 14, - 10, -1, 16, 10, -1, 67, 10, -1, 15, 10, - -1, 80, 10, -1, 81, 10, -1, 31, 10, -1, - 60, 10, -1, 75, 10, -1, 17, 10, -1, 18, - 10, -1, 19, 10, -1, 20, 10, -1, 77, 10, - -1, 66, 10, -1, 101, 10, -1, 21, 10, -1, - 22, 10, -1, 23, 10, -1, 24, 10, -1, 25, - 10, -1, 68, 10, -1, 82, 10, -1, 83, 10, - -1, 54, 10, -1, 64, 10, -1, 55, 10, -1, - 102, 10, -1, 48, 10, -1, 49, 10, -1, 50, - 10, -1, 51, 10, -1, 61, 10, -1, 26, 10, - -1, 27, 10, -1, 28, 10, -1, 98, 10, -1, - 29, 10, -1, 30, 10, -1, 32, 10, -1, 33, - 10, -1, 35, 10, -1, 36, 10, -1, 34, 10, - -1, 41, 10, -1, 42, 10, -1, 43, 10, -1, - 52, 10, -1, 71, 10, -1, 85, 10, -1, 78, - 10, -1, 86, 10, -1, 87, 10, -1, 100, 10, - -1, 47, 10, -1, 69, 10, -1, 72, 10, 10, - -1, 53, 10, -1, 56, 10, -1, 70, 10, -1, + 108, 0, -1, -1, 108, 109, -1, 110, 111, -1, + 113, 114, -1, 116, 117, -1, 213, 214, -1, 203, + 204, -1, 11, -1, 111, 112, -1, -1, 119, -1, + 120, -1, 124, -1, 127, -1, 133, -1, 134, -1, + 135, -1, 136, -1, 125, -1, 140, -1, 141, -1, + 142, -1, 143, -1, 144, -1, 157, -1, 158, -1, + 159, -1, 161, -1, 162, -1, 130, -1, 163, -1, + 164, -1, 167, -1, 165, -1, 166, -1, 168, -1, + 169, -1, 170, -1, 178, -1, 152, -1, 153, -1, + 154, -1, 155, -1, 171, -1, 181, -1, 148, -1, + 150, -1, 182, -1, 186, -1, 187, -1, 188, -1, + 131, -1, 156, -1, 190, -1, 191, -1, 149, -1, + 189, -1, 138, -1, 126, -1, 145, -1, 179, -1, + 185, -1, 172, -1, 180, -1, 193, -1, 194, -1, + 132, -1, 121, -1, 137, -1, 174, -1, 122, -1, + 128, -1, 129, -1, 146, -1, 147, -1, 192, -1, + 173, -1, 175, -1, 176, -1, 123, -1, 195, -1, + 160, -1, 177, -1, 139, -1, 151, -1, 183, -1, + 184, -1, 38, -1, 114, 115, -1, -1, 196, -1, + 197, -1, 198, -1, 199, -1, 44, -1, 117, 118, + -1, -1, 200, -1, 201, -1, 202, -1, 13, 10, + -1, 12, 10, -1, 76, 10, -1, 79, 10, -1, + 96, 10, -1, 14, 10, -1, 16, 10, -1, 67, + 10, -1, 15, 10, -1, 80, 10, -1, 81, 10, + -1, 31, 10, -1, 60, 10, -1, 75, 10, -1, + 17, 10, -1, 18, 10, -1, 19, 10, -1, 20, + 10, -1, 77, 10, -1, 66, 10, -1, 101, 10, + -1, 21, 10, -1, 22, 10, -1, 23, 10, -1, + 24, 10, -1, 25, 10, -1, 68, 10, -1, 82, + 10, -1, 83, 10, -1, 54, 10, -1, 64, 10, + -1, 55, 10, -1, 102, 10, -1, 48, 10, -1, + 49, 10, -1, 50, 10, -1, 51, 10, -1, 61, + 10, -1, 26, 10, -1, 27, 10, -1, 28, 10, + -1, 98, 10, -1, 29, 10, -1, 30, 10, -1, + 32, 10, -1, 33, 10, -1, 35, 10, -1, 36, + 10, -1, 34, 10, -1, 41, 10, -1, 42, 10, + -1, 43, 10, -1, 52, 10, -1, 71, 10, -1, + 85, 10, -1, 78, 10, -1, 86, 10, -1, 87, + 10, -1, 100, 10, -1, 47, 10, -1, 69, 10, + -1, 72, 10, 10, -1, 53, 10, -1, 56, 10, + -1, 105, 10, -1, 106, 10, -1, 70, 10, -1, 57, 10, -1, 58, 10, -1, 59, 10, -1, 65, 10, -1, 62, 10, -1, 63, 10, -1, 84, 10, -1, 73, 10, 10, -1, 74, 10, -1, 97, 10, -1, 37, 10, -1, 39, 10, -1, 40, 10, -1, 99, 10, -1, 37, 10, -1, 45, 10, -1, 46, - 10, -1, 88, -1, 200, 201, -1, -1, 202, -1, - 204, -1, 203, -1, 205, -1, 206, -1, 207, -1, - 208, -1, 89, 10, -1, 91, 10, -1, 90, 10, + 10, -1, 88, -1, 204, 205, -1, -1, 206, -1, + 208, -1, 207, -1, 209, -1, 210, -1, 211, -1, + 212, -1, 89, 10, -1, 91, 10, -1, 90, 10, -1, 92, 10, -1, 93, 10, -1, 94, 10, -1, - 95, 10, -1, 103, -1, 210, 211, -1, -1, 212, + 95, 10, -1, 103, -1, 214, 215, -1, -1, 216, -1, 104, 10, -1 }; /* YYRLINE[YYN] -- source line where rule number YYN was defined. */ static const yytype_uint16 yyrline[] = { - 0, 103, 103, 103, 104, 104, 105, 105, 106, 110, - 115, 116, 117, 117, 117, 118, 118, 119, 119, 119, - 120, 120, 120, 121, 121, 121, 122, 122, 123, 123, - 124, 124, 125, 125, 126, 126, 127, 127, 128, 128, - 129, 129, 130, 130, 130, 131, 131, 131, 132, 132, - 132, 133, 133, 134, 134, 135, 135, 136, 136, 137, - 137, 137, 138, 138, 139, 139, 140, 140, 140, 141, - 141, 142, 142, 143, 143, 144, 144, 144, 145, 145, - 146, 146, 147, 147, 148, 148, 149, 151, 163, 164, - 165, 165, 165, 165, 167, 179, 180, 181, 181, 181, - 183, 192, 201, 212, 221, 230, 239, 252, 267, 276, - 285, 294, 303, 312, 321, 330, 339, 348, 357, 366, - 380, 389, 396, 403, 410, 418, 425, 432, 439, 446, - 454, 462, 469, 476, 485, 494, 501, 508, 519, 527, - 540, 549, 558, 566, 579, 588, 597, 606, 615, 628, - 635, 645, 655, 665, 675, 685, 695, 702, 709, 718, - 725, 735, 749, 756, 774, 783, 792, 802, 812, 819, - 827, 840, 848, 868, 875, 890, 897, 904, 911, 921, - 928, 935, 942, 947, 948, 949, 949, 949, 950, 950, - 950, 951, 953, 963, 972, 979, 986, 993, 1000, 1007, - 1012, 1013, 1014, 1016 + 0, 104, 104, 104, 105, 105, 106, 106, 107, 111, + 116, 117, 118, 118, 118, 119, 119, 120, 120, 120, + 121, 121, 121, 122, 122, 122, 123, 123, 124, 124, + 125, 125, 126, 126, 127, 127, 128, 128, 129, 129, + 130, 130, 131, 131, 131, 132, 132, 132, 133, 133, + 133, 134, 134, 135, 135, 136, 136, 137, 137, 138, + 138, 138, 139, 139, 140, 140, 141, 141, 141, 142, + 142, 143, 143, 144, 144, 145, 145, 145, 146, 146, + 147, 147, 148, 148, 149, 149, 150, 150, 151, 153, + 165, 166, 167, 167, 167, 167, 169, 181, 182, 183, + 183, 183, 185, 194, 203, 214, 223, 232, 241, 254, + 269, 278, 287, 296, 305, 314, 323, 332, 341, 350, + 359, 368, 382, 391, 398, 405, 412, 420, 427, 434, + 441, 448, 456, 464, 471, 478, 487, 496, 503, 510, + 521, 529, 542, 551, 560, 568, 581, 590, 599, 608, + 617, 630, 637, 647, 657, 667, 677, 687, 697, 704, + 711, 720, 727, 737, 751, 758, 776, 789, 802, 811, + 820, 830, 840, 847, 855, 868, 876, 896, 903, 918, + 925, 932, 939, 949, 956, 963, 970, 975, 976, 977, + 977, 977, 978, 978, 978, 979, 981, 991, 1000, 1007, + 1014, 1021, 1028, 1035, 1040, 1041, 1042, 1044 }; #endif @@ -766,7 +772,8 @@ static const char *const yytname[] = "VAR_SERVER_CERT_FILE", "VAR_CONTROL_KEY_FILE", "VAR_CONTROL_CERT_FILE", "VAR_EXTENDED_STATISTICS", "VAR_LOCAL_DATA_PTR", "VAR_JOSTLE_TIMEOUT", "VAR_STUB_PRIME", "VAR_UNWANTED_REPLY_THRESHOLD", "VAR_LOG_TIME_ASCII", - "VAR_DOMAIN_INSECURE", "VAR_PYTHON", "VAR_PYTHON_SCRIPT", "$accept", + "VAR_DOMAIN_INSECURE", "VAR_PYTHON", "VAR_PYTHON_SCRIPT", + "VAR_VAL_SIG_SKEW_MIN", "VAR_VAL_SIG_SKEW_MAX", "$accept", "toplevelvars", "toplevelvar", "serverstart", "contents_server", "content_server", "stubstart", "contents_stub", "content_stub", "forwardstart", "contents_forward", "content_forward", @@ -796,17 +803,19 @@ static const char *const yytname[] = "server_private_address", "server_private_domain", "server_unwanted_reply_threshold", "server_do_not_query_address", "server_do_not_query_localhost", "server_access_control", - "server_module_conf", "server_val_override_date", "server_cache_max_ttl", - "server_bogus_ttl", "server_val_clean_additional", - "server_val_permissive_mode", "server_val_nsec3_keysize_iterations", - "server_key_cache_size", "server_key_cache_slabs", - "server_neg_cache_size", "server_local_zone", "server_local_data", - "server_local_data_ptr", "stub_name", "stub_host", "stub_addr", - "stub_prime", "forward_name", "forward_host", "forward_addr", "rcstart", - "contents_rc", "content_rc", "rc_control_enable", "rc_control_port", - "rc_control_interface", "rc_server_key_file", "rc_server_cert_file", - "rc_control_key_file", "rc_control_cert_file", "pythonstart", - "contents_py", "content_py", "py_script", 0 + "server_module_conf", "server_val_override_date", + "server_val_sig_skew_min", "server_val_sig_skew_max", + "server_cache_max_ttl", "server_bogus_ttl", + "server_val_clean_additional", "server_val_permissive_mode", + "server_val_nsec3_keysize_iterations", "server_key_cache_size", + "server_key_cache_slabs", "server_neg_cache_size", "server_local_zone", + "server_local_data", "server_local_data_ptr", "stub_name", "stub_host", + "stub_addr", "stub_prime", "forward_name", "forward_host", + "forward_addr", "rcstart", "contents_rc", "content_rc", + "rc_control_enable", "rc_control_port", "rc_control_interface", + "rc_server_key_file", "rc_server_cert_file", "rc_control_key_file", + "rc_control_cert_file", "pythonstart", "contents_py", "content_py", + "py_script", 0 }; #endif @@ -825,24 +834,24 @@ static const yytype_uint16 yytoknum[] = 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, - 355, 356, 357, 358, 359 + 355, 356, 357, 358, 359, 360, 361 }; # endif /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */ static const yytype_uint8 yyr1[] = { - 0, 105, 106, 106, 107, 107, 107, 107, 107, 108, - 109, 109, 110, 110, 110, 110, 110, 110, 110, 110, - 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, - 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, - 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, - 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, - 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, - 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, - 110, 110, 110, 110, 110, 110, 110, 111, 112, 112, - 113, 113, 113, 113, 114, 115, 115, 116, 116, 116, - 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, + 0, 107, 108, 108, 109, 109, 109, 109, 109, 110, + 111, 111, 112, 112, 112, 112, 112, 112, 112, 112, + 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, + 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, + 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, + 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, + 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, + 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, + 112, 112, 112, 112, 112, 112, 112, 112, 112, 113, + 114, 114, 115, 115, 115, 115, 116, 117, 117, 118, + 118, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, @@ -850,9 +859,9 @@ static const yytype_uint8 yyr1[] = 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, - 197, 198, 199, 200, 200, 201, 201, 201, 201, 201, - 201, 201, 202, 203, 204, 205, 206, 207, 208, 209, - 210, 210, 211, 212 + 197, 198, 199, 200, 201, 202, 203, 204, 204, 205, + 205, 205, 205, 205, 205, 205, 206, 207, 208, 209, + 210, 211, 212, 213, 214, 214, 215, 216 }; /* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN. */ @@ -866,19 +875,19 @@ static const yytype_uint8 yyr2[] = 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 2, 0, - 1, 1, 1, 1, 1, 2, 0, 1, 1, 1, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 2, 0, 1, 1, 1, 1, 1, 2, 0, 1, + 1, 1, 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, 3, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 3, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 1, 2, 0, 1, 1, 1, 1, 1, - 1, 1, 2, 2, 2, 2, 2, 2, 2, 1, - 2, 0, 1, 2 + 2, 2, 2, 3, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 3, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 1, 2, 0, 1, + 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, + 2, 2, 2, 1, 2, 0, 1, 2 }; /* YYDEFACT[STATE-NAME] -- Default rule to reduce with in state @@ -886,8 +895,8 @@ static const yytype_uint8 yyr2[] = means the default is an error. */ static const yytype_uint8 yydefact[] = { - 2, 0, 1, 9, 87, 94, 182, 199, 3, 11, - 89, 96, 184, 201, 4, 5, 6, 8, 7, 0, + 2, 0, 1, 9, 89, 96, 186, 203, 3, 11, + 91, 98, 188, 205, 4, 5, 6, 8, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -895,43 +904,44 @@ static const yytype_uint8 yydefact[] = 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 10, 12, 13, 69, 72, 81, - 14, 20, 60, 15, 73, 74, 31, 53, 68, 16, - 17, 18, 19, 70, 59, 85, 21, 22, 23, 24, - 25, 61, 75, 76, 47, 57, 48, 86, 41, 42, - 43, 44, 54, 26, 27, 28, 83, 29, 30, 32, - 33, 35, 36, 34, 37, 38, 39, 45, 64, 78, - 71, 79, 80, 84, 40, 62, 65, 46, 49, 63, - 50, 51, 52, 58, 55, 56, 77, 66, 67, 82, - 0, 0, 0, 0, 88, 90, 91, 92, 93, 0, - 0, 0, 95, 97, 98, 99, 0, 0, 0, 0, - 0, 0, 0, 183, 185, 187, 186, 188, 189, 190, - 191, 0, 200, 202, 101, 100, 105, 108, 106, 114, - 115, 116, 117, 121, 122, 123, 124, 125, 138, 139, - 140, 142, 143, 111, 144, 145, 148, 146, 147, 149, - 150, 151, 159, 133, 134, 135, 136, 152, 162, 129, - 131, 163, 165, 166, 167, 112, 137, 169, 170, 130, - 168, 119, 107, 126, 160, 164, 153, 0, 0, 173, - 113, 102, 118, 155, 103, 109, 110, 127, 128, 171, - 154, 156, 157, 104, 174, 141, 158, 120, 132, 175, - 176, 177, 178, 179, 180, 181, 192, 194, 193, 195, - 196, 197, 198, 203, 161, 172 + 0, 0, 0, 0, 0, 0, 10, 12, 13, 69, + 72, 81, 14, 20, 60, 15, 73, 74, 31, 53, + 68, 16, 17, 18, 19, 70, 59, 85, 21, 22, + 23, 24, 25, 61, 75, 76, 47, 57, 48, 86, + 41, 42, 43, 44, 54, 26, 27, 28, 83, 29, + 30, 32, 33, 35, 36, 34, 37, 38, 39, 45, + 64, 78, 71, 79, 80, 84, 40, 62, 65, 46, + 49, 87, 88, 63, 50, 51, 52, 58, 55, 56, + 77, 66, 67, 82, 0, 0, 0, 0, 90, 92, + 93, 94, 95, 0, 0, 0, 97, 99, 100, 101, + 0, 0, 0, 0, 0, 0, 0, 187, 189, 191, + 190, 192, 193, 194, 195, 0, 204, 206, 103, 102, + 107, 110, 108, 116, 117, 118, 119, 123, 124, 125, + 126, 127, 140, 141, 142, 144, 145, 113, 146, 147, + 150, 148, 149, 151, 152, 153, 161, 135, 136, 137, + 138, 154, 164, 131, 133, 165, 169, 170, 171, 114, + 139, 173, 174, 132, 172, 121, 109, 128, 162, 168, + 155, 0, 0, 177, 115, 104, 120, 157, 105, 111, + 112, 129, 130, 175, 156, 158, 159, 106, 178, 143, + 160, 122, 134, 166, 167, 179, 180, 181, 182, 183, + 184, 185, 196, 198, 197, 199, 200, 201, 202, 207, + 163, 176 }; /* YYDEFGOTO[NTERM-NUM]. */ static const yytype_int16 yydefgoto[] = { - -1, 1, 8, 9, 14, 94, 10, 15, 174, 11, - 16, 182, 95, 96, 97, 98, 99, 100, 101, 102, - 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, - 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, - 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, - 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, - 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, - 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, - 163, 164, 165, 166, 167, 168, 169, 175, 176, 177, - 178, 183, 184, 185, 12, 17, 193, 194, 195, 196, - 197, 198, 199, 200, 13, 18, 202, 203 + -1, 1, 8, 9, 14, 96, 10, 15, 178, 11, + 16, 186, 97, 98, 99, 100, 101, 102, 103, 104, + 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, + 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, + 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, + 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, + 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, + 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, + 165, 166, 167, 168, 169, 170, 171, 172, 173, 179, + 180, 181, 182, 187, 188, 189, 12, 17, 197, 198, + 199, 200, 201, 202, 203, 204, 13, 18, 206, 207 }; /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing @@ -948,7 +958,7 @@ static const yytype_int16 yypact[] = 50, 51, 52, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 79, 80, 81, - 82, 83, 84, 85, -103, -103, -103, -103, -103, -103, + 82, 83, 84, 85, 86, 87, -103, -103, -103, -103, -103, -103, -103, -103, -103, -103, -103, -103, -103, -103, -103, -103, -103, -103, -103, -103, -103, -103, -103, -103, -103, -103, -103, -103, -103, -103, -103, -103, -103, -103, @@ -956,19 +966,20 @@ static const yytype_int16 yypact[] = -103, -103, -103, -103, -103, -103, -103, -103, -103, -103, -103, -103, -103, -103, -103, -103, -103, -103, -103, -103, -103, -103, -103, -103, -103, -103, -103, -103, -103, -103, - 86, 87, 88, 89, -103, -103, -103, -103, -103, 90, - 91, 119, -103, -103, -103, -103, 120, 121, 122, 126, - 127, 128, 170, -103, -103, -103, -103, -103, -103, -103, - -103, 171, -103, -103, -103, -103, -103, -103, -103, -103, + -103, -103, -103, -103, 88, 89, 90, 91, -103, -103, + -103, -103, -103, 119, 120, 121, -103, -103, -103, -103, + 122, 126, 127, 128, 170, 171, 172, -103, -103, -103, + -103, -103, -103, -103, -103, 173, -103, -103, -103, -103, -103, -103, -103, -103, -103, -103, -103, -103, -103, -103, -103, -103, -103, -103, -103, -103, -103, -103, -103, -103, -103, -103, -103, -103, -103, -103, -103, -103, -103, -103, -103, -103, -103, -103, -103, -103, -103, -103, -103, -103, - -103, -103, -103, -103, -103, -103, -103, 172, 173, -103, -103, -103, -103, -103, -103, -103, -103, -103, -103, -103, + -103, 174, 175, -103, -103, -103, -103, -103, -103, -103, -103, -103, -103, -103, -103, -103, -103, -103, -103, -103, -103, -103, -103, -103, -103, -103, -103, -103, -103, -103, - -103, -103, -103, -103, -103, -103 + -103, -103, -103, -103, -103, -103, -103, -103, -103, -103, + -103, -103 }; /* YYPGOTO[NTERM-NUM]. */ @@ -984,7 +995,7 @@ static const yytype_int8 yypgoto[] = -103, -103, -103, -103, -103, -103, -103, -103, -103, -103, -103, -103, -103, -103, -103, -103, -103, -103, -103, -103, -103, -103, -103, -103, -103, -103, -103, -103, -103, -103, - -103, -103, -103, -103, -103, -103, -103, -103 + -103, -103, -103, -103, -103, -103, -103, -103, -103, -103 }; /* YYTABLE[YYPACT[STATE-NUM]]. What to do in state STATE-NUM. If @@ -994,26 +1005,26 @@ static const yytype_int8 yypgoto[] = #define YYTABLE_NINF -1 static const yytype_uint16 yytable[] = { - 2, 170, 201, 171, 172, 179, 204, 205, 206, 207, - 0, 3, 208, 180, 181, 186, 187, 188, 189, 190, - 191, 192, 209, 210, 211, 212, 213, 214, 215, 216, - 217, 218, 219, 220, 221, 222, 223, 224, 4, 225, - 226, 227, 228, 229, 5, 230, 231, 232, 233, 234, - 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, - 245, 246, 247, 173, 248, 249, 250, 251, 252, 253, - 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, - 264, 265, 266, 267, 268, 269, 270, 271, 6, 272, - 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, - 283, 284, 0, 7, 19, 20, 21, 22, 23, 24, + 2, 174, 205, 175, 176, 183, 208, 209, 210, 211, + 0, 3, 212, 184, 185, 190, 191, 192, 193, 194, + 195, 196, 213, 214, 215, 216, 217, 218, 219, 220, + 221, 222, 223, 224, 225, 226, 227, 228, 4, 229, + 230, 231, 232, 233, 5, 234, 235, 236, 237, 238, + 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, + 249, 250, 251, 177, 252, 253, 254, 255, 256, 257, + 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, + 268, 269, 270, 271, 272, 273, 274, 275, 6, 276, + 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, + 287, 288, 0, 7, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, - 35, 36, 37, 38, 39, 40, 41, 42, 43, 285, - 286, 287, 288, 44, 45, 46, 289, 290, 291, 47, + 35, 36, 37, 38, 39, 40, 41, 42, 43, 289, + 290, 291, 292, 44, 45, 46, 293, 294, 295, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, - 292, 293, 294, 295, 0, 0, 0, 0, 88, 89, - 90, 0, 91, 92, 93 + 296, 297, 298, 299, 300, 301, 0, 0, 88, 89, + 90, 0, 91, 92, 93, 0, 0, 94, 95 }; static const yytype_int8 yycheck[] = @@ -1036,16 +1047,16 @@ static const yytype_int8 yycheck[] = 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, - 10, 10, 10, 10, -1, -1, -1, -1, 96, 97, - 98, -1, 100, 101, 102 + 10, 10, 10, 10, 10, 10, -1, -1, 96, 97, + 98, -1, 100, 101, 102, -1, -1, 105, 106 }; /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing symbol of state STATE-NUM. */ static const yytype_uint8 yystos[] = { - 0, 106, 0, 11, 38, 44, 88, 103, 107, 108, - 111, 114, 199, 209, 109, 112, 115, 200, 210, 12, + 0, 108, 0, 11, 38, 44, 88, 103, 109, 110, + 113, 116, 203, 213, 111, 114, 117, 204, 214, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 41, 42, 43, 47, 48, 49, @@ -1053,7 +1064,7 @@ static const yytype_uint8 yystos[] = 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 96, 97, - 98, 100, 101, 102, 110, 117, 118, 119, 120, 121, + 98, 100, 101, 102, 105, 106, 112, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, @@ -1061,10 +1072,11 @@ static const yytype_uint8 yystos[] = 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, 190, 191, - 37, 39, 40, 99, 113, 192, 193, 194, 195, 37, - 45, 46, 116, 196, 197, 198, 89, 90, 91, 92, - 93, 94, 95, 201, 202, 203, 204, 205, 206, 207, - 208, 104, 211, 212, 10, 10, 10, 10, 10, 10, + 192, 193, 194, 195, 37, 39, 40, 99, 115, 196, + 197, 198, 199, 37, 45, 46, 118, 200, 201, 202, + 89, 90, 91, 92, 93, 94, 95, 205, 206, 207, + 208, 209, 210, 211, 212, 104, 215, 216, 10, 10, + 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, @@ -1073,7 +1085,7 @@ static const yytype_uint8 yystos[] = 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, - 10, 10, 10, 10, 10, 10 + 10, 10 }; #define yyerrok (yyerrstatus = 0) @@ -1888,14 +1900,14 @@ yyreduce: switch (yyn) { case 9: -#line 111 "util/configparser.y" +#line 112 "util/configparser.y" { OUTYY(("\nP(server:)\n")); } break; - case 87: -#line 152 "util/configparser.y" + case 89: +#line 154 "util/configparser.y" { struct config_stub* s; OUTYY(("\nP(stub_zone:)\n")); @@ -1908,8 +1920,8 @@ yyreduce: } break; - case 94: -#line 168 "util/configparser.y" + case 96: +#line 170 "util/configparser.y" { struct config_stub* s; OUTYY(("\nP(forward_zone:)\n")); @@ -1922,8 +1934,8 @@ yyreduce: } break; - case 100: -#line 184 "util/configparser.y" + case 102: +#line 186 "util/configparser.y" { OUTYY(("P(server_num_threads:%s)\n", (yyvsp[(2) - (2)].str))); if(atoi((yyvsp[(2) - (2)].str)) == 0 && strcmp((yyvsp[(2) - (2)].str), "0") != 0) @@ -1933,8 +1945,8 @@ yyreduce: } break; - case 101: -#line 193 "util/configparser.y" + case 103: +#line 195 "util/configparser.y" { OUTYY(("P(server_verbosity:%s)\n", (yyvsp[(2) - (2)].str))); if(atoi((yyvsp[(2) - (2)].str)) == 0 && strcmp((yyvsp[(2) - (2)].str), "0") != 0) @@ -1944,8 +1956,8 @@ yyreduce: } break; - case 102: -#line 202 "util/configparser.y" + case 104: +#line 204 "util/configparser.y" { OUTYY(("P(server_statistics_interval:%s)\n", (yyvsp[(2) - (2)].str))); if(strcmp((yyvsp[(2) - (2)].str), "") == 0 || strcmp((yyvsp[(2) - (2)].str), "0") == 0) @@ -1957,8 +1969,8 @@ yyreduce: } break; - case 103: -#line 213 "util/configparser.y" + case 105: +#line 215 "util/configparser.y" { OUTYY(("P(server_statistics_cumulative:%s)\n", (yyvsp[(2) - (2)].str))); if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0) @@ -1968,8 +1980,8 @@ yyreduce: } break; - case 104: -#line 222 "util/configparser.y" + case 106: +#line 224 "util/configparser.y" { OUTYY(("P(server_extended_statistics:%s)\n", (yyvsp[(2) - (2)].str))); if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0) @@ -1979,8 +1991,8 @@ yyreduce: } break; - case 105: -#line 231 "util/configparser.y" + case 107: +#line 233 "util/configparser.y" { OUTYY(("P(server_port:%s)\n", (yyvsp[(2) - (2)].str))); if(atoi((yyvsp[(2) - (2)].str)) == 0) @@ -1990,8 +2002,8 @@ yyreduce: } break; - case 106: -#line 240 "util/configparser.y" + case 108: +#line 242 "util/configparser.y" { OUTYY(("P(server_interface:%s)\n", (yyvsp[(2) - (2)].str))); if(cfg_parser->cfg->num_ifs == 0) @@ -2005,8 +2017,8 @@ yyreduce: } break; - case 107: -#line 253 "util/configparser.y" + case 109: +#line 255 "util/configparser.y" { OUTYY(("P(server_outgoing_interface:%s)\n", (yyvsp[(2) - (2)].str))); if(cfg_parser->cfg->num_out_ifs == 0) @@ -2022,8 +2034,8 @@ yyreduce: } break; - case 108: -#line 268 "util/configparser.y" + case 110: +#line 270 "util/configparser.y" { OUTYY(("P(server_outgoing_range:%s)\n", (yyvsp[(2) - (2)].str))); if(atoi((yyvsp[(2) - (2)].str)) == 0) @@ -2033,8 +2045,8 @@ yyreduce: } break; - case 109: -#line 277 "util/configparser.y" + case 111: +#line 279 "util/configparser.y" { OUTYY(("P(server_outgoing_port_permit:%s)\n", (yyvsp[(2) - (2)].str))); if(!cfg_mark_ports((yyvsp[(2) - (2)].str), 1, @@ -2044,8 +2056,8 @@ yyreduce: } break; - case 110: -#line 286 "util/configparser.y" + case 112: +#line 288 "util/configparser.y" { OUTYY(("P(server_outgoing_port_avoid:%s)\n", (yyvsp[(2) - (2)].str))); if(!cfg_mark_ports((yyvsp[(2) - (2)].str), 0, @@ -2055,8 +2067,8 @@ yyreduce: } break; - case 111: -#line 295 "util/configparser.y" + case 113: +#line 297 "util/configparser.y" { OUTYY(("P(server_outgoing_num_tcp:%s)\n", (yyvsp[(2) - (2)].str))); if(atoi((yyvsp[(2) - (2)].str)) == 0 && strcmp((yyvsp[(2) - (2)].str), "0") != 0) @@ -2066,8 +2078,8 @@ yyreduce: } break; - case 112: -#line 304 "util/configparser.y" + case 114: +#line 306 "util/configparser.y" { OUTYY(("P(server_incoming_num_tcp:%s)\n", (yyvsp[(2) - (2)].str))); if(atoi((yyvsp[(2) - (2)].str)) == 0 && strcmp((yyvsp[(2) - (2)].str), "0") != 0) @@ -2077,8 +2089,8 @@ yyreduce: } break; - case 113: -#line 313 "util/configparser.y" + case 115: +#line 315 "util/configparser.y" { OUTYY(("P(server_interface_automatic:%s)\n", (yyvsp[(2) - (2)].str))); if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0) @@ -2088,8 +2100,8 @@ yyreduce: } break; - case 114: -#line 322 "util/configparser.y" + case 116: +#line 324 "util/configparser.y" { OUTYY(("P(server_do_ip4:%s)\n", (yyvsp[(2) - (2)].str))); if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0) @@ -2099,8 +2111,8 @@ yyreduce: } break; - case 115: -#line 331 "util/configparser.y" + case 117: +#line 333 "util/configparser.y" { OUTYY(("P(server_do_ip6:%s)\n", (yyvsp[(2) - (2)].str))); if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0) @@ -2110,8 +2122,8 @@ yyreduce: } break; - case 116: -#line 340 "util/configparser.y" + case 118: +#line 342 "util/configparser.y" { OUTYY(("P(server_do_udp:%s)\n", (yyvsp[(2) - (2)].str))); if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0) @@ -2121,8 +2133,8 @@ yyreduce: } break; - case 117: -#line 349 "util/configparser.y" + case 119: +#line 351 "util/configparser.y" { OUTYY(("P(server_do_tcp:%s)\n", (yyvsp[(2) - (2)].str))); if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0) @@ -2132,8 +2144,8 @@ yyreduce: } break; - case 118: -#line 358 "util/configparser.y" + case 120: +#line 360 "util/configparser.y" { OUTYY(("P(server_do_daemonize:%s)\n", (yyvsp[(2) - (2)].str))); if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0) @@ -2143,8 +2155,8 @@ yyreduce: } break; - case 119: -#line 367 "util/configparser.y" + case 121: +#line 369 "util/configparser.y" { OUTYY(("P(server_use_syslog:%s)\n", (yyvsp[(2) - (2)].str))); if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0) @@ -2159,8 +2171,8 @@ yyreduce: } break; - case 120: -#line 381 "util/configparser.y" + case 122: +#line 383 "util/configparser.y" { OUTYY(("P(server_log_time_ascii:%s)\n", (yyvsp[(2) - (2)].str))); if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0) @@ -2170,8 +2182,8 @@ yyreduce: } break; - case 121: -#line 390 "util/configparser.y" + case 123: +#line 392 "util/configparser.y" { OUTYY(("P(server_chroot:%s)\n", (yyvsp[(2) - (2)].str))); free(cfg_parser->cfg->chrootdir); @@ -2179,8 +2191,8 @@ yyreduce: } break; - case 122: -#line 397 "util/configparser.y" + case 124: +#line 399 "util/configparser.y" { OUTYY(("P(server_username:%s)\n", (yyvsp[(2) - (2)].str))); free(cfg_parser->cfg->username); @@ -2188,8 +2200,8 @@ yyreduce: } break; - case 123: -#line 404 "util/configparser.y" + case 125: +#line 406 "util/configparser.y" { OUTYY(("P(server_directory:%s)\n", (yyvsp[(2) - (2)].str))); free(cfg_parser->cfg->directory); @@ -2197,8 +2209,8 @@ yyreduce: } break; - case 124: -#line 411 "util/configparser.y" + case 126: +#line 413 "util/configparser.y" { OUTYY(("P(server_logfile:%s)\n", (yyvsp[(2) - (2)].str))); free(cfg_parser->cfg->logfile); @@ -2207,8 +2219,8 @@ yyreduce: } break; - case 125: -#line 419 "util/configparser.y" + case 127: +#line 421 "util/configparser.y" { OUTYY(("P(server_pidfile:%s)\n", (yyvsp[(2) - (2)].str))); free(cfg_parser->cfg->pidfile); @@ -2216,8 +2228,8 @@ yyreduce: } break; - case 126: -#line 426 "util/configparser.y" + case 128: +#line 428 "util/configparser.y" { OUTYY(("P(server_root_hints:%s)\n", (yyvsp[(2) - (2)].str))); if(!cfg_strlist_insert(&cfg_parser->cfg->root_hints, (yyvsp[(2) - (2)].str))) @@ -2225,8 +2237,8 @@ yyreduce: } break; - case 127: -#line 433 "util/configparser.y" + case 129: +#line 435 "util/configparser.y" { OUTYY(("P(server_dlv_anchor_file:%s)\n", (yyvsp[(2) - (2)].str))); free(cfg_parser->cfg->dlv_anchor_file); @@ -2234,8 +2246,8 @@ yyreduce: } break; - case 128: -#line 440 "util/configparser.y" + case 130: +#line 442 "util/configparser.y" { OUTYY(("P(server_dlv_anchor:%s)\n", (yyvsp[(2) - (2)].str))); if(!cfg_strlist_insert(&cfg_parser->cfg->dlv_anchor_list, (yyvsp[(2) - (2)].str))) @@ -2243,8 +2255,8 @@ yyreduce: } break; - case 129: -#line 447 "util/configparser.y" + case 131: +#line 449 "util/configparser.y" { OUTYY(("P(server_trust_anchor_file:%s)\n", (yyvsp[(2) - (2)].str))); if(!cfg_strlist_insert(&cfg_parser->cfg-> @@ -2253,8 +2265,8 @@ yyreduce: } break; - case 130: -#line 455 "util/configparser.y" + case 132: +#line 457 "util/configparser.y" { OUTYY(("P(server_trusted_keys_file:%s)\n", (yyvsp[(2) - (2)].str))); if(!cfg_strlist_insert(&cfg_parser->cfg-> @@ -2263,8 +2275,8 @@ yyreduce: } break; - case 131: -#line 463 "util/configparser.y" + case 133: +#line 465 "util/configparser.y" { OUTYY(("P(server_trust_anchor:%s)\n", (yyvsp[(2) - (2)].str))); if(!cfg_strlist_insert(&cfg_parser->cfg->trust_anchor_list, (yyvsp[(2) - (2)].str))) @@ -2272,8 +2284,8 @@ yyreduce: } break; - case 132: -#line 470 "util/configparser.y" + case 134: +#line 472 "util/configparser.y" { OUTYY(("P(server_domain_insecure:%s)\n", (yyvsp[(2) - (2)].str))); if(!cfg_strlist_insert(&cfg_parser->cfg->domain_insecure, (yyvsp[(2) - (2)].str))) @@ -2281,8 +2293,8 @@ yyreduce: } break; - case 133: -#line 477 "util/configparser.y" + case 135: +#line 479 "util/configparser.y" { OUTYY(("P(server_hide_identity:%s)\n", (yyvsp[(2) - (2)].str))); if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0) @@ -2292,8 +2304,8 @@ yyreduce: } break; - case 134: -#line 486 "util/configparser.y" + case 136: +#line 488 "util/configparser.y" { OUTYY(("P(server_hide_version:%s)\n", (yyvsp[(2) - (2)].str))); if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0) @@ -2303,8 +2315,8 @@ yyreduce: } break; - case 135: -#line 495 "util/configparser.y" + case 137: +#line 497 "util/configparser.y" { OUTYY(("P(server_identity:%s)\n", (yyvsp[(2) - (2)].str))); free(cfg_parser->cfg->identity); @@ -2312,8 +2324,8 @@ yyreduce: } break; - case 136: -#line 502 "util/configparser.y" + case 138: +#line 504 "util/configparser.y" { OUTYY(("P(server_version:%s)\n", (yyvsp[(2) - (2)].str))); free(cfg_parser->cfg->version); @@ -2321,8 +2333,8 @@ yyreduce: } break; - case 137: -#line 509 "util/configparser.y" + case 139: +#line 511 "util/configparser.y" { OUTYY(("P(server_msg_buffer_size:%s)\n", (yyvsp[(2) - (2)].str))); if(atoi((yyvsp[(2) - (2)].str)) == 0) @@ -2334,8 +2346,8 @@ yyreduce: } break; - case 138: -#line 520 "util/configparser.y" + case 140: +#line 522 "util/configparser.y" { OUTYY(("P(server_msg_cache_size:%s)\n", (yyvsp[(2) - (2)].str))); if(!cfg_parse_memsize((yyvsp[(2) - (2)].str), &cfg_parser->cfg->msg_cache_size)) @@ -2344,8 +2356,8 @@ yyreduce: } break; - case 139: -#line 528 "util/configparser.y" + case 141: +#line 530 "util/configparser.y" { OUTYY(("P(server_msg_cache_slabs:%s)\n", (yyvsp[(2) - (2)].str))); if(atoi((yyvsp[(2) - (2)].str)) == 0) @@ -2359,8 +2371,8 @@ yyreduce: } break; - case 140: -#line 541 "util/configparser.y" + case 142: +#line 543 "util/configparser.y" { OUTYY(("P(server_num_queries_per_thread:%s)\n", (yyvsp[(2) - (2)].str))); if(atoi((yyvsp[(2) - (2)].str)) == 0) @@ -2370,8 +2382,8 @@ yyreduce: } break; - case 141: -#line 550 "util/configparser.y" + case 143: +#line 552 "util/configparser.y" { OUTYY(("P(server_jostle_timeout:%s)\n", (yyvsp[(2) - (2)].str))); if(atoi((yyvsp[(2) - (2)].str)) == 0 && strcmp((yyvsp[(2) - (2)].str), "0") != 0) @@ -2381,8 +2393,8 @@ yyreduce: } break; - case 142: -#line 559 "util/configparser.y" + case 144: +#line 561 "util/configparser.y" { OUTYY(("P(server_rrset_cache_size:%s)\n", (yyvsp[(2) - (2)].str))); if(!cfg_parse_memsize((yyvsp[(2) - (2)].str), &cfg_parser->cfg->rrset_cache_size)) @@ -2391,8 +2403,8 @@ yyreduce: } break; - case 143: -#line 567 "util/configparser.y" + case 145: +#line 569 "util/configparser.y" { OUTYY(("P(server_rrset_cache_slabs:%s)\n", (yyvsp[(2) - (2)].str))); if(atoi((yyvsp[(2) - (2)].str)) == 0) @@ -2406,8 +2418,8 @@ yyreduce: } break; - case 144: -#line 580 "util/configparser.y" + case 146: +#line 582 "util/configparser.y" { OUTYY(("P(server_infra_host_ttl:%s)\n", (yyvsp[(2) - (2)].str))); if(atoi((yyvsp[(2) - (2)].str)) == 0 && strcmp((yyvsp[(2) - (2)].str), "0") != 0) @@ -2417,8 +2429,8 @@ yyreduce: } break; - case 145: -#line 589 "util/configparser.y" + case 147: +#line 591 "util/configparser.y" { OUTYY(("P(server_infra_lame_ttl:%s)\n", (yyvsp[(2) - (2)].str))); if(atoi((yyvsp[(2) - (2)].str)) == 0 && strcmp((yyvsp[(2) - (2)].str), "0") != 0) @@ -2428,8 +2440,8 @@ yyreduce: } break; - case 146: -#line 598 "util/configparser.y" + case 148: +#line 600 "util/configparser.y" { OUTYY(("P(server_infra_cache_numhosts:%s)\n", (yyvsp[(2) - (2)].str))); if(atoi((yyvsp[(2) - (2)].str)) == 0) @@ -2439,8 +2451,8 @@ yyreduce: } break; - case 147: -#line 607 "util/configparser.y" + case 149: +#line 609 "util/configparser.y" { OUTYY(("P(server_infra_cache_lame_size:%s)\n", (yyvsp[(2) - (2)].str))); if(!cfg_parse_memsize((yyvsp[(2) - (2)].str), &cfg_parser->cfg-> @@ -2450,8 +2462,8 @@ yyreduce: } break; - case 148: -#line 616 "util/configparser.y" + case 150: +#line 618 "util/configparser.y" { OUTYY(("P(server_infra_cache_slabs:%s)\n", (yyvsp[(2) - (2)].str))); if(atoi((yyvsp[(2) - (2)].str)) == 0) @@ -2465,8 +2477,8 @@ yyreduce: } break; - case 149: -#line 629 "util/configparser.y" + case 151: +#line 631 "util/configparser.y" { OUTYY(("P(server_target_fetch_policy:%s)\n", (yyvsp[(2) - (2)].str))); free(cfg_parser->cfg->target_fetch_policy); @@ -2474,8 +2486,8 @@ yyreduce: } break; - case 150: -#line 636 "util/configparser.y" + case 152: +#line 638 "util/configparser.y" { OUTYY(("P(server_harden_short_bufsize:%s)\n", (yyvsp[(2) - (2)].str))); if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0) @@ -2486,8 +2498,8 @@ yyreduce: } break; - case 151: -#line 646 "util/configparser.y" + case 153: +#line 648 "util/configparser.y" { OUTYY(("P(server_harden_large_queries:%s)\n", (yyvsp[(2) - (2)].str))); if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0) @@ -2498,8 +2510,8 @@ yyreduce: } break; - case 152: -#line 656 "util/configparser.y" + case 154: +#line 658 "util/configparser.y" { OUTYY(("P(server_harden_glue:%s)\n", (yyvsp[(2) - (2)].str))); if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0) @@ -2510,8 +2522,8 @@ yyreduce: } break; - case 153: -#line 666 "util/configparser.y" + case 155: +#line 668 "util/configparser.y" { OUTYY(("P(server_harden_dnssec_stripped:%s)\n", (yyvsp[(2) - (2)].str))); if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0) @@ -2522,8 +2534,8 @@ yyreduce: } break; - case 154: -#line 676 "util/configparser.y" + case 156: +#line 678 "util/configparser.y" { OUTYY(("P(server_harden_referral_path:%s)\n", (yyvsp[(2) - (2)].str))); if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0) @@ -2534,8 +2546,8 @@ yyreduce: } break; - case 155: -#line 686 "util/configparser.y" + case 157: +#line 688 "util/configparser.y" { OUTYY(("P(server_use_caps_for_id:%s)\n", (yyvsp[(2) - (2)].str))); if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0) @@ -2546,8 +2558,8 @@ yyreduce: } break; - case 156: -#line 696 "util/configparser.y" + case 158: +#line 698 "util/configparser.y" { OUTYY(("P(server_private_address:%s)\n", (yyvsp[(2) - (2)].str))); if(!cfg_strlist_insert(&cfg_parser->cfg->private_address, (yyvsp[(2) - (2)].str))) @@ -2555,8 +2567,8 @@ yyreduce: } break; - case 157: -#line 703 "util/configparser.y" + case 159: +#line 705 "util/configparser.y" { OUTYY(("P(server_private_domain:%s)\n", (yyvsp[(2) - (2)].str))); if(!cfg_strlist_insert(&cfg_parser->cfg->private_domain, (yyvsp[(2) - (2)].str))) @@ -2564,8 +2576,8 @@ yyreduce: } break; - case 158: -#line 710 "util/configparser.y" + case 160: +#line 712 "util/configparser.y" { OUTYY(("P(server_unwanted_reply_threshold:%s)\n", (yyvsp[(2) - (2)].str))); if(atoi((yyvsp[(2) - (2)].str)) == 0 && strcmp((yyvsp[(2) - (2)].str), "0") != 0) @@ -2575,8 +2587,8 @@ yyreduce: } break; - case 159: -#line 719 "util/configparser.y" + case 161: +#line 721 "util/configparser.y" { OUTYY(("P(server_do_not_query_address:%s)\n", (yyvsp[(2) - (2)].str))); if(!cfg_strlist_insert(&cfg_parser->cfg->donotqueryaddrs, (yyvsp[(2) - (2)].str))) @@ -2584,8 +2596,8 @@ yyreduce: } break; - case 160: -#line 726 "util/configparser.y" + case 162: +#line 728 "util/configparser.y" { OUTYY(("P(server_do_not_query_localhost:%s)\n", (yyvsp[(2) - (2)].str))); if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0) @@ -2596,8 +2608,8 @@ yyreduce: } break; - case 161: -#line 736 "util/configparser.y" + case 163: +#line 738 "util/configparser.y" { OUTYY(("P(server_access_control:%s %s)\n", (yyvsp[(2) - (3)].str), (yyvsp[(3) - (3)].str))); if(strcmp((yyvsp[(3) - (3)].str), "deny")!=0 && strcmp((yyvsp[(3) - (3)].str), "refuse")!=0 && @@ -2612,8 +2624,8 @@ yyreduce: } break; - case 162: -#line 750 "util/configparser.y" + case 164: +#line 752 "util/configparser.y" { OUTYY(("P(server_module_conf:%s)\n", (yyvsp[(2) - (2)].str))); free(cfg_parser->cfg->module_conf); @@ -2621,8 +2633,8 @@ yyreduce: } break; - case 163: -#line 757 "util/configparser.y" + case 165: +#line 759 "util/configparser.y" { OUTYY(("P(server_val_override_date:%s)\n", (yyvsp[(2) - (2)].str))); if(strlen((yyvsp[(2) - (2)].str)) == 0 || strcmp((yyvsp[(2) - (2)].str), "0") == 0) { @@ -2641,8 +2653,38 @@ yyreduce: } break; - case 164: -#line 775 "util/configparser.y" + case 166: +#line 777 "util/configparser.y" + { + OUTYY(("P(server_val_sig_skew_min:%s)\n", (yyvsp[(2) - (2)].str))); + if(strlen((yyvsp[(2) - (2)].str)) == 0 || strcmp((yyvsp[(2) - (2)].str), "0") == 0) { + cfg_parser->cfg->val_sig_skew_min = 0; + } else { + cfg_parser->cfg->val_sig_skew_min = atoi((yyvsp[(2) - (2)].str)); + if(!cfg_parser->cfg->val_sig_skew_min) + yyerror("number expected"); + } + free((yyvsp[(2) - (2)].str)); + } + break; + + case 167: +#line 790 "util/configparser.y" + { + OUTYY(("P(server_val_sig_skew_max:%s)\n", (yyvsp[(2) - (2)].str))); + if(strlen((yyvsp[(2) - (2)].str)) == 0 || strcmp((yyvsp[(2) - (2)].str), "0") == 0) { + cfg_parser->cfg->val_sig_skew_max = 0; + } else { + cfg_parser->cfg->val_sig_skew_max = atoi((yyvsp[(2) - (2)].str)); + if(!cfg_parser->cfg->val_sig_skew_max) + yyerror("number expected"); + } + free((yyvsp[(2) - (2)].str)); + } + break; + + case 168: +#line 803 "util/configparser.y" { OUTYY(("P(server_cache_max_ttl:%s)\n", (yyvsp[(2) - (2)].str))); if(atoi((yyvsp[(2) - (2)].str)) == 0 && strcmp((yyvsp[(2) - (2)].str), "0") != 0) @@ -2652,8 +2694,8 @@ yyreduce: } break; - case 165: -#line 784 "util/configparser.y" + case 169: +#line 812 "util/configparser.y" { OUTYY(("P(server_bogus_ttl:%s)\n", (yyvsp[(2) - (2)].str))); if(atoi((yyvsp[(2) - (2)].str)) == 0 && strcmp((yyvsp[(2) - (2)].str), "0") != 0) @@ -2663,8 +2705,8 @@ yyreduce: } break; - case 166: -#line 793 "util/configparser.y" + case 170: +#line 821 "util/configparser.y" { OUTYY(("P(server_val_clean_additional:%s)\n", (yyvsp[(2) - (2)].str))); if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0) @@ -2675,8 +2717,8 @@ yyreduce: } break; - case 167: -#line 803 "util/configparser.y" + case 171: +#line 831 "util/configparser.y" { OUTYY(("P(server_val_permissive_mode:%s)\n", (yyvsp[(2) - (2)].str))); if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0) @@ -2687,8 +2729,8 @@ yyreduce: } break; - case 168: -#line 813 "util/configparser.y" + case 172: +#line 841 "util/configparser.y" { OUTYY(("P(server_val_nsec3_keysize_iterations:%s)\n", (yyvsp[(2) - (2)].str))); free(cfg_parser->cfg->val_nsec3_key_iterations); @@ -2696,8 +2738,8 @@ yyreduce: } break; - case 169: -#line 820 "util/configparser.y" + case 173: +#line 848 "util/configparser.y" { OUTYY(("P(server_key_cache_size:%s)\n", (yyvsp[(2) - (2)].str))); if(!cfg_parse_memsize((yyvsp[(2) - (2)].str), &cfg_parser->cfg->key_cache_size)) @@ -2706,8 +2748,8 @@ yyreduce: } break; - case 170: -#line 828 "util/configparser.y" + case 174: +#line 856 "util/configparser.y" { OUTYY(("P(server_key_cache_slabs:%s)\n", (yyvsp[(2) - (2)].str))); if(atoi((yyvsp[(2) - (2)].str)) == 0) @@ -2721,8 +2763,8 @@ yyreduce: } break; - case 171: -#line 841 "util/configparser.y" + case 175: +#line 869 "util/configparser.y" { OUTYY(("P(server_neg_cache_size:%s)\n", (yyvsp[(2) - (2)].str))); if(!cfg_parse_memsize((yyvsp[(2) - (2)].str), &cfg_parser->cfg->neg_cache_size)) @@ -2731,8 +2773,8 @@ yyreduce: } break; - case 172: -#line 849 "util/configparser.y" + case 176: +#line 877 "util/configparser.y" { OUTYY(("P(server_local_zone:%s %s)\n", (yyvsp[(2) - (3)].str), (yyvsp[(3) - (3)].str))); if(strcmp((yyvsp[(3) - (3)].str), "static")!=0 && strcmp((yyvsp[(3) - (3)].str), "deny")!=0 && @@ -2753,8 +2795,8 @@ yyreduce: } break; - case 173: -#line 869 "util/configparser.y" + case 177: +#line 897 "util/configparser.y" { OUTYY(("P(server_local_data:%s)\n", (yyvsp[(2) - (2)].str))); if(!cfg_strlist_insert(&cfg_parser->cfg->local_data, (yyvsp[(2) - (2)].str))) @@ -2762,8 +2804,8 @@ yyreduce: } break; - case 174: -#line 876 "util/configparser.y" + case 178: +#line 904 "util/configparser.y" { char* ptr; OUTYY(("P(server_local_data_ptr:%s)\n", (yyvsp[(2) - (2)].str))); @@ -2779,8 +2821,8 @@ yyreduce: } break; - case 175: -#line 891 "util/configparser.y" + case 179: +#line 919 "util/configparser.y" { OUTYY(("P(name:%s)\n", (yyvsp[(2) - (2)].str))); free(cfg_parser->cfg->stubs->name); @@ -2788,8 +2830,8 @@ yyreduce: } break; - case 176: -#line 898 "util/configparser.y" + case 180: +#line 926 "util/configparser.y" { OUTYY(("P(stub-host:%s)\n", (yyvsp[(2) - (2)].str))); if(!cfg_strlist_insert(&cfg_parser->cfg->stubs->hosts, (yyvsp[(2) - (2)].str))) @@ -2797,8 +2839,8 @@ yyreduce: } break; - case 177: -#line 905 "util/configparser.y" + case 181: +#line 933 "util/configparser.y" { OUTYY(("P(stub-addr:%s)\n", (yyvsp[(2) - (2)].str))); if(!cfg_strlist_insert(&cfg_parser->cfg->stubs->addrs, (yyvsp[(2) - (2)].str))) @@ -2806,8 +2848,8 @@ yyreduce: } break; - case 178: -#line 912 "util/configparser.y" + case 182: +#line 940 "util/configparser.y" { OUTYY(("P(stub-prime:%s)\n", (yyvsp[(2) - (2)].str))); if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0) @@ -2818,8 +2860,8 @@ yyreduce: } break; - case 179: -#line 922 "util/configparser.y" + case 183: +#line 950 "util/configparser.y" { OUTYY(("P(name:%s)\n", (yyvsp[(2) - (2)].str))); free(cfg_parser->cfg->forwards->name); @@ -2827,8 +2869,8 @@ yyreduce: } break; - case 180: -#line 929 "util/configparser.y" + case 184: +#line 957 "util/configparser.y" { OUTYY(("P(forward-host:%s)\n", (yyvsp[(2) - (2)].str))); if(!cfg_strlist_insert(&cfg_parser->cfg->forwards->hosts, (yyvsp[(2) - (2)].str))) @@ -2836,8 +2878,8 @@ yyreduce: } break; - case 181: -#line 936 "util/configparser.y" + case 185: +#line 964 "util/configparser.y" { OUTYY(("P(forward-addr:%s)\n", (yyvsp[(2) - (2)].str))); if(!cfg_strlist_insert(&cfg_parser->cfg->forwards->addrs, (yyvsp[(2) - (2)].str))) @@ -2845,15 +2887,15 @@ yyreduce: } break; - case 182: -#line 943 "util/configparser.y" + case 186: +#line 971 "util/configparser.y" { OUTYY(("\nP(remote-control:)\n")); } break; - case 192: -#line 954 "util/configparser.y" + case 196: +#line 982 "util/configparser.y" { OUTYY(("P(control_enable:%s)\n", (yyvsp[(2) - (2)].str))); if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0) @@ -2864,8 +2906,8 @@ yyreduce: } break; - case 193: -#line 964 "util/configparser.y" + case 197: +#line 992 "util/configparser.y" { OUTYY(("P(control_port:%s)\n", (yyvsp[(2) - (2)].str))); if(atoi((yyvsp[(2) - (2)].str)) == 0) @@ -2875,8 +2917,8 @@ yyreduce: } break; - case 194: -#line 973 "util/configparser.y" + case 198: +#line 1001 "util/configparser.y" { OUTYY(("P(control_interface:%s)\n", (yyvsp[(2) - (2)].str))); if(!cfg_strlist_insert(&cfg_parser->cfg->control_ifs, (yyvsp[(2) - (2)].str))) @@ -2884,8 +2926,8 @@ yyreduce: } break; - case 195: -#line 980 "util/configparser.y" + case 199: +#line 1008 "util/configparser.y" { OUTYY(("P(rc_server_key_file:%s)\n", (yyvsp[(2) - (2)].str))); free(cfg_parser->cfg->server_key_file); @@ -2893,8 +2935,8 @@ yyreduce: } break; - case 196: -#line 987 "util/configparser.y" + case 200: +#line 1015 "util/configparser.y" { OUTYY(("P(rc_server_cert_file:%s)\n", (yyvsp[(2) - (2)].str))); free(cfg_parser->cfg->server_cert_file); @@ -2902,8 +2944,8 @@ yyreduce: } break; - case 197: -#line 994 "util/configparser.y" + case 201: +#line 1022 "util/configparser.y" { OUTYY(("P(rc_control_key_file:%s)\n", (yyvsp[(2) - (2)].str))); free(cfg_parser->cfg->control_key_file); @@ -2911,8 +2953,8 @@ yyreduce: } break; - case 198: -#line 1001 "util/configparser.y" + case 202: +#line 1029 "util/configparser.y" { OUTYY(("P(rc_control_cert_file:%s)\n", (yyvsp[(2) - (2)].str))); free(cfg_parser->cfg->control_cert_file); @@ -2920,15 +2962,15 @@ yyreduce: } break; - case 199: -#line 1008 "util/configparser.y" + case 203: +#line 1036 "util/configparser.y" { OUTYY(("\nP(python:)\n")); } break; - case 203: -#line 1017 "util/configparser.y" + case 207: +#line 1045 "util/configparser.y" { OUTYY(("P(python-script:%s)\n", (yyvsp[(2) - (2)].str))); free(cfg_parser->cfg->python_script); @@ -2938,7 +2980,7 @@ yyreduce: /* Line 1267 of yacc.c. */ -#line 2942 "util/configparser.c" +#line 2984 "util/configparser.c" default: break; } YY_SYMBOL_PRINT ("-> $$ =", yyr1[yyn], &yyval, &yyloc); @@ -3152,7 +3194,7 @@ yyreturn: } -#line 1022 "util/configparser.y" +#line 1050 "util/configparser.y" /* parse helper routines could be here */ diff --git a/util/configparser.h b/util/configparser.h index 1112a9f34..1762c799d 100644 --- a/util/configparser.h +++ b/util/configparser.h @@ -140,7 +140,9 @@ VAR_LOG_TIME_ASCII = 356, VAR_DOMAIN_INSECURE = 357, VAR_PYTHON = 358, - VAR_PYTHON_SCRIPT = 359 + VAR_PYTHON_SCRIPT = 359, + VAR_VAL_SIG_SKEW_MIN = 360, + VAR_VAL_SIG_SKEW_MAX = 361 }; #endif /* Tokens. */ @@ -246,6 +248,8 @@ #define VAR_DOMAIN_INSECURE 357 #define VAR_PYTHON 358 #define VAR_PYTHON_SCRIPT 359 +#define VAR_VAL_SIG_SKEW_MIN 360 +#define VAR_VAL_SIG_SKEW_MAX 361 @@ -257,7 +261,7 @@ typedef union YYSTYPE char* str; } /* Line 1489 of yacc.c. */ -#line 261 "util/configparser.h" +#line 265 "util/configparser.h" YYSTYPE; # define yystype YYSTYPE /* obsolescent; will be withdrawn */ # define YYSTYPE_IS_DECLARED 1 diff --git a/util/configparser.y b/util/configparser.y index 85c9e78a5..eac9e5b9c 100644 --- a/util/configparser.y +++ b/util/configparser.y @@ -97,7 +97,8 @@ extern struct config_parser_state* cfg_parser; %token VAR_SERVER_CERT_FILE VAR_CONTROL_KEY_FILE VAR_CONTROL_CERT_FILE %token VAR_EXTENDED_STATISTICS VAR_LOCAL_DATA_PTR VAR_JOSTLE_TIMEOUT %token VAR_STUB_PRIME VAR_UNWANTED_REPLY_THRESHOLD VAR_LOG_TIME_ASCII -%token VAR_DOMAIN_INSECURE VAR_PYTHON VAR_PYTHON_SCRIPT +%token VAR_DOMAIN_INSECURE VAR_PYTHON VAR_PYTHON_SCRIPT VAR_VAL_SIG_SKEW_MIN +%token VAR_VAL_SIG_SKEW_MAX %% toplevelvars: /* empty */ | toplevelvars toplevelvar ; @@ -146,7 +147,8 @@ content_server: server_num_threads | server_verbosity | server_port | server_private_domain | server_extended_statistics | server_local_data_ptr | server_jostle_timeout | server_unwanted_reply_threshold | server_log_time_ascii | - server_domain_insecure + server_domain_insecure | server_val_sig_skew_min | + server_val_sig_skew_max ; stubstart: VAR_STUB_ZONE { @@ -771,6 +773,32 @@ server_val_override_date: VAR_VAL_OVERRIDE_DATE STRING free($2); } ; +server_val_sig_skew_min: VAR_VAL_SIG_SKEW_MIN STRING + { + OUTYY(("P(server_val_sig_skew_min:%s)\n", $2)); + if(strlen($2) == 0 || strcmp($2, "0") == 0) { + cfg_parser->cfg->val_sig_skew_min = 0; + } else { + cfg_parser->cfg->val_sig_skew_min = atoi($2); + if(!cfg_parser->cfg->val_sig_skew_min) + yyerror("number expected"); + } + free($2); + } + ; +server_val_sig_skew_max: VAR_VAL_SIG_SKEW_MAX STRING + { + OUTYY(("P(server_val_sig_skew_max:%s)\n", $2)); + if(strlen($2) == 0 || strcmp($2, "0") == 0) { + cfg_parser->cfg->val_sig_skew_max = 0; + } else { + cfg_parser->cfg->val_sig_skew_max = atoi($2); + if(!cfg_parser->cfg->val_sig_skew_max) + yyerror("number expected"); + } + free($2); + } + ; server_cache_max_ttl: VAR_CACHE_MAX_TTL STRING { OUTYY(("P(server_cache_max_ttl:%s)\n", $2)); diff --git a/validator/val_sigcrypt.c b/validator/val_sigcrypt.c index f0b4c70d5..b973d54ef 100644 --- a/validator/val_sigcrypt.c +++ b/validator/val_sigcrypt.c @@ -1073,13 +1073,29 @@ check_dates(struct val_env* ve, uint32_t unow, return 0; } if(incep - now > 0) { - sigdate_error("verify: signature bad, current time is" - " before inception date", expi, incep, now); - return 0; + /* within skew ? (calc here to avoid calculation normally) */ + int32_t skew = (expi-incep)/10; + if(skew < ve->skew_min) skew = ve->skew_min; + if(skew > ve->skew_max) skew = ve->skew_max; + if(incep - now > skew) { + sigdate_error("verify: signature bad, current time is" + " before inception date", expi, incep, now); + return 0; + } + sigdate_error("verify warning suspicious signature inception " + " or bad local clock", expi, incep, now); } if(now - expi > 0) { - sigdate_error("verify: signature expired", expi, incep, now); - return 0; + int32_t skew = (expi-incep)/10; + if(skew < ve->skew_min) skew = ve->skew_min; + if(skew > ve->skew_max) skew = ve->skew_max; + if(now - expi > skew) { + sigdate_error("verify: signature expired", expi, + incep, now); + return 0; + } + sigdate_error("verify warning suspicious signature expiration " + " or bad local clock", expi, incep, now); } return 1; diff --git a/validator/validator.c b/validator/validator.c index 5b1a16632..5ae36442b 100644 --- a/validator/validator.c +++ b/validator/validator.c @@ -122,6 +122,8 @@ val_apply_cfg(struct module_env* env, struct val_env* val_env, return 0; } val_env->date_override = cfg->val_date_override; + val_env->skew_min = cfg->val_sig_skew_min; + val_env->skew_max = cfg->val_sig_skew_max; c = cfg_count_numbers(cfg->val_nsec3_key_iterations); if(c < 1 || (c&1)) { log_err("validator: unparseable or odd nsec3 key " diff --git a/validator/validator.h b/validator/validator.h index 968fcf2cd..cdc479619 100644 --- a/validator/validator.h +++ b/validator/validator.h @@ -71,6 +71,12 @@ struct val_env { * if 0, current time is used for rrsig validation */ int32_t date_override; + /** clock skew min for signatures */ + int32_t skew_min; + + /** clock skew max for signatures */ + int32_t skew_max; + /** TTL for bogus data; used instead of untrusted TTL from data. * Bogus data will not be verified more often than this interval. * seconds. */